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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pcfg_cracker — Generador de conjeturas de contraseñas basado en Gramática Libre de Contexto Probabilística (PCFG) | Kitploit
Herramientas/GitHubGitHub/lakiw/pcfg_cracker
Descifrado de ContraseñasAtaques de ContraseñasCriptografíaAprendizaje Automático
GitHublakiw/pcfg_cracker

pcfg_cracker

Generador de conjeturas de contraseñas basado en Gramática Libre de Contexto Probabilística (PCFG)

Ver Repositorio
3708712hace 1 añoRevisado 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

PCFG = Probabilistic Context Free Grammar

PCFG = Pretty Cool Fuzzy Guesser

En resumen: Una colección de herramientas para investigar cómo los humanos generan contraseñas. Se pueden usar para descifrar hashes de contraseñas, pero también para crear contraseñas sintéticas (honeywords) o ayudar a desarrollar mejores algoritmos de fortaleza de contraseñas.

Versiones de las herramientas

Trainer: 4.4

Guesser: 4.6

PRINCE_LING: 4.3

Password_Scorer: 4.4

Documentación

Se utiliza Sphinx para crear dinámicamente una Guía para Desarrolladores basada en los docstrings del código. Para construir la Guía para Desarrolladores, consulte las instrucciones en /doc/INSTRUCTIONS.rst

También se puede encontrar una Guía para Desarrolladores preconstruida en PDF en /doc/build/latex/pcfgdevelopersguide.pdf. Nota: no voy a reconstruir esta guía entre versiones importantes para mantener el historial de git más limpio. Es decir, hacer commits de PDFs se vuelve muy desordenado muy rápido. Esto significa que la guía preconstruida puede estar ligeramente desactualizada, por lo que si la usas para ayudarte a escribir/modificar código, se recomienda construir la guía tú mismo en lugar de usar la preconstruida.

Resumen

Este proyecto utiliza aprendizaje automático para identificar los hábitos de creación de contraseñas de los usuarios. Se genera un modelo PCFG entrenando con una lista de contraseñas de texto plano divulgadas/descifradas. En el contexto de este proyecto, el modelo se denomina conjunto de reglas y contiene muchas partes diferentes de las contraseñas identificadas durante el entrenamiento, junto con sus probabilidades asociadas. Esta derivación puede ser útil para otras herramientas de descifrado como PRINCE, y/o partes del conjunto de reglas pueden incorporarse directamente en ataques de diccionario más tradicionales. Este proyecto también incluye un generador de conjeturas PCFG que utiliza este conjunto de reglas para generar conjeturas de contraseñas en orden de probabilidad. Esto es mucho más potente que los ataques de diccionario estándar, y en las pruebas se ha demostrado que puede descifrar contraseñas en promedio con significativamente menos conjeturas que otros métodos disponibles públicamente. La desventaja es que generar conjeturas en orden de probabilidad es lento, lo que significa que crea en promedio entre 50 y 100 mil conjeturas por segundo, mientras que los algoritmos basados en GPU pueden crear millones y miles de millones (y más) de conjeturas por segundo contra algoritmos de hash rápidos. Por lo tanto, el adivinador PCFG es mejor usado contra grandes cantidades de hashes salados u otros algoritmos de hash lentos, donde el costo de rendimiento del algoritmo se compensa con la precisión de las conjeturas.

Requisitos e Instalación

  • Python3 es el único requisito estricto para estas herramientas
  • Se recomienda encarecidamente instalar la biblioteca chardet de python3 para el entrenamiento. Aunque no es obligatorio, realiza la detección automática de la codificación de caracteres de las contraseñas de entrenamiento. Para instalarla:
  • Descargue el código fuente de https://pypi.python.org/pypi/chardet
  • O instálela usando pip3 install chardet

Guía de inicio rápido

Entrenamiento

