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
OMEN — Adivinhador de senhas baseado em modelo de Markov em C que enumera candidatos por probabilidade, gerando as senhas mais prováveis primeiro para quebra de hash via Hashcat ou John. | Kitploit
Ferramentas/GitHubGitHub/rub-syssec/omen
Quebra de SenhasAtaques de SenhaAnálise de HashCriptografiaUtilitários e FrameworksPapers e Pesquisa
GitHubrub-syssec/omen

OMEN

Adivinhador de senhas baseado em modelo de Markov em C que enumera candidatos por probabilidade, gerando as senhas mais prováveis primeiro para quebra de hash via Hashcat ou John.

Ver Repositório
3354425há 7 anosRevisado 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
Site

OMEN: Ordered Markov ENumerator

OMEN é um adivinhador de senhas baseado em modelo de Markov escrito em C. Ele gera candidatos a senha de acordo com suas probabilidades de ocorrência, ou seja, ele produz as senhas mais prováveis primeiro. O OMEN melhora significativamente a velocidade de adivinhação em relação às propostas existentes. Se você estiver interessado nos detalhes de como o OMEN melhora as abordagens existentes de adivinhação de senhas baseadas em modelo de Markov, consulte OMEN: Faster Password Guessing Using an Ordered Markov Enumerator.

Guia do Usuário

O OMEN consiste em dois módulos de programa separados: createNG e enumNG. O createNG calcula as probabilidades de n-gramas com base em uma determinada lista de senhas e as armazena no disco rígido. Com base nessas probabilidades, o enumNG enumera novas senhas na ordem correta (decrescente).

Instalação

Use uma versão recente do Linux e certifique-se de ter instalado git (sistema de controle de versão Git), gcc (GNU Compiler Collection) e make (GNU Make). Você pode instalá-los no Ubuntu Linux via:

$ sudo apt-get install build-essential git

Faça o checkout do código-fonte via:

$ git clone https://github.com/RUB-SysSec/OMEN.git OMEN

Mude para o diretório recém-criado OMEN e execute:

$ make

Se a compilação for bem-sucedida, você poderá encontrar createNG e enumNG no diretório atual.

.
├── alphabetCreator
├── createNG
├── docs
│   ├── CHANGELOG.md
│   ├── LICENSE
│   └── screenshots
├── enumNG
├── evalPW
├── makefile
├── README.md
└── src
    ├── alphabetCreator.c
    ...

Se quiser, você pode agora remover a pasta src e o arquivo makefile, eles não são mais usados.

Usuário Windows?

Um breve guia de instalação usando Cygwin no Windows 10 pode ser encontrado aqui.

Uso Básico

Antes de gerar qualquer senha, as probabilidades de n-gramas devem ser estimadas usando createNG. Para calcular as probabilidades usando as configurações padrão, createNG deve ser chamado fornecendo um caminho para uma lista de senhas que deve ser treinada:

$ ./createNG --iPwdList password-training-list.txt

Cada senha da lista fornecida deve estar em uma nova linha. O módulo então lê e avalia a lista gerando alguns arquivos. Além de um arquivo de configuração (createConfig) que armazena as configurações usadas (neste caso, a configuração padrão), vários arquivos são criados contendo informações sobre os gramas e o comprimento da senha. Esses arquivos têm a extensão '.level':

  • IP.level (Initial Probability): Armazena as probabilidades do primeiro (n-1)-grama de cada senha.
  • CP.level (Conditional Probability): Armazena as probabilidades dos n-gramas propriamente ditos.
  • EP.level (End Probability): Armazena as probabilidades do último (n-1)-grama de cada senha.
  • LN.level (Length): Armazena as probabilidades para o comprimento da senha.

As probabilidades de cada n-grama e os comprimentos são mapeados para níveis entre 0 (mais provável) e 10 (menos provável). Uma vez que esses arquivos são criados, enumNG pode ser usado para gerar uma lista de senhas ordenadas por probabilidades. Atualmente, enumNG suporta três modos de operação: file, stdout, simulated plaintext attack. No modo padrão do enumNG, uma lista de adivinhações de senha baseada nesses níveis é criada. Usando o comando

