Crunch é uma ferramenta de geração de senhas, ideal para ataques de força bruta quando:
- Você **sabe o padrão da senha** (ex: sempre começa com "admin", ou sempre tem 8 dígitos).
- Você quer **customizar totalmente** o conjunto de caracteres e o tamanho das senhas.
Crunch é **rápido, versátil e personalizável**, e funciona muito bem em conjunto com ferramentas como: [[Hydra]], [[John]], [[Hashcat]], [[Aircrack-ng]].
## Exemplos de uso
Gerar exemplos de 4 entradas com letras minusculas:
```shell
crunch 4 4 abcdefghijklmnopqrstuvwxyz
```
Gerar entradas de 4 a 6 caracteres com letras e números:
```shell
crunch 6 8 abcdefghijklmnopqrstuvwxyz0123456789
```
Salvar o resultado em um arquivo:
```shell
crunch 8 8 0123456789 -o numeros_8.txt
```
#### Padrões com placeholders (`@`, `%`, `^`)
| Caractere | Representa |
| --------- | ------------------- |
| `@` | letras minúsculas |
| `,` | letras maiúsculas |
| `%` | números |
| `^` | símbolos |
| `+` | todos os caracteres |
Senha que possui admin e três números em sequência:
```shell
crunch 8 8 -t admin%%% -o admin_senhas.txt
```
Senha do tipo: Uma letra maiúscula, 3 minúsculas, e 2 números:
```shell
crunch 6 6 -t ,@@@%%
```
Jogando a saída do Crunch no John:
```
crunch 6 6 abc123 | john --stdin --format=raw-md5 hashes.txt
```
### Charset
Os **Charsets** são arquivos ou padrões personalizados que definem **quais conjuntos de caracteres** serão usados em **cada posição** da senha.
```shell
# Sintaxe Básica
crunch <min> <max> -o <arquivo> -f <charset.lst> <charset-name>
```
Visualizando o charset default:
```
cat /usr/share/crunch/charset.lst
```
Utilizando um dos padrões de caracteres do charset:
```shell
crunch 6 8 -f /usr/share/crunch/charset.lst mixalpha-numeric -o custom.txt
```
É possível criar o seu próprio charset, veja como:
```shell
# 1. Crie um arquivo charset-new.txt
# 2. Adicione o seguinte conteúdo:
a = abcdef
b = 0123456789
# 3. Execute: crunch 6 6 -f ./charset-new.txt ab -o resultado.txt
```