El conjunto de reglas predeterminado incluido en este repositorio se creó entrenando con un subconjunto de 1 millón de contraseñas del conjunto de datos RockYou. Se puede lograr un mejor rendimiento entrenando con el conjunto completo de 32 millones de contraseñas de RockYou, pero se excluyó para mantener el tamaño de descarga pequeño. Puede usar el conjunto de reglas predeterminado para comenzar a generar contraseñas sin tener que entrenar con una nueva lista, pero se recomienda entrenar con un conjunto objetivo de contraseñas que pueda estar más cerca de lo que intenta atacar. Si crea su propio conjunto de reglas, aquí tiene una guía rápida:

  1. Identifique un conjunto de contraseñas de texto plano para entrenar.
  • Este conjunto de contraseñas debe incluir contraseñas duplicadas. De esa manera, el entrenador puede identificar que contraseñas comunes como 123456 son comunes.
  • Las contraseñas deben estar en texto plano, con los hashes y la información asociada (como nombres de usuario) eliminados. No intente usar archivos .pot sin procesar como conjunto de entrenamiento, ya que el programa de entrenamiento considerará los hashes como parte de la contraseña.
  • Las contraseñas deben estar codificadas de la misma manera en que desea generar las conjeturas de contraseñas. Por lo tanto, si desea crear conjeturas de contraseñas en UTF-8, el conjunto de entrenamiento también debe estar codificado en UTF-8. A largo plazo, la capacidad de modificar esto al generar conjeturas está en el plan de desarrollo, pero esa característica actualmente no es compatible.
  • La lista de contraseñas de entrenamiento debe tener entre 100k y 50 millones. Todavía se están realizando pruebas sobre cómo el tamaño de la lista de contraseñas de entrenamiento afecta la generación de conjeturas, y se ha tenido éxito incluso con listas de contraseñas tan pequeñas como 10k, pero un tamaño ideal probablemente sea alrededor de 1 millón, con rendimientos decrecientes después de eso.
  • Para los fines de este tutorial, la lista de contraseñas de entrada se denominará INPUT_PASSWORD_LIST
  1. Elija un nombre para su conjunto de reglas generado. Para los fines de este tutorial, será NEW_RULESET
  2. Ejecute el entrenador en la lista de contraseñas de entrada
  • python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET
  • Banderas opcionales comunes: a. coverage: Cuánto confía en que el conjunto de entrenamiento coincida con las contraseñas objetivo. Una cobertura más alta significa usar menos generación por fuerza bruta inteligente mediante modelado Markov (actualmente usando el algoritmo OMEN). Si establece la cobertura en 1, no se realizará fuerza bruta. Si establece la cobertura en 0, solo generará conjeturas usando ataques Markov. Este valor es un flotante, con el valor predeterminado de 0.6, lo que significa que espera un 60% de probabilidad de que las palabras base de la contraseña objetivo se encuentren en el conjunto de entrenamiento. Ejemplo: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET -c 0.6 b. --save_sensitive: Si se especifica, los datos sensibles como direcciones de correo electrónico y sitios web completos que se descubran durante el entrenamiento se guardarán en el conjunto de reglas. Aunque el generador de conjeturas PCFG actualmente no utiliza estos datos, son muy valiosos durante un ataque real de descifrado de contraseñas. Esta opción está desactivada por defecto para facilitar el uso de esta herramienta en un entorno académico. Tenga en cuenta que, incluso cuando está desactivada, casi con seguridad seguirá habiendo datos de PII guardados dentro de un conjunto de reglas, así que proteja adecuadamente los conjuntos de reglas generados. Ejemplo: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET --save_sensitive c. --comments: Agrega un comentario al archivo de configuración de su conjunto de reglas. Esto es útil para saber por qué y cómo generó su conjunto de reglas cuando lo revise más tarde. Incluya el comentario que desee agregar entre comillas.

Generación de conjeturas

Esto genera conjeturas en stdout usando un conjunto de reglas PCFG previamente entrenado. Estas conjeturas se pueden redirigir a cualquier programa que desee utilizarlas. Si no se especifica ningún conjunto de reglas, se usará el conjunto de reglas predeterminado DEFAULT. Para los fines de esta guía, se asumirá que el conjunto de reglas utilizado es NEW_RULESET.

Descargar herramienta