Quebrar Hashes MD5 com Modo Incremental
Nesta etapa, você usará o modo incremental do John the Ripper para quebrar hashes MD5. O modo incremental é um poderoso ataque de força bruta que tenta combinações de caracteres com base em um conjunto de caracteres (por exemplo, letras minúsculas, números, símbolos). É útil quando um ataque de lista de palavras falha, pois não depende de palavras pré-existentes.
Primeiro, vamos limpar o arquivo "pot" (potfile) do John para garantir que estamos começando do zero para esta tentativa de quebra. Isso é importante porque o John armazena senhas quebradas, e queremos ver o processo de quebra novamente.
john --session=my_session --restore=NONE
Agora, vamos tentar quebrar os hashes usando o modo incremental. Para fins de demonstração, usaremos um conjunto de caracteres muito pequeno e um comprimento máximo curto para manter o tempo de quebra gerenciável. Em um cenário real, o modo incremental pode levar muito tempo, dependendo da complexidade e do comprimento da senha.
john --format=raw-md5 --incremental=alnum --max-len=8 ~/project/hashes.txt
Aqui:
--incremental=alnum: Diz ao John para usar caracteres alfanuméricos (a-z, A-Z, 0-9). O John possui modos incrementais predefinidos como alnum, alpha, digits, etc.
--max-len=8: Limita o comprimento máximo da senha a 8 caracteres. Isso é crucial para manter o tempo de quebra curto para este laboratório.
O John the Ripper começará a gerar e testar combinações. Como nossas senhas (password123, labex, secret) estão dentro do conjunto de caracteres alnum e max-len=8 (para labex e secret), o John eventualmente as quebrará. password123 tem 11 caracteres de comprimento, portanto, não será quebrada com max-len=8.
A saída mostrará as senhas quebradas à medida que o John as encontra:
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts (raw-md5 [MD5])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
labex (a0b923820dcc509a86619210ed1572e4)
secret (5ebe2294ecd0e0f08eab7690d2a6ee69)
2g 0:00:00:00 DONE (2023-10-27 10:35) 100.0% (ETA: 00:00:00) 2.000g/s 10.00p/s 10.00c/s 10.00C/s labex secret
Session completed.
Você pode novamente usar john --show para exibir as senhas quebradas:
john --show ~/project/hashes.txt
Saída:
a0b923820dcc509a86619210ed1572e4:labex
5ebe2294ecd0e0f08eab7690d2a6ee69:secret
2 password hashes cracked, 1 left
Observe que password123 não foi quebrada desta vez porque seu comprimento (11 caracteres) excedeu o limite --max-len=8. Isso destaca a importância de definir parâmetros apropriados para ataques incrementais.