Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
OMEN — Generador de contraseñas basado en modelos de Markov en C que enumera candidatos por probabilidad, generando primero las contraseñas más probables para el cracking de hashes mediante Hashcat o John. | Kitploit
Herramientas/GitHubGitHub/rub-syssec/omen
Descifrado de ContraseñasAtaques de ContraseñasAnálisis de HashCriptografíaUtilidades y FrameworksPapers e Investigación
GitHubrub-syssec/omen

OMEN

Generador de contraseñas basado en modelos de Markov en C que enumera candidatos por probabilidad, generando primero las contraseñas más probables para el cracking de hashes mediante Hashcat o John.

Ver Repositorio
33544hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

OMEN: Enumerador Markov Ordenado

OMEN es un adivinador de contraseñas basado en modelos de Markov escrito en C. Genera candidatos a contraseñas según sus probabilidades de aparición, es decir, produce primero las contraseñas más probables. OMEN mejora significativamente la velocidad de adivinación respecto a propuestas existentes. Si estás interesado en los detalles sobre cómo OMEN mejora los enfoques existentes de adivinación de contraseñas basados en modelos de Markov, consulta OMEN: Faster Password Guessing Using an Ordered Markov Enumerator.

Guía de Usuario

OMEN consta de dos módulos de programa separados: createNG y enumNG. createNG calcula las probabilidades de n-gramas basándose en una lista de contraseñas dada y las almacena en el disco duro. Basándose en estas probabilidades, enumNG enumera nuevas contraseñas en el orden correcto (descendente).

Instalación

Usa una versión reciente de Linux y asegúrate de tener instalados git (sistema de control de versiones Git), gcc (GNU Compiler Collection) y make (GNU Make). Puedes instalarlo en Ubuntu Linux mediante:

$ sudo apt-get install build-essential git

Obtén el código fuente mediante:

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

Cambia al directorio recién creado OMEN y ejecuta:

$ make

Si la compilación es exitosa, puedes encontrar createNG y enumNG dentro del directorio actual.

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

Si lo deseas, ahora puedes eliminar la carpeta src y el archivo makefile, ya no se utilizan.

¿Usuario de Windows?

Puedes encontrar una breve guía de instalación usando Cygwin en Windows 10 aquí.

Uso Básico

Antes de poder generar cualquier contraseña, se deben estimar las probabilidades de n-gramas usando createNG. Para calcular las probabilidades usando la configuración predeterminada, se debe llamar a createNG proporcionando una ruta a una lista de contraseñas que se debe entrenar:

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

Cada contraseña de la lista dada debe estar en una nueva línea. El módulo entonces lee y evalúa la lista generando un par de archivos. Además de un archivo de configuración (createConfig) que almacena la configuración usada (en este caso la configuración predeterminada), se crean varios archivos que contienen información sobre los gramas y la longitud de las contraseñas. Estos archivos tienen la extensión '.level':

  • IP.level (Initial Probability): Almacena las probabilidades del primer (n-1)-grama de cada contraseña.
  • CP.level (Conditional Probability): Almacena las probabilidades de los n-gramas reales.
  • EP.level (End Probability): Almacena las probabilidades del último (n-1)-grama de cada contraseña.
  • LN.level (Length): Almacena las probabilidades para la longitud de la contraseña.

Las probabilidades de cada n-grama y las longitudes se asignan a niveles entre 0 (más probable) y 10 (menos probable). Una vez que se crean esos archivos, se puede usar enumNG para generar una lista de contraseñas ordenadas por probabilidades. Actualmente, enumNG admite tres modos de operación: file, stdout, simulated plaintext attack. En el modo predeterminado de enumNG, se crea una lista de conjeturas de contraseñas basada en estos niveles. Usando el comando

$ ./enumNG

genera 1.000 millones de contraseñas y las almacena en un archivo de texto, que se puede encontrar en la carpeta 'results'. Las contraseñas en este archivo están ordenadas por nivel (es decir, por probabilidad). Dado que los editores de texto comunes no pueden manejar archivos tan grandes, se recomienda para pruebas reducir el número de contraseñas creadas. Esto se puede hacer usando el argumento -m.

$ ./enumNG -m 10000

Creará una lista ordenada con solo 10.000 contraseñas. Si estás interesado en imprimir las contraseñas al flujo de salida estándar (stdout) usa el argumento -p.

$ ./enumNG -p -m 10000

Si estás interesado en evaluar el rendimiento de adivinación contra un conjunto de pruebas de contraseñas en texto plano usa el argumento -s. Ten en cuenta: En este modo OMEN se beneficia del algoritmo de programación de longitud adaptativa que incorpora retroalimentación en vivo, que no está disponible (debido a la falta de canal de retroalimentación) en los modos file y stdout.

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

El resultado de esta evaluación se puede encontrar en la carpeta 'results'.

Ambos módulos proporcionan un diálogo de ayuda que se puede mostrar usando el argumento -h o --help.

Cracking de Contraseñas

¿Cómo llegar desde $2a$10$HNYF4KajSTqxIP/KoiB5tOCVeKUgvscTh32hhAmppFk4T/USmI2B. hasta "GoodOMEN!123"?

Ética

OMEN fue desarrollado para casos de uso académicos como mejorar el modelado probabilístico de contraseñas, estimar números de conjeturas o la fortaleza de contraseñas, en general, para mejorar la seguridad de las contraseñas. No abuses de este software para dañar la privacidad de otras personas o para infringir la ley.

Ataques de Preimagen

Evaluadores de hash populares como Hashcat y John the Ripper admiten cientos de formatos de hash y cifrado y podrían integrarse fácilmente debido a su soporte para leer candidatos a contraseñas a través de su flujo de entrada estándar (stdin).

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

o

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

Para un rendimiento de adivinación óptimo, considera entrenar createNG con una distribución de contraseñas similar a la que deseas crackear.

Ten en cuenta: Usar modelado probabilístico de contraseñas para crackear contraseñas, en general, solo debería considerarse contra hashes lentos (por ejemplo, bcrypt, PBKDF2, scrypt o Argon2) donde el número de conjeturas factibles es limitado o en ataques muy dirigidos. En contraste, para hashes muy rápidos (MD5, SHA-1 o NTLM), usar buenos diccionarios y reglas de mangling (por ejemplo, best64.rule) es el camino a seguir.

Si estás interesado en este tema, considera leer los siguientes artículos y su trabajo relacionado (esta lista está incompleta, puedes ayudar ampliándola):

Gramáticas Probabilísticas Libres de Contexto

  • 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
Descargar herramienta