Pydictor é uma ferramenta versátil escrita em Python, projetada para auxiliar na criação de dicionários de senhas customizados e eficientes, essenciais em testes de penetração e auditorias de segurança. Ele suporta desde a geração de listas básicas até dicionários complexos baseados em engenharia social e conteúdo de websites, além de oferecer utilitários para manipulação de arquivos de dicionário.
A ferramenta é compatível com Python 2.7 e Python 3.4+, rodando em Windows, Linux e macOS.
Funcionalidades Principais de Geração de Dicionários
Pydictor oferece diversos modos de geração:
-
Dicionários Base: Cria listas de senhas com base em conjuntos de caracteres predefinidos ou definidos pelo usuário, com controle sobre o comprimento e codificação (ex: Base64, MD5). ```bash
Exemplo: Geração de senhas com 2 a 3 caracteres, codificadas em Base64
python pydictor.py -base L --len 2 3 --encode b64
Exemplo: Geração de senhas com 1 a 3 caracteres usando letras minúsculas, maiúsculas e dígitos
python pydictor.py -base dLc --len 1 3 -o /diretorio/customizado/senhas
Exemplo: Geração de senhas de exatamente 4 dígitos, com prefixo "Pa5sw0rd"
python pydictor.py -base d --len 4 4 --head Pa5sw0rd --output C:\caminho\para\dicionario.txt
-
Conjuntos de Caracteres Customizados: Permite definir livremente os caracteres a serem utilizados na geração. ```bash
Exemplo: Senhas de 1 a 3 caracteres com caracteres específicos e sufixo "@site.com"
python pydictor.py -char "asdf123._@ " --len 1 3 --tail @site.com
-
Combinação de Elementos: Combina diferentes strings e caracteres em várias sequências. ```bash
Exemplo: Combina "abc", "123", "!@#" com prefixo "a" e sufixo "@pass", codificado em MD5
python pydictor.py -chunk abc 123 "!@#" @ . _ " " --head a --tail @pass --encode md5
-
Motor de Análise de Sintaxe: Permite definir regras complexas para geração usando um formato de configuração. ```bash
Exemplo: Usar arquivo de configuração padrão
python pydictor.py --conf
Exemplo: Usar um arquivo de configuração customizado
python pydictor.py --conf /meu/outro/config.conf
Exemplo: Definir regras diretamente na linha de comando
python pydictor.py --conf "[0-9]{6,6}[a-f,abc,123,!@#]{1,1}" --encode md5 --output analise.txt
-
Geração Rápida de Padrões: Cria dicionários seguindo um padrão específico, combinando diferentes tipos de caracteres e comprimentos. ```bash
Nota: A execução com Python 3 é geralmente mais rápida.
Cada elemento no padrão suporta apenas um caractere, exemplo: [digito]{1,1}
Exemplo: Gera um padrão com letras iniciais "abc", seguido por dígitos e letras minúsculas
python3 pydictor.py --head abc --pattern "[0-9]{1,1}[0-9]{1,1}[a-z]{1,1}[0-9]{1,1}[0-9]{1,1}[a-z]{1,1}[0-9]{1,1}[0-9]{1,1}" -o saida.txt
-
Expansão de Regras: Cria listas de senhas baseadas em regras de expansão, como leet speak e ocorrências. ```bash
Exemplo: Expande "bob" com nível 4, comprimentos de 4 a 12 caracteres.
python pydictor.py -extend bob --level 4 --len 4 12
Exemplo: Expande "liwei" e "zwell.com", com substituições leet speak, controlando níveis e ocorrências.
python pydictor.py -extend liwei zwell.com --more --leet 0 1 2 11 21 --level 2 --len 6 16 --occur "<=10" ">0" "<=2" -o possiveis.lst
Dicionários via Plugins (Extensíveis)
Pydictor suporta a criação de dicionários através de plugins, permitindo a integração de funcionalidades customizadas:
-
Dicionário de Aniversários: Gera senhas baseadas em intervalos de datas. ```bash
Exemplo: Gera senhas de 6 a 8 dígitos baseadas em aniversários de 1980 a 2000.
python pydictor.py -plug birthday 19800101 20001231 --len 6 8
-
Dicionário de CPF/ID Nacional: Gera senhas a partir das últimas 4, 6 ou 8 posições de um ID. ```bash
Exemplo: Gera senhas com os últimos 4 dígitos de um ID.
python pydictor.py -plug pid4
Exemplo: Gera senhas com os últimos 6 dígitos, codificadas em Base64.
python pydictor.py -plug pid6 --encode b64
Exemplo: Gera senhas com os últimos 8 dígitos, codificadas em SHA1.
python pydictor.py -plug pid8 --encode sha1 -o id8.txt
-
Dicionário de Palavras-chave de Websties: Extrai palavras-chave de URLs para gerar dicionários. ```bash
Exemplo: Usa a lista de URLs do arquivo /funcfg/scratch.sites.
python pydictor.py -plug scratch
Exemplo: Usa uma URL específica como entrada.
python pydictor.py -plug scratch http://www.exemplo.com
Ferramentas de Manipulação de Dicionários Integradas
Além da geração, Pydictor inclui utilitários para processar e gerenciar arquivos de dicionário:
-
Combinador de Dicionários: Junta múltiplos arquivos de dicionário. ```bash
Exemplo: Combina todos os arquivos no diretório /meu/diretorio/diversos.
python pydictor.py -tool combiner /meu/diretorio/diversos
-
Comparador de Dicionários: Identifica diferenças entre dois arquivos de dicionário. ```bash
Exemplo: Compara 'grande.txt' com 'pequeno.txt'.
python pydictor.py -tool comparer grande.txt pequeno.txt
-
Contador de Frequência: Calcula a frequência de palavras ou itens em um arquivo. ```bash
Exemplo: Conta os 1000 itens mais frequentes em 'enorme.txt'.
python pydictor.py -tool counter s enorme.txt 1000
Exemplo: Conta a frequência de itens por linha em '/tmp/diversos.txt'.
python pydictor.py -tool counter v /tmp/diversos.txt 100
Exemplo: Conta a frequência de itens codificados em URL.
python pydictor.py -tool counter vs enorme.txt 100 --encode url -o frequencia.txt
-
Processador de Dicionários: Aplica transformações como adição de sufixos e codificação. ```bash
Exemplo: Adiciona sufixo "@awesome.com" e codifica em MD5.
python pydictor.py -tool handler cru.txt --tail @awesome.com --encode md5
Exemplo: Filtra por comprimento e ocorrência, codifica em Base64.
python pydictor.py -tool handler cru.txt --len 6 16 --occur "" "=6" "<0" --encode b64 -o ok.txt
-
Removedor Seguro de Arquivos: Apaga arquivos de dicionário de forma segura. ```bash
Exemplo: Apaga todos os dicionários no diretório de saída atual.
python pydictor.py -tool shredder
Exemplo: Apaga arquivos que começam com "base".
python pydictor.py -tool shredder base
Exemplo: Apaga um arquivo específico.
python pydictor.py -tool shredder /dados/diversos/arquivo.zip
-
Combinador e Duplicador: Combina múltiplos arquivos e remove duplicatas. ```bash
Exemplo: Combina e remove duplicatas de todos os dicionários em /meu/todos/dicionarios/.
python pydictor.py -tool uniqbiner /meu/todos/dicionarios/
-
Removedor de Duplicatas: Remove linhas duplicadas de um arquivo de dicionário. ```bash
Exemplo: Remove duplicatas de 'dicionarios.txt' e salva em '/tmp/unico.txt'.
python pydictor.py -tool uniqifer /tmp/dicionarios.txt --output /tmp/unico.txt
-
Ferramenta Híbrida de Dicionários: Combina múltiplos arquivos em um formato híbrido. ```bash
Exemplo: Combina 'cabecalhos.txt', 'outros.txt' e 'sufixos.txt'.
python pydictor.py -tool hybrider cabecalhos.txt outros.txt sufixos.txt