Inicialmente gostaria de declarar que não tenho a intenção de fazer deste trabalho um tema final sobre o assunto. Este aqui é apenas uma tradução, conforme poderão ver as referencias no final do arquivo. Ainda tem algumas coisas para terminar de traduzir, não conclui por falta de tempo, pois fui traduzindo manualmente cada parágrafo. Se mais alguém puder ajudar, fique a vontade em enviar a mim, mesmo que seja feito o mínimo e eu referenciarei aqui. Meu email é [email protected] . Podem me chamar de rafig. CRUNCH NOME:crunch DESCRIÇÃO: Crunch pode criar uma lista de palavras baseada no critério especificado por você. A saída do crunch pode ser enviada para a tela, para um arquivo ou para outro programa. Sintaxe: crunch <min-len> <max-len> [charset OR -f /path/to/charset.lst charset-name] [-o wordlist.txt] [-t [FIXED]@@@@] [-s startblock] [-c number] OBS: Aqui vai uma boa dica de informática. Numa sintaxe, todo valor que vier entre < e > são valores obrigatórios e todo valor que vier entre [ e ] são valores opcionais. PARAMETROS: min-len é o comprimento mínimo da palavra que você quer fazer o crunch iniciar. Esta opção é exigida mesmo para parâmetros os quais não serão usados. max-len é o comprimento maximo da palavra que você quer fazer o crunch terminar. Esta opção é exigida mesmo para parâmetros os quais não serão usados. [charset] é opcional. Você pode especificar o conjunto de caracteres para o crunch usar diretamente na linha de comando ou se você deixar em branco, o crunch usará o conjunto de caracteres padrão. A ordem deverá ser caracteres minúsculos, maiúsculos, números e símbolos. Se você não seguir esta ordem, você não irá obter o resultado esperado. Você deve especificar também valores para o tipo de caracter ou um sinal de mais. OBS.: Se você quiser usar espaços em branco no conjunto de caracteres especificados por você, então deverá colocá-lo entre aspas, assim: “abc “. Veja os exemplos 3, 11, 12 e 13. [-b number[type]] é opcional e especifica o tamanho do arquivo gerado. Somente funciona se usar a opção “-o START”. Exemplo: Vamos gerar um arquivo de 60MB: # . / crunch 4 5 -b 20mib –o START O resultado será a geração de 4(quatro) arquivos: aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt. Os valores válidos são do tipo kb, mb, gb, kib, mib, e gib. Os primeiros 3(três) tipos são baseados em 1000, enquanto que os 3(tres) últimos são baseados em 1024. OBS.: Não existe espaço entre o número e o tipo. Por exemplo, 500mb está correto, 500 mb não está correto. [-c number] é opcional e especifica o número de linhas do arquivo gerado. Somente funciona se usar a opção “-o START”. Exemplo: Vamos gerar um arquivo de 60 linhas: #./crunch 1 1 -f /pentest/password/crunch/charset.lst mixalpha-numeric-all-space -o START -c 60 O resultado serão 2(dois) arquivos: a-7.txt and 8-\ .txt. A razão da barra invertida no segundo arquivo é que o comando ls gera um “scape” quando imprimi na tela nomes de arquivos com espaços em branco no nome. Você sempre precisará colocar uma \ (barra invertida) quando especificar o nome de um arquivo em que o último caracter é um espaço em branco. [-f /path/to/charset.lst charset-name] é opcional e permite a você especificar o conjunto de caracteres baseado no arquivo charset.lst. Abra com um editor de texto qualquer, o arquivo charset.lst e veja os tipos de conjunto de caracteres especificados lá, são exatamente um destes que você irá escolher. [-i] inverte a saida. Ao invés de aaa,aab,aac,aad, etc, você obterá aaa,baa,caa,daa,aba,bba, etc. [-l] quando você usa a opção –t esta opção fala ao crunch que o símbolo deverá ser tratado como literalmente como letra e não como símbolo. Esta opção permitirá a você usar os espaços reservados como letras no padrão. Veja o exemplo 15. [-m] esta opção foi substituida por –p. Usar –p ao invés de –m. [-o wordlist.txt] é opcional e permite a você especificar o nome do arquivo de saída. [-p charset] OU [-p word1 word2 ...] é opcional e fala ao crunch gerar palavras que não devem se repetir. Por padrão o crunch geraria uma quantidade de palavras correspondente a potencia: (conjunto_de_caracteres)^(max_comprimento). Ao invés disso o crunch irá gerar uma quantidade de palavras correspondentes a um binomio igual ao número de letras do conjunto_de_caracteres. Por exemplo: Se você declarar o conjunto_de_caracteres como sendo “abc” e o comprimento maximo sendo 4, o Crunch por padrão geraria a potencia: 3^4=81 palavras. Ao invés disso ele irá gerar 3! = 6 ( binômio de 3 = a, b e c 3 letras). Isto quer dizer, 3! = 3.2.1 = 6 palavras (abc, acb, bac, bca, cab, cba). ESTA DEVERÁ SER A ÚLTIMA OPÇÃO! Esta opção não usa a opção –s e ela também ignora o min e max comprimento, entretanto estes dois valores ainda deverão ser especificados. [-q filename.txt] é opcional e fala ao crunch para ler o arquivo filename.txt e permutar o que for lido. Esta opção é semelhante a opção –p, exceto por obter a entrada do arquivo filename.txt. [-r] é opcional e fala ao crunch para gerar palavras de onde parou. Você deverá usar o mesmo comando anterior usado originalmente para gerar as palavras. A única exceção é a opção –s. Se seu comando original usava a opção –s você deverá remover esta opção antes de novamente começar a gerar palavras usando agora a opção –r. Basta adicionar a opção –r no final do comando original. [-s startblock] é opcional e permite a você especificar a string inicial. Exemplo: 03god22fs [-t @,%^] é opcional e permite a você especificar o padrão. Ex.: @@god@@@@ onde somente @, % e ^ serão mudados. O caracter @ irá inserir caracteres minúsculos e maiúsculos, o % irá inserir números e o ^ irá inserir símbolos. [-u] é opcional. Por padrão o crunch informará a você quantos dados e quantas linhas serão gerados. A opção –u suprime esta informação e com o uso do | (pipe) você poderá jogar a saída para um outro programa. [-z gzip, bzip2, or lzma] é opcional e comprime a saída do arquivo gerado com a opção –o. Os parâmetros válidos são gzip, bzip2, ou lzma. Gzip é mais rápido mas tem uma compressão mínima. Bzip é mais lento que gzip mas tem melhor compressão que gzip. Izma é o mais lento mas é o que tem melhor compressão. EXEMPLOS Exemplo 1: crunch 1 8 crunch mostrará na tela uma wordlist que começa em a e termina em zzzzzzzz. Exemplo 2: crunch 1 6 abcdefg crunch mostrará na tela uma wordlist usando o conjunto de caracter abcdefg que começa em a e termina em gggggg. Exemplo 3: crunch 1 6 abcdefg\ there is a space at the end of the character string. In order for crunch to use the space you will need to escape it using the \ character. In this Exemplo you could also put quotes around the letters and not need the \, i.e. "abcdefg ". Crunch will display a wordlist using the character set abcdefg that starts at a and ends at (6 spaces) Exemplo 4: crunch 1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt crunch will use the mixalpha-numeric-all-space character set from charset.lst and will write the wordlist to a file named wordlist.txt. The file will start with a and end with " " Exemplo 5: crunch 8 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt -t @@dog@@@ -s cbdogaaa crunch should generate a 8 character wordlist using the mixalpha-number-all-space characterset from charset.lst and will write the wordlist to a file named wordlist.txt. The file will start at cbdogaaa and end at " dog " Exemplo 6: crunch 2 3 -f charset.lst ualpha -s BB crunch with start generating a wordlist at BB and end with ZZZ. This is useful if you have to stop generating a wordlist in the middle. Just do a tail wordlist.txt and set the -s parameter to the next word in the sequence. Be sure to rename the original wordlist BEFORE you begin as crunch will overwrite the existing wordlist. Exemplo 7: crunch 4 5 -p abc Os numeros não são processados mas são necessários. crunch gerará abc, acb, bac, bca, cab, cba. Exemplo 8: crunch 4 5 -p dog cat bird Os numeros não são processados mas são necessários. crunch gerará birdcatdog, birddogcat, catbirddog, catdogbird, dogbirdcat, dogcatbird. Exemplo 9: crunch 1 5 -o START -c 6000 -z bzip2 crunch gerará o arquivo bzip2 comprimido com cada arquivo contendo 6000 palavras. O nome do arquivo comprimido será primeira_palavra-ultima_palavra.txt.bz2 # time ./crunch 1 4 -o START -c 6000 -z gzip real 0m2.729s user 0m2.216s sys 0m0.360s # time ./crunch 1 4 -o START -c 6000 -z bzip2 real 0m3.414s user 0m2.620s sys 0m0.580s # time ./crunch 1 4 -o START -c 6000 -z lzma real 0m43.060s user 0m9.965s sys 0m32.634s size filename 30K aaaa-aiwt.txt 12K aaaa-aiwt.txt.gz 3.8K aaaa-aiwt.txt.bz2 1.1K aaaa-aiwt.txt.lzma Exemplo 10: crunch 4 5 -b 20mib -o START Gerará 4 arquivos: aaaa-gvfed.txt, gvfee-ombqy.txt, ombqz-wcydt.txt, wcydu-zzzzz.txt Os primeiros tres arquivos são de 20MBs (real power of 2 MegaBytes) e os últimos são de 11MB. Exemplo 11: crunch 3 3 abc + 123 !@# -t @%^ will generate a 3 character long word with a character as the first character, and number as the second character, and a symbol for the third character. The order in which you specify the characters you want is important. You must specify the order as lower case character, upper case character, number, and symbol. If you aren't going use a particular character set you use a plus sign as a placeholder. As you can see I am not using the upper case character set so I am using the plus sign placeholder. The above will start at a1! and end at c3# Exemplo 12: crunch 3 3 abc + 123 !@# -t ^%@ Gerará 3 palavras de 3 caracteres começando com !1a e terminando com #3c Exemplo 13: crunch 4 4 + + 123 + -t %%@^ the plus sign (+) is a placeholder so you can specify a character set for the character type. crunch will use the default character set for the character type when crunch encounters a + (plus sign) on the command line. You must either specify values for each character type or use the plus sign. I.E. if you have two characters types you MUST either specify values for each type or use a plus sign. So in this Exemplo the character sets will be: abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 123 !@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/ Existe um espaço no final da string acima. A saída começará em 11a! e terminará em "33z ". A aspa mostra o espaço no final da string. Exemplo 14: crunch 5 5 -t ddd@@ -o j -p dog cat bird any character other than one of the following: @,%^ is the placeholder for the words to permute. The @,%^ symbols have the same function as -t. If you want to use @,%^ in your output you can use the -l option to specify which character you want crunch to treat as a literal. So the results are: birdcatdogaa birdcatdogab birdcatdogac <skipped> dogcatbirdzy dogcatbirdzz Exemplo 15: crunch 7 7 -t p@ss,%^ -l @ crunch tratará o simbolo @ como um caracter literal e não substituirá o caracter por uma letra maiúscula. Será gerado: p@ssA0! p@ssA0@ p@ssA0# p@ssA0$ <skipped> p@ssZ9 OBSERVAÇÃO: 1. Starting in version 2.6 crunch will display how much data is about to be generated. In 2.7 it will also display how many lines will be generated. Crunch will now wait 3 seconds BEFORE it begins generating data to give you time to press Ctrl-C to abort crunch if you find the values are too large for your application. 2. I have added hex-lower (0123456789abcdef) and hex-upper (0123456789ABCDEF) to Charset.lst. 3. Several people have requested that I add support for the space character to crunch. crunch has always supported the space character on the command line and in the charset.lst. To add a space on the command line you must escape it using the / character. See Exemplo 3 for the syntax. You may need to escape other characters like ! or # depending on your operating system. 4. Starting in 2.7 if you are generating a file then every 10 seconds you will receive the % done. 5. Starting in 3.0 I had to change the -t * character to a , as the * is a reserved character. You could still use it if you put a \ in front of the *. Yes it breaks crunch's syntax and I do my best to avoid doing that, but in this instance it is easier to make the change for long term support. 6. Some output is missing. A file didn't get generated. The mostly explaination is you ran out of disk space. If you have verified you have plenty of disk space then the problem is most likely the filename begins with a period. In Linux filenames that begin with a period are hidden. To view them do a ls -l .* 7. Crunch says The maximum and minimum length should be the same size as the pattern you specified, however the length is set correctly. This usually means your pattern contains a character that needs to be escaped. In bash you need to escape the followings: &, *, space, \, (, ), |, ', ", ;, <, >. The escape character in bash is a \. So a pattern that has a & and a * in it would look like this: crunch 4 4 -t \&\*d@ An alternative to escaping characters is to wrap your string with quotes. For Exemplo: crunch 4 4 -t "&*d@" If you want to use the " in your pattern you will need to escape it like this: crunch 4 4 -t "&*\"@" Please note that different terminals have different escape characters and probably have different characters that will need escaping. Please check the manpage of your terminal for the escape characters and characters that need escaping. AUTHOR This manual page was written by [email protected] Crunch version 1.0 was written by [email protected] all later versions of crunch have been updated by [email protected] FILES GPL.TXT Makefile charset.lst crunch.1 crunch.c $Home/pentest/passwords/crunch BUGS If you find any please email [email protected] or post to http://www.backtrack-linux.org COPYRIGHT 2009, 2010, 2011 bofh28 [email protected] This file is a part of Crunch. Crunch is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 only of the License. Crunch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Crunch. If not, see http://www.gnu.org/licenses/ .