
Ideaslocas Repository
Questo progetto mira ad aiutare nella ricerca di password compromesse mantenendo un alto livello di privacy utilizzando il metodo della k-anonymity.
Per raggiungere questo obiettivo, vengono utilizzate le API di diversi servizi, inviando solo una parte dell'Hash della password che vogliamo controllare, ad esempio i primi 5 caratteri.
Il progetto necessita di alcune librerie per funzionare, per installarle usa il seguente comando:
pip install -r requirements
Ricorda che è richiesto Python 3.
passme.py [FUNC] [ELEMENT] -engine [ENGINE] -api_key [API_KEY]
FUNC: Il tipo di elemento che vuoi controllare, può essere -h/--hash o -p/--password
o -f/--file o -l/--list o --help.
ELEMENT: L'"Hash", "Password" o il nome del file che contiene una lista di
hash o password separati da una nuova riga.
ENGINE: Il motore di leaks che vuoi utilizzare, per impostazione predefinita usa HIBP (Have I been PWN).
API_KEY: La API_KEY necessaria per alcune funzioni di alcuni motori.
La funzione principale del progetto riceve la password hashata, il motore da utilizzare e la chiave API.
A seconda del motore ricevuto, sia la chiave API che la password hashata verranno inviate a una funzione o a un'altra.
Se vuoi aggiungere il tuo motore o un motore non ancora implementato, aggiungi semplicemente un'opzione in più qui.
passme_hash(hashed_password, engine="HIBP", api_key="0")
Questa funzione calcola l'hash della password ricevuta usando SHA-1 e invia l'hash alla funzione passme_hash().
passme_password(password, engine="HIBP", api_key="0")
Questa funzione legge una per una le righe del file ricevuto per controllare ogni password, fornendo informazioni sulla password ricevuta e se è stata filtrata o meno.
passme_file(filename, engine="HIBP", api_key="0")
Questa funzione legge una per una le righe del file ricevuto per controllare ogni hash, fornendo informazioni sull'hash ricevuto e se è stato filtrato o meno.
passme_list(filename, engine="HIBP", api_key="0")
La funzione che gestisce l'API HIBP (Have i been pwned), invia i primi cinque caratteri dell'hash, poi lo confronta con l'hash completo per vedere se la password/hash è stata compromessa.
engine_HIBP(hashed_password, engine, api_key)
Questo progetto ha una serie di test per verificare il corretto funzionamento di tutte le sue funzioni, a questo scopo è stata utilizzata la libreria "pytest". Per eseguire i test, installa pytest con il seguente comando:
pip install pytest
Una volta installato, basta eseguire il comando "pytest" per far eseguire automaticamente i test, eventuali errori verranno restituiti dal terminale.
I risultati del test in laboratorio sono i seguenti:
| Python Version | Function Hash | Function List | Function Password | RANDOM Hash | RANDOM Password | Comment |
|---|---|---|---|---|---|---|
| 3.9 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.8 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.7 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 3.5 | ✅ | ✅ | ✅ | ❌ | ❌ | Random.choice is not available in Python 3.5 // Deprecated Python Version |
Questo progetto è concesso in licenza sotto la GNU General Public License - consulta il file LICENSE per i dettagli
IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O ALTRIMENTI, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE.
Questo software non ha un processo di QA. Questo software è una Prova di Concetto.
Se hai problemi, puoi contattare:
[email protected] - Ideas Locas CDCO - Telefónica
In molti luoghi può essere un reato installare software su un computer che non ti appartiene, senza il consenso del proprietario. Non approviamo l'uso della PoC per scopi illegali. Per scaricare o utilizzare il nostro software in qualsiasi modo, devi riconoscere e approvare quanto segue:
1 - Dichiari che questa PoC sarà utilizzata esclusivamente in modo legale. In caso di dubbi sulla legalità, consulta un avvocato abilitato nella giurisdizione in cui utilizzerai questa PoC.
2 - Riconosci che il computer su cui deve essere installato il software è tuo o hai il consenso del proprietario per gestirlo e installarvi il software.