Os valores corretos de todos os parâmetros dependem do que você precisa, e selecionar bons parâmetros requer um bom entendimento do algoritmo de 'time-memory tradeoff'.
Uma configuração que funciona está logo abaixo, como um exemplo:
hash_algorithm
lm, ntlm or md5
charset
alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789] ou
loweralpha-numeric = [abcdefghijklmnopqrstuvwxyz0123456789]
plaintext_len_min
1
plaintext_len_max
7
chain_len
3800
chain_num
33554432
key space
36^1 + 36^2 + 36^3 + 36^4 + 36^5 + 36^6 + 36^7 = 80603140212
Key space é o número de possíveis 'strings' em texto plano para o 'charset', 'plaintext_len_min' e 'plaintext_len_max' selecionados.
table size
3 GB
success rate
0.999
O algoritmo de 'time-memory tradeoff' é um algoritmos probabilístico. Quaisquer que sejam os parâmetros selecionados, há sempre probabilidades de que as 'strings' dentro do 'charset' selecionado e o tamanho das 'strings' não seja completamente coberto.
A taxa de sucesso é de 99.9% com os parâmetros usados nesse evento.
Comandos para gerar as tabelas
Os comandos do 'rtgen' usados para gerar as 'rainbow tables' são:
# rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0
Se precisar criar uma tabela de hashes 'ntlm' ou 'lm', substitua o 'md5' nos comandos acima por 'ntlm' ou 'lm'.
Se precisar de uma tabela com o 'charset alpha-numeric', substitua o 'loweralpha-numeric' nos comandos acima por 'alpha-numeric'.
Se uma tabela com 'hashes lm' for criada, tenha certeza de que seu 'charset' seja 'alpha-numeric' ao invés de 'loweralpha-numeric'. O algoritmo 'lm' nunca utiliza caracteres minúsculos como 'strings'.
Criação de Rainbow Tables
Agora é hora de criar uma 'rainbow table'.
Altere o diretório corrente em seu terminal de comando para o diretório do RainbowCrack, e execute o comando seguinte:
# cd /pentest/passwords/rcrack
# rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0
Esse comando leva 4 horas para ser completado em um computador com processador Core2 Duo E7300. É possível parar a execução do mesmo a qualquer momento pressionando 'Ctrl+C'.
Da próxima vez que o comando for executado com a mesma linha de comando, ele continuará a partir do ponto em que foi interrompido para continuar com a geração da tabela.
Quando o comando tiver terminado, um arquivo com o nome de "md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt" e tamanho de 512 MB será criado. O nome do mesmo é simplesmente a linha de comando utilizada com os parâmetros interligados, com a extensão ".rt".
O programa 'rcrack' que será explicado mais a frente, precisa destas informações para saber quais os parâmetros existentes na 'rainbow table'. Portanto, não renomeie o arquivo.
As demais tabelas podem ser geradas da mesma forma, com os comandos:
# rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0
# rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0
Finalmente, estes arquivos serão gerados:
md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt 512MB
md5_loweralpha-numeric#1-7_1_3800x33554432_0.rt 512MB
md5_loweralpha-numeric#1-7_2_3800x33554432_0.rt 512MB
md5_loweralpha-numeric#1-7_3_3800x33554432_0.rt 512MB
md5_loweralpha-numeric#1-7_4_3800x33554432_0.rt 512MB
md5_loweralpha-numeric#1-7_5_3800x33554432_0.rt 512MB
Agora, o processo de criação da 'rainbow table' está completo.