Eu apoio! Diga não ao adblock em sites não invasivos.

26 agosto 2016

Como seria possível hackear várias contas do Facebook de uma vez?


Encontrei um artigo interessante postado por um usuário no Medium, ele começa analisando a quantidade de números que seriam necessários para digitar o código de segurança correto que é enviado para você (por celular ou email) quando solicita que "esqueceu" a senha de sua conta do Facebook. 

Este código contém 6 dígitos, o que dá o volar de 10⁶ (1.000.000) combinações possíveis com os números de 0 a 9. O autor do artigo nota que a página mbasic.facebook.com possui menos segurança, ou seja o código gerado sempre é o mesmo para cada solicitação de esqueceu a senha depois de um certo número de solicitações. Resumindo se 1 milhão de pessoas fizer uma solicitação de esqueceu a senha em um curto período de tempo e ninguém usar o código para redefinir a senha, então a pessoa de número 1.000.001 que requisitar o código irá obter o código que alguém das um milhão recebeu e esse código será o código correto.

Assim há duas opções:

1- O Facebook irá duplicar o código para múltiplos usuários se o número de requisições for maior que um milhão.

2- Cada usuário recebe um código único e Facebook usa alguma forma divina para lidar com o caso em que 1 milhão de usuários solicitar um código, brinca o autor do texto original.

Ele então utilizou de 2 milhões de emails, na esperança da opção 1, receber códigos duplicados. Isso seria uma aplicação simples do "Princípio das casas dos pombos" (se n pombos devem ser postos em m casas, e se n > m, então pelo menos uma casa irá conter mais de um pombo - Wikipédia). 

Sendo assim, basta escolher um código aleatório que siga esta regra: Inteiros menos de 100.000 têm uma menor probabilidade de ocorrência do que inteiros entre intervalos de 300.000 e 699.999 ou 800.000 e 999.999, que têm maior probabilidade de ocorrência. Mesmo assim essa regra não vale ouro, mas serve para os testes. Portanto, agora que você escolheu uma senha aleatória, utiliza-se de força bruta contra o lote de 2 milhões para verificar de qual ID (número de usuário) é associado com o código de acesso aleatório!

O bug é difícil de entender e sua execução difícil por ser em larga escala.

Como você envia 2 milhões de e-mails de redefinição de senha rapidamente, sem ser bloqueado?

Para enviar e-mails, você primeiramente precisa obter acesso a 2 milhões de nomes de usuários do Facebook. Hora do Web scraping (é uma técnica utilizando um software para extrair informações a partir de sites).

Ponto 1: Facebook IDs são geralmente de 15 dígitos, então o autor começou com 100.000.000.000.000 e então começou a fazer consultas no Facebook Graph API para verificar quais IDs eram válidas.

Tudo que você tem que fazer depois de ter certeza que o ID é válido é visitar o seguinte link: www.facebook.com/[ID AQUI] e então a url muda automaticamente de ID de usuário para nome de usuário. Assim o autor do artigo compilou todos esses dados em JSON que você pode encontrar aqui:

Link para 2 milhões de nomes de usuários do Facebook: https://drive.google.com/open?id=0B8yZwAxAk9KZTjhvbTdYZVNoY2s

Ponto 2: Afim de evitar que seu IP seja bloqueado devido aos inúmeros pedidos de 'esqueceu a senha', existem vários serviços online para burlar isso. No caso do autor do artigo, todo o tráfego de rede passou por um servidor proxy que ouviu as solicitações HTTP e arbitrariamente atribuiu um endereço IP para cada solicitação.

Ponto 3: é necessário simular o comportamento do usuário ao solicitar uma senha. Então utiliza-se o PhantomJS (Headless browser) e depois com um script multithreaded em Java, solicita o código de acesso para todos os usuários do arquivo JSON. Também é necessário cancelar todas as cadeias de User Agent para um navegador Chrome a partir http://www.useragentstring.com/pages/useragentstring.php?name=Chrome atribuindo ao exemplo PhantomJS.

Ponto 4: Tem uma versão gratuita do Google Compute Engine para hospedar os scripts em uma máquina virtual. Foi utilizado 8 VMs (12 cores/20 GB RAM cada) de 4 regiões diferentes e instanciado 180 PhantomJS instâncias por VM para a plena utilização da CPU. 

Parte fácil, fazer brute force para adivinhar o código de segurança, são 2 milhões de IDs.

Então foi adivinhado o código de acesso de 6 dígitos (passcode 338625) usando a regra acima mencionada e o ataque de força bruta em todos os usuários no seguinte URL adicionando a ID após o "u" e o código de segurança depois de "n": www.beta.facebook.com/recover/password?u=…&n…


E como você pode visualizar na imagem acima, funcionou! 

Próximo passo?

Ir novamente até www.beta.facebook.com/recover/password?u=[ID aqui]&n=[Código aqui] e então cair na página de redefinir senha.
Agora você tem acesso completo à conta de um usuário aleatório.


I may or may not post all the source code to my Github @endeavors — still deciding.
Segundo o autor do artigo, talvez ele irá disponibilizar todo o código utilizado em sua página do Github. 

Fonte: https://medium.com/@gurkiratsingh/how-i-could-have-hacked-multiple-facebook-accounts-d9d335188d9b


⇒Confira nosso curso hacker gratuito e também o de programação >>clicando aqui<<

Doe bitcoin: 1LQvNXRAUSbm39Fzg6o8rkQsebLrQkTpt

Please Donate To Bitcoin Address: [[address]]

Donation of [[value]] BTC Received. Thank You.
[[error]]

Publicidade:


Related Posts Plugin for WordPress, Blogger...