
Une application Python modulaire pour collecter des renseignements sur les hôtes malveillants.
Cet outil est utilisé pour collecter diverses sources de renseignement concernant des hôtes. Hostintel est écrit de manière modulaire afin que de nouvelles sources de renseignement puissent être facilement ajoutées.
Les hôtes sont identifiés par nom d'hôte FQDN, domaine ou adresse IP. Cet outil ne prend en charge que l'IPv4 pour l'instant. La sortie est au format CSV et est 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, des tableurs comme Excel ou des systèmes de bases de données pourront facilement importer les données.
J'ai créé une courte introduction pour cet outil sur YouTube : https://youtu.be/aYK0gILDA6w
Ceci fonctionne avec Python v2 et Python v3. Si vous constatez qu'il ne fonctionne pas avec Python v3, veuillez signaler un problème.
$ python hostintel.py -h
usage: hostintel.py [-h] [-a] [-d] [-v] [-p] [-s] [-c] [-t] [-o] [-i] [-r]
ConfigurationFile InputFile
Modular application to look up host intelligence information. Outputs CSV to
STDOUT. This application will not output information until it has finished all
of the input.
positional arguments:
ConfigurationFile Configuration file
InputFile Input file, one host per line (IP, domain, or FQDN
host name)
optional arguments:
-h, --help show this help message and exit
-a, --all Perform All Lookups.
-d, --dns DNS Lookup.
-v, --virustotal VirusTotal Lookup.
-p, --passivetotal PassiveTotal Lookup.
-s, --shodan Shodan Lookup.
-c, --censys Censys Lookup.
-t, --threatcrowd ThreatCrowd Lookup.
-o, --otx OTX by AlienVault Lookup.
-i, --isc Internet Storm Center DShield Lookup.
-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. Certains 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 également à chaque git pull de ce dépôt) :
$ 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]
Enfin, je suis un fan 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 hostintel.py myconfigfile.conf myhosts.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 s'exécuter très longtemps ! Utilisez chaque module avec parcimonie ! En contrepartie de cette longue attente, vous évitez d'avoir à extraire ces données manuellement.
Des exemples de données se trouvent dans le répertoire "sampledata". Les IP, domaines et hôtes ont été choisis au hasard et ne visent en aucun cas à cibler une organisation ou un individu. L'exécution de cet outil sur les exemples de données fonctionne de la manière suivante :
$ python hostintel.py local/config.conf sampledata/smalllist.txt -a > sampledata/smalllist.csv
*** Processing 8.8.8.8 ***
*** Processing 8.8.4.4 ***
*** Processing 192.168.1.1 ***
*** Processing 10.0.0.1 ***
*** Processing google.com ***
*** Processing 212.227.247.242 ***
*** Writing Output ***
$ python hostintel.py local/config.conf sampledata/largerlist.txt -a > sampledata/largerlist.csv
*** Processing 114.34.84.13 ***
*** Processing 116.102.34.212 ***
*** Processing 118.75.180.168 ***
*** Processing 123.195.184.13 ***
*** Processing 14.110.216.236 ***
*** Processing 14.173.147.69 ***
*** Processing 14.181.192.151 ***
*** Processing 146.120.11.66 ***
*** Processing 163.172.149.131 ***
...
*** Processing 54.239.26.180 ***
*** Processing 62.141.39.155 ***
*** Processing 71.6.135.131 ***
*** Processing 72.30.2.74 ***
*** Processing 74.125.34.101 ***
*** Processing 83.31.179.71 ***
*** Processing 85.25.217.155 ***
*** Processing 93.174.93.94 ***
*** Writing Output ***
Vous pouvez obtenir des clés API sur les sites ci-dessous pour votre fichier de configuration.
Des notes brutes sont disponibles ici.
Cette application est couverte par la licence Creative Commons BY-SA.
This product includes GeoLite2 data created by MaxMind, available from
<a href="http://www.maxmind.com">http://www.maxmind.com</a>.
Lisez Contributing.md