Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
pcfg_cracker — Gerador de palpites de senhas baseado em Gramática Livre de Contexto Probabilística (PCFG) | Kitploit
Ferramentas/GitHubGitHub/lakiw/pcfg_cracker
Quebra de SenhasAtaques de SenhaCriptografiaAprendizado de Máquina
GitHublakiw/pcfg_cracker

pcfg_cracker

Gerador de palpites de senhas baseado em Gramática Livre de Contexto Probabilística (PCFG)

Ver Repositório
3708714há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

PCFG = Gramática Livre de Contexto Probabilística

PCFG = Guessador Difuso Muito Legal

Resumindo: Uma coleção de ferramentas para realizar pesquisas sobre como os humanos geram senhas. Elas podem ser usadas para quebrar hashes de senhas, mas também para criar senhas sintéticas (honeywords) ou ajudar a desenvolver melhores algoritmos de força de senha.

Versões das Ferramentas

Trainer: 4.4

Guesser: 4.6

PRINCE_LING: 4.3

Password_Scorer: 4.4

Documentação

Sphinx é usado para criar dinamicamente um Guia do Desenvolvedor baseado em docstrings no código. Para compilar o Guia do Desenvolvedor, consulte as instruções em /doc/INSTRUCTIONS.rst

Um PDF do Guia do Desenvolvedor pré-compilado também pode ser encontrado em /doc/build/latex/pcfgdevelopersguide.pdf. Nota: não vou reconstruir este guia entre versões principais para manter o histórico do git mais limpo. Ou seja, cometer PDFs fica muito bagunçado rapidamente. Isso significa que o guia pré-compilado pode estar um pouco desatualizado; portanto, se você estiver usando-o para ajudar a escrever/modificar código, é recomendável compilar o guia você mesmo em vez de usar o pré-compilado.

Visão Geral

Este projeto usa aprendizado de máquina para identificar hábitos de criação de senhas dos usuários. Um modelo PCFG é gerado treinando em uma lista de senhas em texto simples/reveladas. No contexto deste projeto, o modelo é chamado de ruleset e contém muitas partes diferentes das senhas identificadas durante o treinamento, juntamente com suas probabilidades associadas. Essa derivação pode ser útil para outras ferramentas de cracking, como PRINCE, e/ou partes do ruleset podem ser diretamente incorporadas em ataques de dicionário mais tradicionais. Este projeto também inclui um gerador de guesses PCFG que utiliza este ruleset para gerar palpites de senha em ordem de probabilidade. Isso é muito mais poderoso do que ataques de dicionário padrão e, em testes, provou ser capaz de quebrar senhas com significativamente menos palpites do que outros métodos publicamente disponíveis. A desvantagem é que gerar palpites em ordem de probabilidade é lento, criando em média 50-100k palpites por segundo, enquanto algoritmos baseados em GPU podem criar milhões a bilhões (e mais) de palpites por segundo contra algoritmos de hash rápidos. Portanto, o guesser PCFG é melhor usado contra grandes números de hashes com salt, ou outros algoritmos de hash lentos, onde o custo de desempenho do algoritmo é compensado pela precisão dos palpites.

Requisitos + Instalação

  • Python3 é o único requisito duro para estas ferramentas
  • É altamente recomendado que você instale a biblioteca chardet do Python3 para treinamento. Embora não seja obrigatório, ela realiza a detecção automática de codificação de caracteres das senhas de treinamento. Para instalá-la:
  • Baixe o código-fonte de https://pypi.python.org/pypi/chardet
  • Ou instale usando pip3 install chardet

Guia de Início Rápido

Treinamento

O ruleset padrão incluído neste repositório foi criado treinando em um subconjunto de 1 milhão de senhas do conjunto de dados RockYou. Melhor desempenho pode ser alcançado treinando no conjunto completo de 32 milhões de senhas do RockYou, mas isso foi excluído para manter o tamanho do download pequeno. Você pode usar o ruleset padrão para começar a gerar senhas sem precisar treinar em uma nova lista, mas é recomendado treinar em um conjunto alvo de senhas que possa estar mais próximo do que você está tentando atacar. Se você criar seu próprio ruleset, aqui está um guia rápido:

  1. Identifique um conjunto de senhas em texto simples para treinar.
  • Este conjunto de senhas deve incluir senhas duplicadas. Assim, o treinador pode identificar que senhas comuns como 123456 são comuns.
  • As senhas devem estar em texto simples, com hashes e informações associadas, como nomes de usuário, removidos. Não tente usar arquivos .pot brutos como conjunto de treinamento, pois os hashes serão considerados parte da senha pelo programa de treinamento.
  • As senhas devem estar codificadas da mesma forma que você deseja gerar palpites de senha. Ou seja, se você deseja criar palpites de senha em UTF-8, o conjunto de treinamento também deve estar codificado em UTF-8. A longo prazo, a capacidade de modificar isso ao gerar palpites está no plano de desenvolvimento, mas esse recurso atualmente não é suportado.
  • A lista de senhas de treinamento deve ter entre 100k e 50 milhões. Ainda estão sendo feitos testes sobre como o tamanho da lista de senhas de treinamento afeta a geração de palpites, e houve bons resultados mesmo com listas de senhas tão pequenas quanto 10k, mas um tamanho ideal é provavelmente cerca de 1 milhão, com retornos decrescentes após isso.
  • Para os fins deste tutorial, a lista de senhas de entrada será referida como INPUT_PASSWORD_LIST
  1. Escolha um nome para o seu ruleset gerado. Para os fins deste tutorial, será NEW_RULESET
  2. Execute o treinador na lista de senhas de entrada
  • python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET
  • Flags opcionais comuns: a. coverage: O quanto você confia que o conjunto de treinamento corresponde às senhas alvo. Uma cobertura maior significa usar menos geração de força bruta inteligente usando modelagem Markov (atualmente usando o algoritmo OMEN). Se você definir cobertura como 1, nenhuma força bruta será realizada. Se definir cobertura como 0, gerará apenas palpites usando ataques Markov. Este valor é um float, com o padrão sendo 0.6, o que significa que espera uma chance de 60% de que as palavras-base da senha alvo possam ser encontradas no conjunto de treinamento. Exemplo: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET -c 0.6 b. --save_sensitive: Se especificado, dados sensíveis como endereços de e-mail e sites completos descobertos durante o treinamento serão salvos no ruleset. Embora o gerador de guesses PCFG atualmente não utilize esses dados, eles são muito valiosos durante um ataque real de cracking de senhas. Isso está desligado por padrão para facilitar o uso desta ferramenta em um ambiente acadêmico. Observe que, mesmo quando desligado, quase certamente ainda haverá dados de PII salvos dentro de um ruleset, então proteja os rulesets gerados adequadamente. Exemplo: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET --save_sensitive c. --comments: Adiciona um comentário ao arquivo de configuração do ruleset. Isso é útil para saber por que e como você gerou seu ruleset ao revisá-lo posteriormente. Inclua o comentário que deseja adicionar entre aspas.

Geração de Palpites

Isso gera palpites para stdout usando um ruleset PCFG previamente treinado. Esses palpites podem então ser canalizados para qualquer programa que você queira usar. Se nenhum ruleset for especificado, o ruleset padrão DEFAULT será usado. Para os fins deste guia, assumiremos que o ruleset usado é NEW_RULESET.

Baixar ferramenta