====== Quebra de senhas ====== Esta atividade prática visa compreender o uso de uma ferramenta de quebra de senha através de ataques do dicionário e de força bruta. {{ :sc:xkcd-936.png?600 |https://xkcd.com/936/}} ==== Usando o John the Ripper ==== O software [[http://www.openwall.com/john/|John the Ripper]] (JtR) é um quebrador de senhas (//password cracker//) bastante popular, usado para quebrar senhas de sistemas operacionais, arquivos ZIP, PDF, etc. "John" possui vários modos de operação, apresentados a seguir. == Modo single == Testa variações das informações obtidas no próprio arquivo de senhas, como o nome completo do usuário e seu diretório de trabalho ($HOME). É o método mais simples e rápido para começar. john -single password-file == Modo wordlist == Testa palavras em uma lista e variações delas. Pode ser lento se a lista de palavras for muito grande. john -wordlist:wordfile password-file Na maioria das distribuições Linux, listas de palavras usadas pelos corretores ortográficos podem ser encontradas em ''/usr/share/dict''. Existe a possibilidade de aplicar também regras de transformação de palavras: john -wordlist:wordfile -rules password-file == Modo incremental == Este modo testa todas as variações possíveis de senha com até N caracteres, o que pode ser MUITO lento: john -incremental password-file Pode-se restringir a busca exaustiva a um subconjunto de caracteres, usando um MODE: john -incremental=MODE password-file Os modos mais usuais são: * ASCII - caracteres imprimíveis * Alnum - alfanuméricos * Digits - dígitos * Alpha - letras * Lower - letras minúsculas * Upper - letras maiúsculas * LowerNum, UpperNum - letras + dígitos * LowerSpace, UpperSpace - letras + espaço == Outras opções == Quando John encontra uma senha, ele a mostra no terminal e a salva em um arquivo. As senhas já encontradas podem ser visualizadas com o comando ''john -show''. John pode ser interrompido (^C) e depois retomado com ''john -restore'', continuando de onde havia parado. ==== Atividade ==== Antes de começar: * Nos terminais do DINF, John está instalado no diretório ''/home/soft/john''. Para incluí-lo em seu caminho de executáveis, use o comando a seguir no //shell//: export PATH=/home/soft/john/bin:${PATH} * O diretório ''/home/soft/john/wordlist'' contém listas de palavras em várias línguas. Em sala: - Analise os arquivos de senhas disponibilizados pelo professor (em {{password_files.zip|}}). - Extraia e quebre o hash de cifragem destes dois arquivos PDF protegidos (dica: use [[https://www.onlinehashcrack.com/tools-pdf-hash-extractor.php|este site]] para extrair o hash do arquivo PDF): * {{segredo-moleza.pdf}} * {{segredo-maisoumenos.pdf}} * {{segredo-pedreira.pdf}} - Identifique um site com tabelas //hash// pré-computadas e tente quebrar alguns dos hashes dos arquivos fornecidos pelo professor. Sugestões: * https://crackstation.net * http://www.md5this.com * https://www.hashkiller.co.uk * http://rainbowtables.it64.com Em casa (opcional): - Extraia o arquivo de //hashes// de um sistema Windows, analise sua estrutura e tente quebrar suas senhas. Sugestão: use os programas ''pwdump'' ou ''fgdump''. - Identifique ferramentas similares disponíveis na Internet e experimente uma delas com os mesmos arquivos (sugestões: [[http://www.oxid.it/cain.html|Cain and Abel]], [[http://hashcat.net/oclhashcat/|HashCat]], [[http://ophcrack.sourceforge.net/|Ophcrack]]).