09/03/2012

Wordlist com Números de Celular

  Bem, mais um fim de semana em Sobral e me recordei de um dia em que uma amiga me pediu pra configurar o roteador dela, eu aceitei, no momento de por a senha eu lhe perguntei:

-- Qual senha eu ponho?
-- Essa daqui.

  E me entregou um papel com um número de celular, nesse momento me recordei de uma vizinha que me deu a senha da internet dela uma vez e também era um número de celular, só que com o DDD na frente, pra você ver como é a vida, aqui estou eu recordando de uma coisa que recordei a muito tempo atrás.

  Agora vem a parte que faz sentido, e decidi fazer algo de útil com o algorítimo de força bruta, e  utilizei ele para gerar uma wordlist para quebrar senhas que sejam um número de celular, seja a senha só o numero, com DDD na frente ou com 0 e DDD na frente..

  Primeiramente vamos a teoria, um numero de celular é composto por 2 números contastes(não mudam)  e 6 dígitos que variam de 0 a 9.O algorítimo é simples, não tem nem o que comentar. Exemplo:

  96000001
  96000002
  .
  .
  96120547
  .
  .
  96999999


 Bem, porque gerar uma wordlist?

1 - Pra aprender a programar.
2 - Pra testar a teoria da análise combinatória.
3 - Pra usar no roteador do seu vizinho que utiliza uma WPA ou WPA2. kkkkk

Bem aqui está o código: Wordlista_de_celulares.cpp

Versao 2016: https://github.com/CiroboyBR/Gerador_Wordlists/blob/master/celular.c

pra quem acha que a senha do seu roteador é segura com WPA ou WPA2, mesmo utilizando um número de celular. vale a pena testa-la com o programa Aircrack-ng.






18/12/2011

Algoritmo de força bruta feito em C parte 2

mais um dia se passa e decidi mecher um pouco mais no algoritmo, Fiz uma função para quebrar uma senha que contenha tanto letras minúsculas quanto maísculas,essa função pula do código ASCII '90' = "Z" para o '97'= "a", evitanto assim, 6 caracteres( ], [, \, ^, _, ' ), a mais na força bruta, reduzindo assim o tempo de execução da função. Tambem fiz uma mesma função, só que essa fiz um modo burro, usando tambem os 6 caracteres ( ], [, \, ^, _, ' ), retirados da outra função, meu objetivo era testar se of "IF's" da primeira função retardariam a execução do algoritmo, o que foi provado empiricamente que não retarda mais do o retardo causado pelo uso dos 6 caracteres especiais. Vejamos os resultados


Para quebrar uma senha com apenas letras (a-z, A-Z).

5 Dígitos:    5s Segundos usando Força Bruta (Inteligente)
6 Dígitos:    250s Segundos usando Força Bruta (Inteligente)
Para quebrar uma senha com letras (a-z, A-Z) e os 6 caracteres especials( ], [, \, ^, _, ' ).

5 Dígitos:    7s Segundos usando Força Bruta (Burra)
6 Dígitos:    388s Segundos usando Força Bruta (Burra)

Para quebrar uma senha com letras (a-z, A-Z) e números(0-9) .

5 Dígitos:    14,2s Segundos usando Força Bruta (Inteligente)
6 Dígitos:    887s Segundos(15 min) usando Força Bruta (Inteligente)
  Descidi não usar uma função burra nesse último teste porque prejudicaria muito o desempenho,  mais ainda falta um teste com todos os caracteres da tabela ASCII que depois postarei aqui nesse mesmo tópico. 
  O link do código está logo abaixo:
http://www.4shared.com/file/a0R7mH7d/Forca_Bruta_2.html

Um link da tabela ASCII que usei para fazer o algoritmo :
http://equipe.nce.ufrj.br/adriano/c/apostila/tabascii.htm

17/12/2011

Algoritmo de força bruta feito em C

    Fim de semana chegou! Nada pra fazer! Quando surgiu-me uma idéia! "Vou criar um algoritmo de força bruta pra ver se eu consigo descobrir a senha do servidor do FBI. Vou aproveitar e ver se eu estou sendo procurado e logo depois vou dominar o Mundo!"... kkkkk, claro que o verdadeiro motivo não foi esse, teve muita curiosidade e um pouco de tédio nisso.

    Bem, fiz um algoritimo na linguagem C/C++, nele eu testei uma maneira que descobrir uma senha de no máximo 9 dígitos,  na tentativa e erro (força bruta), nele tem duas funções, uma força bruta(normal) e outra força bruta(inteligente),  a diferença entre as duas funções é que na força bruta inteligente você não precisa controlar o tamanho da senha, já na força bruta normal, nescessita-se igualar o número de for's ao numero de caracteres da senha, algo simples mas chato para algmas pessoas, você deve estar se perguntando,  "por que ele não deixou apenas a função inteligente?", devido ao fato de ser um algoritmo para descobrir senhas, ele nescessita de um maior desempenho e apesar da diferença ser pequena usando apenas números, usando letras ou letras e números essa diferença aumenta muito. Queria também chamar a atenção sobre as impressões das senhas erradas na tela, atrasa muito o a execução do algoritimo, se estiver demorando pra achar a senha retire os printfs de senhas erradas. Vejamos alguns resultados dos testes que realizei em um Notebook Positivo sim+ 1455 Core2 duo 3gb Ram com Windows XP...

Para quebrar uma senha de 9 Dígitos(Apenas números)

    11.5s Segundos usando Força Bruta (Inteligente)
    8.5s   Segundos usando Força Bruta (Normal)

Para quebrar uma senha de 6 Dígitos(Apenas letras minúsculas sem o Ç)

    3.3s Segundos usando Força Bruta (Inteligente)
    2.2s   Segundos usando Força Bruta (Normal)

Para quebrar uma senha de 7 Dígitos(Apenas letras minúsculas sem o Ç)

    85.2s Segundos usando Força Bruta (Inteligente)
    56.6s   Segundos usando Força Bruta (Normal)

    Bem, chegou ao fim minha primeira postagem nesse blog, espero não ser a última. Vou disponibilizar o algoritimo feito em C/C++, compilado na IDE CodeBlocks para quem quiser testar, modificar e aprender ou até critica-lo :), A quem baixar comenta aí os resultados dos seus testes. Abaixo segue o link para o download do código e da IDE caso alguem nescessite.

Código em C/C++

IDE Codeblocks