
Une application Python modulaire pour récupérer des renseignements sur les fichiers malveillants.
Cet outil permet de collecter diverses sources de renseignements pour un fichier donné. Fileintel est conçu de manière modulaire afin que de nouvelles sources de renseignements puissent être facilement ajoutées.
Les fichiers sont identifiés par leur empreinte (MD5, SHA1, SHA256). La sortie est au format CSV et envoyée sur STDOUT afin que les données puissent être sauvegardées ou redirigées vers un autre programme. Comme la sortie est au format CSV, les tableurs comme Excel ou les systèmes de bases de données pourront facilement importer les données.
Ceci fonctionne avec Python v2, mais devrait aussi fonctionner avec Python v3. Si vous constatez qu'il ne fonctionne pas avec Python v3, veuillez ouvrir un ticket.
Ce code a été testé sur Windows 7 et Mac OSX El Capitan. Si vous l'essayez sur un autre type de machine, merci de me le faire savoir !
Vidéo de présentation de fileintel : https://youtu.be/MgJoy2fD0ZY
Contexte à partir de mon premier outil 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.
Tout d'abord, assurez-vous que votre fichier de configuration est correct pour votre ordinateur/installation. Ajoutez vos clés API et noms d'utilisateur comme approprié dans le fichier de configuration. Python et Pip sont nécessaires pour exécuter cet outil. Des modules doivent être installés depuis GitHub, donc assurez-vous que la commande git est disponible depuis votre ligne de commande. Git est facile à installer pour n'importe quelle plateforme. Ensuite, installez les dépendances Python (exécutez ceci à chaque fois que vous faites un git pull de ce dépôt également) :
$ pip install -r requirements.txt
Il y a eu quelques problèmes avec la version standard de Python sur Mac OSX (http://stackoverflow.com/questions/31649390/python-requests-ssl-handshake-failure). Vous devrez peut-être installer la partie sécurité de la bibliothèque requests avec la commande suivante :
$ pip install requests[security]
Si vous utilisez les recherches dans la base de données NSRL, téléchargez l'ensemble de données « Minimal » de NSRL sous forme de fichier zip. Placez-le dans un répertoire accessible et pointez votre fichier de configuration vers ce fichier zip. Il n'est pas nécessaire de décompresser les données NSRL.
Si vous souhaitez utiliser 7Zip (rapide) plutôt que la bibliothèque zip interne de Python (lente) pour lire le gros fichier zip NSRL, vous devrez installer 7Zip. L'installation de 7Zip sur Windows est assez simple, mais Mac OS X ou Linux devront installer p7zip, l'outil en ligne de commande. Pour Mac OS X, vous pouvez installer cet outil avec Brew. Une fois 7Zip installé, vous devrez pointer votre fichier de configuration vers l'emplacement de l'exécutable 7z.
Enfin, je suis un adepte de virtualenv pour Python. Pour créer une installation locale personnalisée de Python afin d'exécuter cet outil, je vous recommande de lire : http://docs.python-guide.org/en/latest/dev/virtualenvs/
$ python fileintel.py myconfigfile.conf myhashes.txt -a > myoutput.csv
Vous devriez pouvoir importer myoutput.csv dans n'importe quelle base de données ou tableur.
Notez qu'en fonction de votre réseau, de vos limites de clé API et des données que vous recherchez, ce script peut prendre beaucoup de temps ! Utilisez chaque module avec parcimonie ! En échange de cette longue attente, vous vous évitez d'avoir à récupérer ces données manuellement.
Il y a des exemples de données dans le répertoire « sampledata ». Les empreintes ont été choisies au hasard et ne visent en aucun cas une organisation ou un individu particulier. L'exécution de cet outil sur les exemples de données fonctionne de la manière suivante :
$ 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 ***
Cette application est couverte par la licence Creative Commons BY-SA.
Lisez Contributing.md