$ ./enumNG

gera 1 bilhão de senhas e as armazena em um arquivo de texto, que pode ser encontrado na pasta 'results'. As senhas nesse arquivo são ordenadas por nível (ou seja, por probabilidade). Como editores de texto comuns não são capazes de lidar com arquivos tão grandes, recomenda-se, para testes, reduzir o número de senhas criadas. Isso pode ser feito usando o argumento -m.

$ ./enumNG -m 10000

Ele criará uma lista ordenada com apenas 10.000 senhas. Se você estiver interessado em imprimir as senhas para o fluxo de saída padrão (stdout) use o argumento -p.

$ ./enumNG -p -m 10000

Se você estiver interessado em avaliar o desempenho de adivinhação contra um conjunto de teste de senhas em plaintext use o argumento -s. Observe: Neste modo, o OMEN se beneficia do algoritmo adaptativo de agendamento de comprimento que incorpora feedback ao vivo, o qual não está disponível (devido ao canal de feedback ausente) nos modos file e stdout.

$ ./enumNG -s=password-testing-list.txt -m 10000

O resultado desta avaliação pode ser encontrado na pasta 'results'.

Ambos os módulos fornecem um diálogo de ajuda que pode ser mostrado usando o argumento -h ou --help.

Quebra de Senhas

Como ir de $2a$10$HNYF4KajSTqxIP/KoiB5tOCVeKUgvscTh32hhAmppFk4T/USmI2B. para "GoodOMEN!123"?

Ética

O OMEN foi desenvolvido para casos de uso acadêmicos como melhorar a modelagem probabilística de senhas, estimar números de tentativas ou força de senha, em geral, para melhorar a segurança de senhas. Não abuse deste software para prejudicar a privacidade de outras pessoas ou para infringir a lei.

Ataques de Pré-imagem

Avaliadores de hash populares como Hashcat e John the Ripper suportam centenas de formatos de hash e cifra e poderiam ser facilmente integrados devido ao seu suporte para ler candidatos a senha via seu fluxo de entrada padrão (stdin).

$ ./enumNG -p -m 10000 | ./hashcat64.bin ...

ou

$ ./enumNG -p -m 10000 | ./john --stdin ...

Para um desempenho ótimo de adivinhação, considere treinar o createNG com uma distribuição de senhas semelhante à que você deseja quebrar.

Observe: Usar modelagem probabilística de senhas para quebrar senhas, em geral, deve ser considerado apenas contra hashes lentos (por exemplo, bcrypt, PBKDF2, scrypt ou Argon2) onde o número de tentativas viáveis é limitado ou em ataques muito direcionados. Em contraste, para hashes muito rápidos (MD5, SHA-1 ou NTLM), usar bons dicionários e regras de mangling (por exemplo, best64.rule) é o caminho a seguir.

Se você estiver interessado neste tópico, considere ler os seguintes artigos e seus trabalhos relacionados (esta lista está incompleta, você pode ajudar expandindo-a):

Gramáticas Livres de Contexto Probabilísticas

  • Password Cracking Using Probabilistic Context-Free Grammars (SP '09)
  • Guess Again (and Again and Again): Measuring Password Strength by Simulating Password-Cracking Algorithms (SP '12)
  • On the Semantic Patterns of Passwords and their Security Impact (NDSS '14)
  • Next Gen PCFG Password Cracking (TIFS '15)
  • ...
  • Software A, Software B

Modelos de Markov

  • Fast Dictionary Attacks on Passwords Using Time-Space Tradeoff (CCS '05)
  • OMEN+: When Privacy meets Security: Leveraging personal information for password cracking (CoRR '13)
  • A Study of Probabilistic Password Models (SP '14)
  • OMEN: Faster Password Guessing Using an Ordered Markov Enumerator (ESSoS '15)
  • ...
  • Software A, Software B
Baixar ferramenta