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
pcfg_cracker — Generatore di tentativi di password basato su Grammatica Probabilistica Libera dal Contesto (PCFG) | Kitploit
Strumenti/GitHubGitHub/lakiw/pcfg_cracker
Password CrackingAttacchi alle PasswordCrittografiaMachine Learning
GitHublakiw/pcfg_cracker

pcfg_cracker

Generatore di tentativi di password basato su Grammatica Probabilistica Libera dal Contesto (PCFG)

Vedi Repository
37087141 anno 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

PCFG = Grammatica Probabilistica a Contesto Libero

PCFG = Indovinello Fuzzy Piuttosto Figo

In breve: Una raccolta di strumenti per condurre ricerche su come gli umani generano le password. Questi possono essere usati per craccare hash di password, ma anche per creare password sintetiche (honeywords) o aiutare a sviluppare migliori algoritmi di robustezza delle password.

Versioni degli Strumenti

Trainer: 4.4

Guesser: 4.6

PRINCE_LING: 4.3

Password_Scorer: 4.4

Documentazione

Sphinx viene utilizzato per creare dinamicamente una Guida per Sviluppatori basata sui docstring nel codice. Per costruire la Guida per Sviluppatori, fare riferimento alle istruzioni in /doc/INSTRUCTIONS.rst

Una Guida per Sviluppatori pre-costruita in PDF si trova anche in /doc/build/latex/pcfgdevelopersguide.pdf. Nota: non ricostruirò questa guida tra le versioni principali per mantenere la cronologia git più pulita. In pratica, fare commit di PDF diventa molto caotico molto rapidamente. Ciò significa che la guida pre-costruita potrebbe essere leggermente obsoleta, quindi se la stai usando per aiutarti a scrivere/modificare codice, si consiglia di costruire la guida da solo invece di usare quella pre-costruita.

Panoramica

Questo progetto utilizza l'apprendimento automatico per identificare le abitudini di creazione delle password degli utenti. Un modello PCFG viene generato addestrandosi su un elenco di password in chiaro/crackate divulgate. Nel contesto di questo progetto, il modello viene chiamato ruleset e contiene molte diverse parti delle password identificate durante l'addestramento, insieme alle loro probabilità associate. Questa derivazione (stemming) può essere utile per altri strumenti di cracking come PRINCE, e/o parti del ruleset possono essere incorporate direttamente in attacchi basati su dizionario più tradizionali. Questo progetto include anche un generatore di tentativi PCFG che utilizza questo ruleset per generare tentativi di password in ordine di probabilità. Questo è molto più potente degli attacchi standard al dizionario, e nei test si è dimostrato in grado di craccare password in media con significativamente meno tentativi rispetto ad altri metodi pubblicamente disponibili. Lo svantaggio è che generare tentativi in ordine di probabilità è lento, il che significa che crea in media 50-100k tentativi al secondo, mentre gli algoritmi basati su GPU possono creare milioni a miliardi (e oltre) di tentativi al secondo contro algoritmi di hashing veloci. Pertanto, il guesser PCFG è più adatto per l'uso contro grandi numeri di hash salati, o altri algoritmi di hashing lenti, dove il costo prestazionale dell'algoritmo è compensato dall'accuratezza dei tentativi.

Requisiti + Installazione

  • Python3 è l'unico requisito hardware per questi strumenti
  • È altamente raccomandato installare la libreria python3 chardet per l'addestramento. Sebbene non sia richiesta, esegue il rilevamento automatico della codifica dei caratteri delle password di addestramento. Per installarla:
  • Scarica il sorgente da https://pypi.python.org/pypi/chardet
  • Oppure installala usando pip3 install chardet

Guida Rapida

Addestramento

Il ruleset predefinito incluso in questo repository è stato creato addestrandosi su un sottoinsieme di 1 milione di password del dataset RockYou. Prestazioni migliori possono essere ottenute addestrandosi sull'intero set di 32 milioni di password per RockYou, ma ciò è stato escluso per mantenere piccola la dimensione del download. Puoi usare il ruleset predefinito per iniziare a generare password senza doverti addestrare su una nuova lista, ma si consiglia di addestrarsi su un insieme target di password che potrebbero essere più vicine a ciò che stai cercando di colpire. Se crei il tuo ruleset, ecco una guida rapida:

  1. Identifica un insieme di password in chiaro su cui addestrarti.
  • Questo insieme di password dovrebbe includere password duplicate. In questo modo l'addestratore può identificare che password comuni come 123456 sono comuni.
  • Le password devono essere in chiaro, con gli hash e le informazioni associate come i nomi utente rimossi. Non cercare di usare file .pot grezzi come insieme di addestramento poiché gli hash verranno considerati parte della password dal programma di addestramento.
  • Le password devono essere codificate nello stesso modo in cui vuoi generare i tentativi di password. Quindi, se vuoi creare tentativi di password UTF-8, anche l'insieme di addestramento deve essere codificato come UTF-8. A lungo termine, la possibilità di modificare questo aspetto durante la generazione dei tentativi è nel piano di sviluppo, ma al momento questa funzionalità non è supportata.
  • La lista di password di addestramento dovrebbe essere tra 100k e 50 milioni. I test sono ancora in corso su come la dimensione della lista di password di addestramento influenzi la generazione dei tentativi, e si è avuto buon successo anche con liste di password piccole come 10k, ma una dimensione ideale è probabilmente intorno a 1 milione, con rendimenti decrescenti oltre.
  • Ai fini di questo tutorial, la lista di password di input verrà chiamata INPUT_PASSWORD_LIST
  1. Scegli un nome per il ruleset generato. Ai fini di questo tutorial sarà NEW_RULESET
  2. Esegui l'addestratore sulla lista di password di input
  • python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET
  • Flag opzionali comuni: a. coverage: Quanto ti fidi dell'insieme di addestramento per corrispondere alle password target. Una copertura più alta significa utilizzare una generazione brute force meno intelligente utilizzando la modellazione Markov (attualmente usando l'algoritmo OMEN). Se imposti la copertura a 1, non verrà eseguita alcuna brute force. Se imposti la copertura a 0, genererà tentativi solo utilizzando attacchi Markov. Questo valore è un float, con il valore predefinito di 0.6 che significa che ci si aspetta una probabilità del 60% che le parole base della password target possano essere trovate nell'insieme di addestramento. Esempio: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET -c 0.6 b. --save_sensitive: Se specificato, i dati sensibili come indirizzi e-mail e siti web completi scoperti durante l'addestramento verranno salvati nel ruleset. Sebbene il generatore di tentativi PCFG attualmente non utilizzi questi dati, sono molto preziosi durante un vero attacco di cracking delle password. Questa opzione è disattivata per impostazione predefinita per rendere questo strumento più facile da usare in un contesto accademico. Nota: anche quando è disattivata, ci sarà quasi certamente comunque qualche dato PII salvato all'interno di un ruleset, quindi proteggi i ruleset generati di conseguenza. Esempio: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET --save_sensitive c. --comments: Aggiunge un commento al file di configurazione del ruleset. Questo è utile per sapere perché e come hai generato il ruleset quando lo rivedi in seguito. Includi il commento che vuoi aggiungere tra virgolette.

Generazione dei Tentativi

Questo genera tentativi su stdout utilizzando un ruleset PCFG precedentemente addestrato. Questi tentativi possono quindi essere reindirizzati tramite pipe a qualsiasi programma che desideri utilizzarli. Se non viene specificato alcun ruleset, verrà utilizzato il ruleset predefinito DEFAULT. Ai fini di questa guida si presuppone che il ruleset utilizzato sia NEW_RULESET.

Scarica lo strumento