Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
OMEN — Generatore di password basato su modello di Markov in C che enumera i candidati per probabilità, generando prima le password più probabili per il cracking di hash tramite Hashcat o John. | Kitploit
Strumenti/GitHubGitHub/rub-syssec/omen
Password CrackingAttacchi alle PasswordAnalisi HashCrittografiaUtilità e FrameworkPaper e Ricerca
GitHubrub-syssec/omen

OMEN

Generatore di password basato su modello di Markov in C che enumera i candidati per probabilità, generando prima le password più probabili per il cracking di hash tramite Hashcat o John.

Vedi Repository
335447 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

OMEN: Ordered Markov ENumerator

OMEN è un password guesser basato su modello Markov scritto in C. Genera candidati password in base alle loro probabilità di occorrenza, ovvero restituisce prima le password più probabili. OMEN migliora significativamente la velocità di guessing rispetto alle proposte esistenti. Se sei interessato ai dettagli su come OMEN migliori gli approcci esistenti di password guessing basati su modello Markov, fai riferimento a OMEN: Faster Password Guessing Using an Ordered Markov Enumerator.

Guida Utente

OMEN è composto da due moduli programma separati: createNG e enumNG. createNG calcola le probabilità degli n-grammi in base a una data lista di password e le memorizza su disco. In base a queste probabilità enumNG enumera nuove password nell'ordine corretto (decrescente).

Installazione

Usa una versione recente di Linux e assicurati di aver installato git (sistema di controllo versione Git), gcc (GNU Compiler Collection) e make (GNU Make). Puoi installarli su Ubuntu Linux tramite:

$ sudo apt-get install build-essential git

Scarica il codice sorgente tramite:

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

Spostati nella directory appena creata OMEN ed esegui:

$ make

Se la compilazione ha successo, puoi trovare createNG e enumNG nella directory corrente.

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

Se vuoi, ora puoi rimuovere la cartella src e il file makefile, non sono più utilizzati.

Utente Windows?

Una breve guida all'installazione usando Cygwin su Windows 10 è disponibile qui.

Utilizzo Base

Prima di poter generare qualsiasi password, le probabilità degli n-grammi devono essere stimate usando createNG. Per calcolare le probabilità usando le impostazioni predefinite, createNG deve essere invocato fornendo un percorso a una lista di password su cui effettuare il training:

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

Ogni password della lista fornita deve essere su una nuova riga. Il modulo quindi legge e valuta la lista generando una serie di file. Oltre a un file di configurazione (createConfig) che memorizza le impostazioni usate (in questo caso l'impostazione predefinita), vengono creati diversi file contenenti informazioni sui grammi e sulla lunghezza delle password. Questi file hanno l'estensione '.level':

  • IP.level (Initial Probability): Memorizza le probabilità del primo (n-1)-gramma di ogni password.
  • CP.level (Conditional Probability): Memorizza le probabilità degli effettivi n-grammi.
  • EP.level (End Probability): Memorizza le probabilità dell'ultimo (n-1)-gramma di ogni password.
  • LN.level (Length): Memorizza le probabilità per la lunghezza della password.

Le probabilità di ogni n-gramma e le lunghezze sono mappate su livelli tra 0 (più probabile) e 10 (meno probabile). Una volta creati questi file, enumNG può essere usato per generare una lista di password ordinate per probabilità. Attualmente, enumNG supporta tre modalità operative: file, stdout, simulated plaintext attack. Nella modalità predefinita di enumNG, viene creata una lista di tentativi di password basata su questi livelli. Usando il comando

$ ./enumNG

vengono generate 1 miliardo di password e memorizzate in un file di testo, che può essere trovato nella cartella 'results'. Le password in questo file sono ordinate per livello (cioè per probabilità). Poiché gli editor di testo comuni non sono in grado di gestire file così grandi, per i test si raccomanda di ridurre il numero di password create. Questo può essere fatto usando l'argomento -m.

$ ./enumNG -m 10000

Creerà una lista ordinata con solo 10.000 password. Se sei interessato a stampare le password sullo standard output (stdout) stream usa l'argomento -p.

$ ./enumNG -p -m 10000

Se sei interessato a valutare le prestazioni di guessing rispetto a un set di test di password in plaintext usa l'argomento -s. Nota bene: in questa modalità OMEN beneficia dell'algoritmo adattivo di scheduling della lunghezza che incorpora feedback live, non disponibile (a causa del canale di feedback mancante) nelle modalità file e stdout.

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

Il risultato di questa valutazione può essere trovato nella cartella 'results'.

Entrambi i moduli forniscono una finestra di aiuto che può essere mostrata usando l'argomento -h o --help.

Password Cracking

Come passare da $2a$10$HNYF4KajSTqxIP/KoiB5tOCVeKUgvscTh32hhAmppFk4T/USmI2B. a "GoodOMEN!123"?

Etica

OMEN è stato sviluppato per casi d'uso accademici come migliorare la modellazione probabilistica delle password, stimare i guess numbers o la robustezza delle password, in generale, per migliorare la sicurezza delle password. Non abusare di questo software per danneggiare la privacy altrui o violare la legge.

Preimage Attacks

I valutatori di hash più diffusi come Hashcat e John the Ripper supportano centinaia di formati di hash e cifratura e potrebbero essere facilmente integrati grazie al loro supporto per leggere i candidati password tramite il loro standard input (stdin) stream.

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

oppure

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

Per prestazioni di guessing ottimali, considera di addestrare createNG con una distribuzione di password simile a quella che desideri crackare.

Nota bene: usare la modellazione probabilistica delle password per crackare password, in generale, dovrebbe essere considerato solo contro hash lenti (ad esempio, bcrypt, PBKDF2, scrypt o Argon2) dove il numero di tentativi fattibili è limitato o in attacchi molto mirati. Al contrario, per hash molto veloci (MD5, SHA-1 o NTLM), usare buoni dizionari e regole di mangling (ad esempio, best64.rule) è la strada da seguire.

Se sei interessato a questo argomento, considera di leggere i seguenti paper e i loro lavori correlati (questa lista è incompleta, puoi contribuire ad ampliarla):

Probabilistic Context-Free Grammars

  • 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

Markov Models

  • 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
Scarica lo strumento