RainbowCrack é um programa que gera 'rainbow tables' para serem usadas na quebra de senhas. O RainbowCrack difere dos programas de força bruta convencionais, pois utiliza tabelas previamente criadas, chamadas
rainbow tables, para reduzir drasticamente o tempo necessário para quebrar senhas.
Um ótimo programa utilizado para quebrar senhas Windows com rainbow tables é o
Ophcrack:
# aptitude install ophcrack
Outro programa, que quebra inclusive
hashs 'MD5', 'SHA1', 'SHA2' e etc, é o
Cain (que roda em Windows).
Para baixar Rainbow Tables:
Para entender mais:
RainbowCrack é uma ferramenta cujo objetivo é quebrar hash de senhas.
O método utilizado pela ferramenta é o
Brute Force. Neste método, todas as senhas em texto plano e seus 'hashs' correspondentes são computados um por um.
O 'hash' computado é comparado com o 'hash' alvo. Se um deles for igual, a senha em texto plano é encontrada. Do contrário, o processo continua até finalizar todas as senhas possíveis.
No método
time-memory, a tarefa de computar 'hashs' é feita através do armazenamento dos resultados, o qual chamamos de 'rainbow table'. Depois disso, os 'hashes' podem ser acessados a partir das 'rainbow tables' sempre que necessário.
O processo pré computacional precisa de muito tempo para criar as chaves que serão posteriormente utilizadas. No entanto, uma vez que esse processo tenha terminado, a performance da 'rainbow tables' pode ser de centenas a milhares de vezes maior do que o método de 'brute force'.
Vamos ver um passo a passo sobre como utilizar o software RainbowCrack. Este software inclui três ferramentas que devem ser usadas em sequência para fazer a coisa funcionar:
- Passo 1: Usar o
rtgen para gerar as 'rainbow tables'.
- Passo 2: Usar o
rtsort para organizar as rainbow tables geradas pelo 'rtgen'.
- Passo 3: Usar o
rcrack para buscar o conteúdo das 'rainbow tables' organizadas pelo 'rtsort'.
Parâmetros
O processo de buscar o conteúdo no passo final, é equivalente ao processo de quebra de 'hash'. E todas estas ferramentas são utilizadas através da linha de comando.
O programa 'rtgen' precisa de diversos parâmetros para gerar uma 'rainbow table', e a sintaxe do comando é:
rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index
Explicação dos parâmetros:
- hash_algorithm : O algoritmo dos hashs (lm, ntlm, md5 e assim por diante) usado na rainbow table.
- charset : A configuração dos caracteres (charset) do texto plano na rainbow tables. Todos os charsets possíveis estão definidos no arquivo charset.txt.
- plaintext_len_min e plaintext_len_max : Estes dois parâmetros definem o tamanho possível de todo o texto plano na 'rainbow tables'. Se o 'charset' é numérico, o 'plaintext_len_min' é 1, e o 'plaintext_len_max' é 5, então a string "12345" será incluída na tabela, mas "123456" não.
- table_index, chain_len, chain_num e part_index : Estes quatro parâmetros são mais difíceis de explicar em poucas palavras. Ler e compreender o artigo original de Philippe Oechslin (criador do RainbowCrack), pode ajudar a entender o significado exato.
- O 'table_index' está relacionado ao 'reduce function' que é utilizado na 'rainbow table'.
- O 'chain_len' é o tamanho de cada 'rainbow chain' na 'rainbow table'. Uma 'rainbow chain' configurada como 16 bytes é a menor unidade em uma 'rainbow table'. Uma 'rainbow tables' contém diversas 'rainbow chains'.
- O 'chains_num' é o número de 'rainbow chains' em uma 'rainbow table'.
- O parâmetro 'part_index' determina como o 'start point' em cada 'rainbow chain' é gerado. Deve ser um número (ou começar com um número).