Saltar al contenido
Underc0de /foro

Aprenda a usar o CRUNCH passo a passo.

🌐 Esta é uma tradução automática de um tópico do Underc0de, a maior comunidade de hacking e TI em espanhol. Ler o original (espanhol) e responder →
Cl0udswX ·
Los enlaces son solo para miembros. Registrate o iniciá sesión<br />
<br /><br />
INTRODUÇÃO
<br /><br />Saudações mano@s.<br /><br />No mundo do hacking temos uma técnica chamada força bruta, bem vista por alguns e mal vista por outros, mas este não é o lugar para debater sobre a qualidade da técnica, pois segundo a wikipedia a força bruta é:<br /><br />"A forma de recuperar uma chave testando todas as combinações possíveis até encontrar aquela que permite o acesso."<br /><br />Muito bem, para orquestrar esse tipo de ataque precisaremos de um arquivo que contenha dentro de si centenas, milhares e até milhões de palavras para ir testando 1 por 1 até dar com a válida, esses arquivos em bom português se chamam dicionários e os gringos, para que ninguém se confunda, os chamam de wordlists (listas de palavras).<br /><br />Agora quero que imaginem que tivéssemos que criar um dicionário escrevendo todas as palavras possíveis 1 por 1, não teria sentido e nem seria prático, então existem programas que geram dicionários automaticamente simplesmente especificando alguns parâmetros de entrada, entre esses programas poderia-se dizer que o mais conhecido é o Crunch, uma aplicação sem interface gráfica que tem uma grande flexibilidade na hora de gerar dicionários/wordlists, existe muita documentação sobre ele, mas geralmente são explicados 1 ou 2 exemplos sobre seu uso, deixando o usuário descobrir o resto, pois aqui na underc0de vamos presenteá-los com um manual completo com todas as opções e usos práticos para que não reste dúvida alguma, isto será algo como um workshop de Crunch, então embarquem no louco barco do conhecimento e vamos a ele.<br /><br />
O QUE É O CRUNCH
<br /><br />O Crunch é um programa que baseando-se em critérios estabelecidos pelo usuário (input) é capaz de gerar dicionários para serem usados em força bruta (output), o resultado do Crunch pode ser visto na tela, pode ser salvo em um arquivo .txt ou pode ser enviado a outro programa em tempo real para seu uso.<br /><br />A versão 1.0 foi criada por mima_yin (mimayin@ACiiiD.ath.cx) e todas as versões posteriores foram atualizadas e desenvolvidas por bofh28 ([email protected]), a eles todo o agradecimento e o respeito por tão maravilhosa ferramenta.<br /><br />A página oficial é:<br /><br />Los enlaces son solo para miembros. Registrate o iniciá sesión<br /><br />
COMO INSTALAR O CRUNCH
[/b]<br /><br />LINUX<br /><br />Pois em qualquer distro Linux bastaria recorrer ao terminal e escrever:<br /><br />
Código: text
sudo apt-get install crunch
<br /><br />Dependendo da distribuição podemos ter um ou outro gerenciador de pacotes, então cada um pode modificar o comando de acordo com seu sistema (yum, pacman, aptitude, etc..)<br /><br />Imaginando que não esteja nos repositórios de software, poderíamos baixar o tarball e instalar nós mesmos:<br /><br />
Código: text
git clone http://git.code.sf.net/p/crunch-wordlist/code crunch-wordlist-code<br />cd crunch-wordlist-code;<br />sudo make && sudo make install;
<br /><br />Windows<br /><br />Pois o criador não liberou uma versão oficial para os usuários de windows, mas eis que chega a magia do software open-source, e é que um usuário, melhor dizendo uma usuária (maripuri) compilou a versão 3.2 do crunch para windows, então a ela muito obrigado por seu esforço e trabalho, os interessados podem baixar o arquivo daqui:<br /><br />Los enlaces son solo para miembros. Registrate o iniciá sesión<br /><br />
COMO USAR O CRUNCH NÍVEL 1
<br /><br />Muito bem mano@s, chegou o momento da verdade, chegou o momento de desnudar esta maravilhosa ferramenta e poder fazer uso dela de uma forma eficiente, a seguir veremos seu uso, desde a execução mais simples até a mais complexa.<br /><br />Bastaria escrever "crunch" em um terminal para conseguir informação:<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />Onde podemos ler claramente a forma simples pela qual podemos fazer uso dela:<br /><br />
Código: text
<br />Usage: crunch <min> <max> [options]<br />where min and max are numbers
<br /><br />É tão simples quanto dizer a quantidade de caracteres que estamos buscando seguida de alguma opção, vamos lançá-lo de uma forma básica para ver como fica, vamos experimentar gerar todas as combinações possíveis para uma palavra de 4 caracteres:<br /><br />
Código: text
crunch 4 4
<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />Como se vê na imagem o crunch avisa de uma forma muito educada quantas linhas serão geradas e quanto espaço ocupará, a seguir compartilho as primeiras 50 linhas da saída na tela:<br /><br />
Código: text
aaaa<br />aaab<br />aaac<br />aaad<br />aaae<br />aaaf<br />aaag<br />aaah<br />aaai<br />aaaj<br />aaak<br />aaal<br />aaam<br />aaan<br />aaao<br />aaap<br />aaaq<br />aaar<br />aaas<br />aaat<br />aaau<br />aaav<br />aaaw<br />aaax<br />aaay<br />aaaz<br />aaba<br />aabb<br />aabc<br />aabd<br />aabe<br />aabf<br />aabg<br />aabh<br />aabi<br />aabj<br />aabk<br />aabl<br />aabm<br />aabn<br />aabo<br />aabp<br />aabq<br />aabr<br />aabs<br />aabt<br />aabu<br />aabv<br />aabw<br />aabx
<br /><br />Vamos analisar isto por alguns segundos...<br /><br />Temos que o crunch gerou todas as combinações possíveis para uma palavra de 4 caracteres, mas notam alguma particularidade?<br /><br />Não foram usados números, símbolos, maiúsculas nem espaços em branco. A razão se explica a seguir:<br /><br />O Crunch utiliza uma variável chamada charset (character setting) e é como o conjunto de caracteres que serão usados para a geração do dicionário/wordlist, por padrão o charset é lalpha (lower alphabet) mas que tal experimentarmos configurar outro charset.<br /><br />
Código: text
crunch 4 4 -f .charset.lst numeric 
<br /><br />Como sempre, ao pressionar enter o crunch nos indicará quantas linhas e quanto espaço será usado, analisemos as primeiras 50 linhas:<br /><br />
Código: text
0000<br />0001<br />0002<br />0003<br />0004<br />0005<br />0006<br />0007<br />0008<br />0009<br />0010<br />0011<br />0012<br />0013<br />0014<br />0015<br />0016<br />0017<br />0018<br />0019<br />0020<br />0021<br />0022<br />0023<br />0024<br />0025<br />0026<br />0027<br />0028<br />0029<br />0030<br />0031<br />0032<br />0033<br />0034<br />0035<br />0036<br />0037<br />0038<br />0039<br />0040<br />0041<br />0042<br />0043<br />0044<br />0045<br />0046<br />0047<br />0048<br />0049
<br /><br />Tudo correu bem, mas agora notamos uma pequena diferença, e é que só gerou números, mas é justamente o que queríamos, não? E como conseguimos isso, pois com a opção -f e pronto!! <br /><br />Esta opção indica onde buscar o arquivo de variáveis, ou seja, onde estão preestabelecidos todos os charsets, isto é, devemos especificar o caminho do arquivo assim como nossa seleção dentro dele, no meu caso tenho o charset.lst no meu diretório home, por isso não especifico caminho até ele. <br /><br />Quantos charsets podemos escolher além de lalpha e de numeric?<br /><br />Vejam vocês mesmos<br /><br />
Código: text
# charset configuration file for winrtgen v1.2 by Massimiliano Montoro ([email protected])<br /># compatible with rainbowcrack 1.1 and later by Zhu Shuanglei <[email protected]><br /><br /><br />hex-lower                     = [0123456789abcdef]<br />hex-upper                     = [0123456789ABCDEF]<br /><br />numeric                       = [0123456789]<br />numeric-space                 = [0123456789 ]<br /><br />symbols14                     = [!@#$%^&*()-_+=]<br />symbols14-space               = [!@#$%^&*()-_+= ]<br /><br />symbols-all                   = [!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]<br />symbols-all-space             = [!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]<br /><br />ualpha                        = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]<br />ualpha-space                  = [ABCDEFGHIJKLMNOPQRSTUVWXYZ ]<br />ualpha-numeric                = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]<br />ualpha-numeric-space          = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]<br />ualpha-numeric-symbol14       = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=]<br />ualpha-numeric-symbol14-space = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ]<br />ualpha-numeric-all            = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]<br />ualpha-numeric-all-space      = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]<br /><br />lalpha                        = [abcdefghijklmnopqrstuvwxyz]<br />lalpha-space                  = [abcdefghijklmnopqrstuvwxyz ]<br />lalpha-numeric                = [abcdefghijklmnopqrstuvwxyz0123456789]<br />lalpha-numeric-space          = [abcdefghijklmnopqrstuvwxyz0123456789 ]<br />lalpha-numeric-symbol14       = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=]<br />lalpha-numeric-symbol14-space = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+= ]<br />lalpha-numeric-all 	      = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]<br />lalpha-numeric-all-space      = [abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]<br /><br />mixalpha                   = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]<br />mixalpha-space             = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ]<br />mixalpha-numeric           = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]<br />mixalpha-numeric-space     = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]<br />mixalpha-numeric-symbol14  = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=]<br />mixalpha-numeric-symbol14-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+= ]<br />mixalpha-numeric-all       = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]<br />mixalpha-numeric-all-space = [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]<br /><br />#########################################################################################<br />#                 SWEDISH CHAR-SUPPORT                                                  # #########################################################################################<br /><br />#########################<br /># Uppercase             #<br />#########################<br />ualpha-sv                        = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ]<br />ualpha-space-sv                  = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ ]<br />ualpha-numeric-sv                = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789]<br />ualpha-numeric-space-sv          = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789 ]<br />ualpha-numeric-symbol14-sv       = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=]<br />ualpha-numeric-symbol14-space-sv = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+= ]<br />ualpha-numeric-all-sv            = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]<br />ualpha-numeric-all-space-sv      = [ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]<br /><br />#########################<br /># Lowercase             #<br />#########################<br />lalpha-sv                        = [abcdefghijklmnopqrstuvwxyzåäö]<br />lalpha-space-sv                  = [abcdefghijklmnopqrstuvwxyzåäö ]<br />lalpha-numeric-sv                = [abcdefghijklmnopqrstuvwxyzåäö0123456789]<br />lalpha-numeric-space-sv          = [abcdefghijklmnopqrstuvwxyzåäö0123456789 ]<br />lalpha-numeric-symbol14-sv       = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+=]<br />lalpha-numeric-symbol14-space-sv = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+= ]<br />lalpha-numeric-all-sv            = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]<br />lalpha-numeric-all-space-sv      = [abcdefghijklmnopqrstuvwxyzåäö0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]<br /><br />#########################<br /># Mixcase               #<br />#########################<br />mixalpha-sv                   = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ]<br />mixalpha-space-sv             = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ ]<br />mixalpha-numeric-sv           = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789]<br />mixalpha-numeric-space-sv     = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789 ]<br />mixalpha-numeric-symbol14-sv  = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=]<br />mixalpha-numeric-symbol14-space-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+= ]<br />mixalpha-numeric-all-sv       = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/]<br />mixalpha-numeric-all-space-sv = [abcdefghijklmnopqrstuvwxyzåäöABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ ]<br /><br />
<br /><br />Se não quiserem especificar nenhum charset, podem simplesmente passar ao crunch quais caracteres desejam usar na geração, por exemplo:<br /><br />
Código: text
crunch 4 4 ab12
<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión<br />
<br /><br />E a saída seria:<br /><br />
Código: text
aaaa<br />aaab<br />aaa1<br />aaa2<br />aaba<br />aabb<br />aab1<br />aab2<br />aa1a<br />aa1b<br />aa11<br />aa12<br />aa2a<br />aa2b<br />aa21<br />aa22<br />abaa<br />abab<br />aba1<br />aba2<br />abba<br />abbb<br />abb1<br />abb2<br />ab1a<br />ab1b<br />ab11<br />ab12<br />ab2a<br />ab2b<br />ab21<br />ab22<br />a1aa<br />a1ab<br />a1a1<br />a1a2<br />a1ba<br />a1bb<br />a1b1<br />a1b2<br />a11a<br />a11b<br />a111<br />a112<br />a12a<br />a12b<br />a121<br />a122<br />a2aa<br />a2ab<br />a2a1<br />a2a2<br />a2ba<br />a2bb<br />a2b1<br />a2b2<br />a21a<br />a21b<br />a211<br />a212<br />a22a<br />a22b<br />a221<br />a222<br />baaa<br />baab<br />baa1<br />baa2<br />baba
<br /><br />Começam a entender o sentido da palavra "Flexibilidade" para se referir ao crunch, bem sigamos adiante aprendendo mais truques para esta maravilhosa tool.<br /><br />
COMO USAR O CRUNCH NÍVEL 2
[/b][/u]<br /><br />Até agora aprendemos a usar o crunch no nível básico, ou seja só sabemos gerar dicionários especificando o tamanho e o conjunto de caracteres a ser usado, e muitos pensarão que essa é toda a magia de gerar dicionários e a verdade é que estão enganados, sigam-me e veremos que outras coisas podemos fazer.<br /><br />Lembram daquele filme de hackers no qual o protagonista olha o teclado do administrador de sistemas e consegue ver a senha digitada no teclado? Pois na vida real talvez não seja tão simples ver toda a senha digitada e só conseguimos lembrar parte dela e talvez seu tamanho (sim, seu tamanho, eu costumo contar as teclas pressionadas no teclado assim tenho uma ideia do tamanho) pois suponhamos que queremos gerar uma senha que inicia com "Und......" mas não sabemos o resto, pois poderíamos dizer ao crunch:<br /><br />
Código: text
crunch 9 9 -t und@@@@@@<br />
<br /><br />E isto geraria:<br /><br />
Código: text
undaaoerv<br />undaaoerw<br />undaaoerx<br />undaaoery<br />undaaoerz<br />undaaoesa<br />undaaoesb<br />undaaoesc<br />undaaoesd<br />undaaoese<br />undaaoesf<br />undaaoesg<br />undaaoesh<br />undaaoesi<br />undaaoesj<br />undaaoesk<br />undaaoesl<br />undaaoesm<br />undaaoesn<br />undaaoeso<br />undaaoesp<br />undaaoesq<br />undaaoesr<br />undaaoess<br />undaaoest<br />undaaoesu<br />undaaoesv<br />undaaoesw<br />undaaoesx<br />undaaoesy<br />undaaoesz<br />undaaoeta<br />undaaoetb<br />undaaoetc<br />undaaoetd<br />undaaoete<br />undaaoetf<br />undaaoetg<br />undaaoeth<br />undaaoeti<br />undaaoetj<br />undaaoetk<br />undaaoetl<br />undaaoetm<br />undaaoetn<br />undaaoeto<br />undaaoetp<br />undaaoetq<br />undaaoetr<br />undaaoets<br />undaaoett<br />undaaoetu<br />undaaoetv<br />undaaoetw<br />undaaoetx<br />undaaoety<br />undaaoetz<br />undaaoeua<br />undaaoeub<br />undaaoeuc<br />undaaoeud<br />undaaoeue<br />undaaoeuf<br />undaaoeug<br />undaaoeuh<br />undaaoeui<br />undaaoeuj<br />undaaoeuk<br />undaaoeul<br />undaaoeum<br />undaaoeun<br />undaaoeuo<br />undaaoeup<br />undaaoeuq<br />undaaoeur<br />undaaoeus<br />undaaoeut<br />undaaoeuu<br />undaaoeuv<br />undaaoeuw<br />undaaoeux<br />undaaoeuy<br />undaaoeuz<br />undaaoeva<br />undaaoevb<br />undaaoevc<br />undaaoevd<br />undaaoeve<br />undaaoevf<br />undaaoevg<br />undaaoevh<br />
<br /><br />E se repararmos o crunch gerou palavras sem modificar os 3 primeiros caracteres, com o que se a senha for "undercode" eventualmente será gerada, mas o que aconteceria se o admin do site quisesse complicá-la e colocasse "underc0de" como senha? Pois podemos fazê-lo de duas formas, uma simples e outra um pouco mais complexa, para a forma complexa poderíamos fazê-lo especificando um charset alfanumérico escrevendo:<br /><br />
Código: text
crunch 9 9 -f .charset.lst lalpha-numeric -t und@@@@@@
<br /><br />ou poderíamos especificar os caracteres que queremos usar:<br /><br />
Código: text
crunch 9 9 abcefghijklmnopqrstuwxyz1234567890 -t und@@@@@@<br />
<br /><br />Com ambos os comandos teríamos o mesmo resultado, simplesmente são duas formas de fazer a mesma coisa<br /><br />
Código: text
undaaaz1u<br />undaaaz1v<br />undaaaz1w<br />undaaaz1x<br />undaaaz1y<br />undaaaz1z<br />undaaaz10<br />undaaaz11<br />undaaaz12<br />undaaaz13<br />undaaaz14<br />undaaaz15<br />undaaaz16<br />undaaaz17<br />undaaaz18<br />undaaaz19<br />undaaaz2a<br />undaaaz2b<br />undaaaz2c<br />undaaaz2d<br />undaaaz2e<br />undaaaz2f<br />undaaaz2g<br />undaaaz2h<br />undaaaz2i<br />undaaaz2j<br />undaaaz2k<br />undaaaz2l<br />undaaaz2m<br />undaaaz2n<br />undaaaz2o<br />undaaaz2p<br />undaaaz2q<br />undaaaz2r<br />undaaaz2s<br />undaaaz2t<br />undaaaz2u<br />undaaaz2v<br />undaaaz2w<br />undaaaz2x<br />undaaaz2y<br />undaaaz2z<br />undaaaz20<br />undaaaz21<br />undaaaz22<br />undaaaz23<br />undaaaz24<br />undaaaz25<br />undaaaz26<br />undaaaz27<br />undaaaz28<br />undaaaz29<br />undaaaz3a<br />undaaaz3b<br />undaaaz3c<br />undaaaz3d<br />undaaaz3e<br />undaaaz3f<br />undaaaz3g<br />undaaaz3h<br />undaaaz3i<br />undaaaz3j<br />undaaaz3k<br />undaaaz3l<br />undaaaz3m<br />undaaaz3n<br />undaaaz3o<br />undaaaz3p<br />undaaaz3q<br />undaaaz3r<br />undaaaz3s<br />undaaaz3t<br />undaaaz3u<br />undaaaz3v<br />undaaaz3w<br />undaaaz3x<br />undaaaz3y<br />undaaaz3z<br />undaaaz30<br />undaaaz31<br />undaaaz32<br />undaaaz33<br />undaaaz34<br />undaaaz35<br />undaaaz36<br />undaaaz37<br />undaaaz38<br />undaaaz39<br />undaaaz4a<br />undaaaz4b<br />undaaaz4c<br />undaaaz4d<br />undaaaz4e<br />undaaaz4f<br />undaaaz4g<br />undaaaz4h<br />undaaaz4i<br />undaaaz4j<br />undaaaz4k<br />undaaaz4l<br />undaaaz4m<br />undaaaz4n<br />undaaaz4o<br />undaaaz4p<br />undaaaz4q<br />undaaaz4r<br />undaaaz4s<br />undaaaz4t<br />undaaaz4u<br />undaaaz4v<br />undaaaz4w<br />undaaaz4x<br />undaaaz4y<br />undaaaz4z<br />undaaaz40<br />undaaaz41<br />undaaaz42<br />undaaaz43<br />undaaaz44<br />undaaaz45<br />undaaaz46<br />undaaaz47<br />undaaaz48<br />undaaaz49<br />undaaaz5a<br />undaaaz5b<br />undaaaz5c<br />undaaaz5d<br />undaaaz5e<br />undaaaz5f<br />undaaaz5g<br />undaaaz5h<br />undaaaz5i<br />undaaaz5j<br />undaaaz5k<br />undaaaz5l<br />undaaaz5m<br />undaaaz5n<br />undaaaz5o<br />undaaaz5p<br />undaaaz5q<br />undaaaz5r<br />undaaaz5s<br />undaaaz5t<br />undaaaz5u<br />undaaaz5v<br />undaaaz5w<br />undaaaz5x<br />undaaaz5y<br />undaaaz5z<br />undaaaz50<br />undaaaz51<br />undaaaz52<br />undaaaz53<br />undaaaz54<br />undaaaz55<br />undaaaz56<br />undaaaz57<br />undaaaz58<br />undaaaz59<br />undaaaz6a<br />undaaaz6b<br />undaaaz6c<br />undaaaz6d<br />undaaaz6e<br />undaaaz6f<br />undaaaz6g<br />undaaaz6h<br />undaaaz6i<br />undaaaz6j<br />undaaaz6k<br />undaaaz6l
<br /><br />Agora vem a forma simples que é simplesmente trocar o símbolo "@" pelo tipo de caractere que queremos inserir na geração do dicionário, lembrem que com a opção -t, podemos especificar um padrão de caracteres que serão os únicos a mudar ao gerar o dicionário, assim os caracteres que podemos especificar para o padrão são:<br /><br />              @  inserirá minúsculas<br />              ,    inserirá maiúsculas<br />              %  inserirá números<br />              ^   inserirá símbolos<br /><br />Sabendo disso vamos supor que queremos gerar um dicionário onde a primeira letra seja maiúscula, mas que ao longo dele, tanto o 2º como o 3º caractere fiquem fixos, pois para fazê-lo adicionamos uma "," que como expliquei anteriormente inserirá maiúsculas, mas lembremos que havia um número na senha, então também precisamos inserir 1 único número no 7º caractere da nossa palavra, pois contamos apenas até o lugar número 7 e inserimos um "%" que como também expliquei anteriormente só insere números, o comando final ficaria assim: <br /><br />
Código: text
crunch 9 9 -t ,nd@@@%@@<br />
<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión<br />
<br /><br />Toda essa flexibilidade conseguimos com a opção -t, espero que a tenham entendido e que lhes seja muito prática no futuro. Mas não pensem que terminamos, Ohh não meus amigos!!! Isto continua e fica melhor ainda!!!<br /><br />Vejamos, vamos gerar um dicionário concatenando palavras, imaginar por que razão algumas pessoas usam como senha uma série de palavras unidas, por exemplo alguém que goste de harry potter poderia usar os nomes de Harry, Hermione e Ron como senha e nesse caso gerar simplesmente por caracteres seria quase impossível dada a extensão final "harryhermioneron" então no crunch existe uma opção que nos permite concatenar palavras, vejamos como:<br /><br />
Código: text
crunch 1 1 -p Harry Hermione Ron<br />
<br /><br />Obteríamos algo como isto:<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />Como já notaram com a opção -p é possível concatenar palavras, mas há uma particularidade e é que reparem que na parte onde se especificam o comprimento menor e o maior eu coloquei "1 1" e pois a verdade é que quando se usa a opção -p os números não são processados, mas são necessários para o argumento, ou seja podemos colocar qualquer coisa que será irrelevante para a saída.<br /><br />
COMO USAR O CRUNCH NÍVEL 3
[/u][/b]<br /><br />Pois chegados a este ponto já sabemos gerar dicionários com diferentes charsets, sabemos aplicar padrões na geração, concatenar palavras, assim como especificar com quais caracteres queremos gerar, então considero que estamos avançando na tarefa de desnudar o crunch.<br /><br />No início do workshop dizia que o crunch pode enviar os resultados para a tela, pode criar um arquivo ou passar a saída para outro programa (geralmente um crackeador como o aircrack) mas até agora só tiramos os resultados na tela, ou seja não criamos nenhum arquivo nem nada parecido, então vamos a isso.<br /><br />   
Enviando a saída do crunch para um arquivo.txt ou para um compactado.
<br /><br />Pois a ideia básica de criar um dicionário é poder usá-lo posteriormente para dar com o hash válido em um teste de força bruta, então de alguma forma devemos poder gerar um arquivo a partir da saída, isto é possível usando a opção -o (output) seguida do nome do arquivo, tomemos como exemplo o exercício do Harry Hermione e Ron e criemos um arquivo, o comando seria:<br /><br />
Código: text
crunch 1 1 -o NombresPotter.txt -p Harry Hermione Ron 
<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />Opcionalmente também poderíamos especificar o caminho onde queremos despejar o dicionário, por exemplo:<br /><br />
Código: text
crunch 1 1 -o /home/cl0udswx/Documentos/NombresPotter.txt -p Harry Hermione Ron
<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />Vamos avançar um pouco mais fundo e fazer com que a cada 5000 linhas o crunch nos gere 1 arquivo, pois para quê? Dependendo do ambiente em que se vai auditar precisamos seccionar o ataque, ou seja dividir o dicionário em uma quantidade específica, para conseguir melhor acoplamento com os temporizadores dos crackeadores, para conseguir essa divisão de um dicionário em vários arquivos de menor tamanho usamos a opção -c (esta opção só funciona se o -o START estiver presente na linha) por exemplo:<br /><br />
Código: text
crunch 1 1 -o /home/cl0udswx/Documentos/START -c 5000
<br /><br />Isto inicia o processo de criar múltiplos arquivos com 5000 linhas cada um, tal como podemos ver na imagem:<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />E se eu fosse até a pasta documentos encontraria isto:<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />Veem que simples?<br /><br />Esclarecimentos:<br /><br />[].- O START funciona como nome de arquivo para o primeiro arquivo a ser criado, a partir daí os arquivos tomarão o nome da última linha do arquivo anterior + a primeira linha do arquivo posterior<br /><br />[].- Embora eu deva esclarecer que em alguns casos é possível lotar o disco rígido ao gerar um dicionário, tudo depende do que dissermos ao crunch, por exemplo se eu dissesse:<br /><br />crunch 15 25 -o demasiado.txt<br /><br />Los enlaces son solo para miembros. Registrate o iniciá sesión<br /><br />Repararam no tamanho do arquivo?<br /><br />2744 PB !!!      :o<br /><br />Isso seria demasiado.txt para qualquer disco rígido.<br /><br />Mas entre tanta geração que tal se criamos um arquivo e o compactamos em bzip, de uma só vez, soa complicado mas seria simplesmente adicionar a opção -z seguida do tipo de compressão desejada, por exemplo:<br /><br />
Código: text
crunch 4 5 -o /home/cl0udswx/Documentos/START -c 5000 -z gzip
<br /><br />Desta forma se iniciaria o mesmo processo anterior só que em compactados gzip ou em qualquer outro formato suportado pelo crunch (gzip, bzip2, lzma, and 7z )<br /><br />
Los enlaces son solo para miembros. Registrate o iniciá sesión
<br /><br />Pois como poderão ver não é tão complicado enviar a saída para um arquivo txt, gzip, bzip2, lzma ou 7z.<br /><br />
<br /><br />
Exercícios para praticar.
<br /><br />Pois no início do post minha ideia era explicar todas as funções do crunch, mas me ocorreu que seria interessante deixar que vocês contribuam um pouco ao post, então quis deixar 2 exercícios para que os realizem e me enviem por MP e eu depois atualizo o post com o nome e a solução.<br /><br />1.- Como gerar um dicionário que passe a saída para o aircrack-ng usando um pipe.<br /><br />2.- Como gerar um dicionário que não repita caracteres por linha e salvá-lo em um compactado (não importa o formato)<br /><br />Saudações e até a próxima.
ANTRAX ·
Muito boa contribuição cl0ud!<br />Tenho uma pequena dúvida. Para poder criar um dicionário de 6 caracteres de comprimento, utilizando todos os caracteres existentes, o comando seria algo assim?<br /><br />crunch 6 ualpha-numeric-all-space<br /><br />Saudações e muito obrigado!<br />ANTRAX
Cl0udswX ·
Cita de: ANTRAX en Diciembre 22, 2015, 11:49:15 PM<br />Muito boa contribuição cl0ud!<br />Tenho uma pequena dúvida. Para poder criar um dicionário de 6 caracteres de comprimento, utilizando todos os caracteres existentes, o comando seria algo assim?<br /><br />crunch 6 ualpha-numeric-all-space<br /><br />Saudações e muito obrigado!<br />ANTRAX<br />
<br /><br />Saudações Antrax,<br /><br />O comando seria:<br /><br /> crunch 6 6 -f charset.lst mixalpha-numeric-all-space<br /><br />Onde o vermelho seria o comprimento mínimo e o máximo.<br /><br />O verde seria o arquivo charset.lst (se não tivermos o arquivo no nosso home então é preciso especificar o caminho)<br /><br />E o azul seria o charset que contém todos os símbolos e números + o alfabeto tanto em minúsculas como em maiúsculas<br /><br />Nota: este comando geraria uma wordlist de 4 TB.  :o<br /><br />Saudações por aí.
Stuxnet ·
Excelente contribuição, parabéns pelo conteúdo  8)
Narciso ·
Cl0udswX,<br />você é uma pessoa muito inteligente. Escreveu para mim, bem detalhado e compreensível.<br />Parabéns e quero te incentivar a continuar fazendo essas coisas, pois são muito interessantes. <br />
Stiuvert ·
Incrível o crunch! <br />Incrível o Cl0d! <br /><br />Soube explicar perfeitamente seu funcionamento, parabéns porque outro dia algum usuário estava perguntando sobre isso. Lendo seu post se esclarecem muitas coisas e além disso você deixa dois exercícios para torná-lo ainda mais divertido. <br /><br />Vou procurar um tempo para realizar os exercícios e, de passagem, me surgiu uma primeira dúvida...<br /><br />Quando você quer gerar por exemplo uma wordlist como a que o ANTRAX disse, é possível saber antes o tamanho que ocupará? E se fizermos por arquivos separados de 5.000 linhas também? <br /><br />Obrigado
Cl0udswX ·
Cita de: Stiuvert en Diciembre 23, 2015, 04:40:31 AM<br />Quando você quer gerar por exemplo uma wordlist como a que o ANTRAX disse, é possível saber antes o tamanho que ocupará? <br />
<br /><br />Sim, depois de executar o comando o crunch avisa que serão geradas "x" quantidade de linhas assim como o tamanho do arquivo.<br /><br />
Cita de: Stiuvert en Diciembre 23, 2015, 04:40:31 AM<br />E se fizermos por arquivos separados de 5.000 linhas também? <br /><br />Obrigado<br />
<br /><br />Se separarmos o dicionário em arquivos menores então o crunch avisará o tamanho de cada arquivo, e irá marcando o progresso total em porcentagens.<br /><br />
Cita de: Narciso en Diciembre 23, 2015, 04:24:03 AM<br />Cl0udswX,<br />você é uma pessoa muito inteligente. Escreveu para mim, bem detalhado e compreensível.<br />Parabéns e quero te incentivar a continuar fazendo essas coisas, pois são muito interessantes. <br /><br />
<br /><br /> ;)
dynyly ·
salu2<br />estive ocupado e apareci pouco <br />obrigado pelo link de instruções mas talvez eu tenha me explicado mal<br />o que eu digo é fazer o crunch passar certos caracteres como letras e outros como números, bem até aí chego<br />mas o crunch coloca todo o alfabeto, eu queria por exemplo<br />crunch 13 13 123456789ABCDEFG que passasse só essas letras e não o alfabeto de letras inteiro além dos números logicamente..<br />há algum comando? não encontrei por lugar nenhum e estou há tempos com essa dúvida<br />se eu coloco crunch 13 13 123456789ABCDEFG -t 8,,%%,,,,%%%%   não é válido <br />e se você coloca  crunch 13 13 -t 8,,%%,,,,%%%%   sim mas como disse passa todo o alfabeto de letras, muito peso, gostaria de aliviar o peso<br /><br />pd ; os exercícios sei fazê-los mas no wifislax, isso não vale para enviar por privado?<br /> obrigado pelos baita tutoriais e informação que se encontram neste fórum
Cl0udswX ·
Desculpa mano, mas do mesmo modo que eu dedico tempo em escrevê-lo você deveria dedicar tempo e escrever sua dúvida de forma clara. <br /><br />É que não entendo o que você propõe. <br /><br />Saudações. <br /><br /><br />Enviado do meu iPhone utilizando Tapatalk
dynyly ·
salu2<br />como disse o crunch com <br />13 13 -t 8,,,,,%%%%,,,   passa todas as letras abcdefghijklmnñopqrstuvwxyz1234567890  em treze caracteres <br /><br />eu quero que passe o que disse, as letras que eu mandar sobre aquele caractere que eu quiser  ; e os números sobre o caractere que eu quiser <br /><br />testei e como disse crunch 13 13 -t 8,,,,,%%%%,,, passa todas as letras do alfabeto<br /> e eu não quero passar todas as letras, só as que eu disser ao crunch <br /><br />exemplo ; crunch 13 13 1234567890ABCDEFGH <br /> sei fazer os exercícios que você manda mas no wifislax, de fato compartilhei algo sobre o uso do crunch no wifislax <br /><br />espero que se entenda, acho que me explico bem
Stiuvert ·
Cita de: dynyly en Enero 04, 2016, 11:37:18 PM<br />exemplo ; crunch 13 13 1234567890ABCDEFGH <br /> sei fazer os exercícios que você manda mas no wifislax, de fato compartilhei algo sobre o uso do crunch no wifislax <br />
<br /><br />crunch 13 13 charset.lst numeric -t  abcefgh1234567890
Grupo de WhatsApp