
Un'applicazione Python modulare per ottenere intelligence su file dannosi.
Questo è uno strumento usato per raccogliere varie fonti di intelligence per un dato file. Fileintel è scritto in modo modulare, in modo che nuove fonti di intelligence possano essere facilmente aggiunte.
I file sono identificati dall'hash del file (MD5, SHA1, SHA256). L'output è in formato CSV e inviato a STDOUT in modo che i dati possano essere salvati o reindirizzati a un altro programma. Poiché l'output è in formato CSV, fogli di calcolo come Excel o sistemi di database potranno facilmente importare i dati.
Funziona con Python v2, ma dovrebbe funzionare anche con Python v3. Se scopri che non funziona con Python v3, per favore apri un issue.
Questo codice è stato testato su Windows 7 e Mac OSX El Capitan. Se provi su qualsiasi altro tipo di macchina, per favore fammelo sapere!
Un video introduttivo per fileintel: https://youtu.be/MgJoy2fD0ZY
Background dal mio primo strumento hostintel: https://github.com/keithjjones/hostintel
$ python fileintel.py -h
usage: fileintel.py [-h] [-a] [-v] [-n] [-o] [-t] [-r]
ConfigurationFile InputFile
Modular application to look up file intelligence information. Outputs CSV to
STDOUT.
positional arguments:
ConfigurationFile Configuration file
InputFile Input file, one hash per line (MD5, SHA1, SHA256)
optional arguments:
-h, --help show this help message and exit
-a, --all Perform All Lookups.
-v, --virustotal VirusTotal Lookup.
-n, --nsrl NSRL Lookup for SHA-1 and MD5 hashes ONLY!
-o, --otx OTX by AlienVault Lookup.
-t, --threatcrowd ThreatCrowd Lookup for SHA-1 and MD5 hashes ONLY!
-r, --carriagereturn Use carriage returns with new lines on csv.
Prima di tutto, assicurati che il file di configurazione sia corretto per il tuo computer/installazione. Aggiungi le tue chiavi API e i nomi utente appropriati nel file di configurazione. Python e Pip sono necessari per eseguire questo strumento. Ci sono moduli che devono essere installati da GitHub, quindi assicurati che il comando git sia disponibile dalla tua riga di comando. Git è facile da installare su qualsiasi piattaforma. Successivamente, installa i requisiti di Python (esegui questo comando ogni volta che fai git pull di questo repository):
$ pip install -r requirements.txt
Ci sono stati alcuni problemi con la versione standard di Python su Mac OSX (http://stackoverflow.com/questions/31649390/python-requests-ssl-handshake-failure). Potrebbe essere necessario installare la parte di sicurezza della libreria requests con il seguente comando:
$ pip install requests[security]
Se stai utilizzando le ricerche nel database NSRL, scarica il set di dati NSRL "Minimal" come file zip. Mettilo in una directory accessibile e punta il tuo file di configurazione a quel file zip. Non è necessario decomprimere i dati NSRL.
Se desideri utilizzare 7Zip (veloce) invece della libreria zip interna di Python (lenta) per leggere il grande file zip NSRL, dovrai installare 7Zip. L'installazione di 7Zip su Windows è abbastanza semplice, ma Mac OS X o Linux dovranno installare p7zip, lo strumento a riga di comando. Per Mac OS X, puoi installare questo strumento con Brew. Una volta installato 7Zip, dovrai puntare il tuo file di configurazione alla posizione appropriata in cui si trova l'eseguibile 7z.
Infine, sono un fan di virtualenv per Python. Per creare un'installazione locale
personalizzata di Python per eseguire questo strumento, ti consiglio di leggere:
http://docs.python-guide.org/en/latest/dev/virtualenvs/
$ python fileintel.py myconfigfile.conf myhashes.txt -a > myoutput.csv
Dovresti essere in grado di importare myoutput.csv in qualsiasi database o programma di foglio di calcolo.
Nota che a seconda della tua rete, dei limiti della tua chiave API e dei dati che stai cercando, questo script può essere eseguito per molto tempo! Utilizza ogni modulo con parsimonia! In cambio della lunga attesa, ti risparmi di dover estrarre questi dati manualmente.
Ci sono alcuni dati di esempio nella directory "sampledata". Gli hash sono stati scelti a caso e non intendono in alcun modo prendere di mira alcuna organizzazione o individuo. L'esecuzione di questo strumento sui dati di esempio funziona nel modo seguente:
$ python fileintel.py local/config.conf sampledata/smallerlist.txt -a > sampledata/smallerlist.csv
INFO: Using 7Zip from: /usr/local/bin/7z
Preprocessing NSRL database.... please hold...
*** Processing 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953a ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953b ***
*** Processing 92945627f32dfde376ffb7091b5faad2 ***
*** Processing 92945627f32dfde376ffb7091b5faad1 ***
*** Processing CEEF161D68AE2B690FA9616361271578 ***
*** Processing D41D8CD98F00B204E9800998ECF8427E ***
*** Processing B284A42B124849E71DBEF653D30229F1 ***
*** Processing 0322A0BA58B95DB9A2227F12D193FDDEA74CFF89 ***
*** Processing E02CE6D73156A11BA84A798B26DE1D12 ***
*** Processing B4ED7AEDACD28CBBDE6978FB09C22C75 ***
*** Processing C6336EA255EFA7371337C0882D175BEE44CBBD49 ***
$ python fileintel.py local/config.conf sampledata/largerlist.txt -a > sampledata/largerlist.csv
INFO: Using 7Zip from: /usr/local/bin/7z
Preprocessing NSRL database.... please hold...
*** Processing 275a021bbfb6489e54d471899f7db9d1663fc695ec2fe2a2c4538aabf651fd0f ***
*** Processing 001025c6d4974fb2ccbea56f710282aca6c1353cc7120d5d4a7853688084953a ***
*** Processing CEEF161D68AE2B690FA9616361271578 ***
*** Processing D41D8CD98F00B204E9800998ECF8427E ***
*** Processing B284A42B124849E71DBEF653D30229F1 ***
*** Processing 0322A0BA58B95DB9A2227F12D193FDDEA74CFF89 ***
*** Processing E02CE6D73156A11BA84A798B26DE1D12 ***
*** Processing B4ED7AEDACD28CBBDE6978FB09C22C75 ***
*** Processing C6336EA255EFA7371337C0882D175BEE44CBBD49 ***
...
*** Processing 09a64957060121a765185392fe2ec742 ***
*** Processing e0ab52a76073bff4a27bdf327230103d ***
*** Processing 02a5bd561c140236a3380785a3544b71 ***
*** Processing 152c3bb23cc9cb0b0112051b94f69d47 ***
*** Processing 2c9a5e7ce87259ec89e182416ac3a4f8 ***
*** Processing c777b094a3469610d81c139c952e380e ***
*** Processing aa58d9126ed96fa61f53e4f6c0bcd6b4 ***
*** Processing a68e53c42e2d0968e2fbcd168323725f ***
*** Processing a1651db6630f90b11576389aa714ad41 ***
Questa applicazione è coperta dalla licenza Creative Commons BY-SA.
Leggi Contributing.md