
Je développe Habu pour enseigner (et apprendre) certains concepts de Python et de piratage réseau.
Quelques techniques implémentées dans la version actuelle sont :
Le développement de ce logiciel est soutenu par Securetia SRL (https://www.securetia.com/)
Divers scénarios d'utilisation utiles sont détaillés sur https://fportantier.github.io/hacking-with-habu/
La playlist YouTube suivante contient des vidéos montrant l'installation et l'utilisation :
https://www.youtube.com/watch?v=rgp9seLLyqE&list=PL4HZnX8VnFXqSvNw7x-bXOn0dgxNdfnVD
Si vous souhaitez discuter de certaines fonctionnalités de Habu, d'améliorations possibles, etc., vous pouvez utiliser le groupe Telegram Habu : https://t.me/python_habu
Les problèmes et les demandes de tirage doivent être envoyés au dépôt GitHub : https://github.com/fportantier/habu
Méthode recommandée pour installer :
::
$ python3 -m pip install --upgrade git+https://github.com/fportantier/habu.git
Cela doit fonctionner sur tout système sur lequel Python 3 est installé.
Remarque : Sur certains systèmes (comme Microsoft Windows), vous devez ajuster la commande pour pointer vers le bon chemin de l'exécutable Python.
Nous avons maintenant une commande pour mettre à niveau directement depuis le dépôt Git et nettoyer les anciennes commandes qui n'existent plus ou qui ont été renommées.
::
$ habu.upgrade
Toutes les commandes implémentent l'option '--help', qui affiche l'aide, les arguments, les options et les valeurs par défaut.
Presque toutes les commandes implémentent le mode verbeux avec l'option '-v'. Cela peut vous donner des informations supplémentaires sur ce que fait habu.
arp.ping <#habuarpping>_arp.poison <#habuarppoison>_arp.sniff <#habuarpsniff>_asydns <#habuasydns>_b64 <#habub64>_cert.clone <#habucertclone>_cert.crtsh <#habucertcrtsh>_cert.names <#habucertnames>_config.del <#habuconfigdel>_config.set <#habuconfigset>_config.show <#habuconfigshow>_crack.luhn <#habucrackluhn>_crack.snmp <#habucracksnmp>_.. code-block::
Usage: habu.arp.ping [OPTIONS] IP
Send ARP packets to check if a host it's alive in the local network.
Example:
# habu.arp.ping 192.168.0.1
Ether / ARP is at a4:08:f5:19:17:a4 says 192.168.0.1 / Padding
Options:
-i TEXT Interface to use
-v Verbose output
--help Show this message and exit.
.. code-block::
Usage: habu.arp.poison [OPTIONS] VICTIM1 VICTIM2
Send ARP 'is-at' packets to each victim, poisoning their ARP tables for
send the traffic to your system.
Note: If you want a full working Man In The Middle attack, you need to
enable the packet forwarding on your operating system to act like a
router. You can do that using:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Example:
# habu.arpoison 192.168.0.1 192.168.0.77
Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.77
Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.70
Ether / ARP is at f4:96:34:e5:ae:1b says 192.168.0.77
...
Options:
-i TEXT Interface to use
-v Verbose
--help Show this message and exit.
.. code-block::
Usage: habu.arp.sniff [OPTIONS]
Listen for ARP packets and show information for each device.
Columns: Seconds from last packet | IP | MAC | Vendor
Example:
1 192.168.0.1 a4:08:f5:19:17:a4 Sagemcom Broadband SAS
7 192.168.0.2 64:bc:0c:33:e5:57 LG Electronics (Mobile Communications)
2 192.168.0.5 00:c2:c6:30:2c:58 Intel Corporate
6 192.168.0.7 54:f2:01:db:35:58 Samsung Electronics Co.,Ltd
Options:
-i TEXT Interface to use
--help Show this message and exit.
.. code-block::
Usage: habu.asydns [OPTIONS]
Requests a DNS domain name based on public and private RSA keys using the
AsyDNS protocol https://github.com/portantier/asydns
Example:
$ habu.asydns -v
Generating RSA key ...
Loading RSA key ...
{
"ip": "181.31.41.231",
"name": "07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org"
}
$ dig +short 07286e90fd6e7e6be61d6a7919967c7cf3bbfb23a36edbc72b6d7c53.a.asydns.org
181.31.41.231
Options:
-u TEXT API URL
-g Force the generation of a new key pair
-r Revoke the public key
-v Verbose output
--help Show this message and exit.
.. code-block::
Usage: habu.b64 [OPTIONS] [F]
Encodes or decode data in base64, just like the command base64.
$ echo awesome | habu.b64
YXdlc29tZQo=
$ echo YXdlc29tZQo= | habu.b64 -d
awesome
Options:
-d decode instead of encode
--help Show this message and exit.
.. code-block::
Usage: habu.cert.clone [OPTIONS] HOSTNAME PORT KEYFILE CERTFILE
Connect to an SSL/TLS server, get the certificate and generate a
certificate with the same options and field values.
Note: The generated certificate is invalid, but can be used for social
engineering attacks
Example:
$ habu.certclone www.google.com 443 /tmp/key.pem /tmp/cert.pem
Options:
--copy-extensions Copy certificate extensions (default: False)
--expired Generate an expired certificate (default: False)
-v Verbose
--help Show this message and exit.
.. code-block::
Usage: habu.cert.crtsh [OPTIONS] DOMAIN
Downloads the certificate transparency logs for a domain and check with
DNS queries if each subdomain exists.
Uses multithreading to improve the performance of the DNS queries.
Example:
$ habu.crtsh securetia.com
alt.securetia.com
other.securetia.com
www.securetia.com
Options:
-c Disable cache
-n Disable DNS subdomain validation
-v Verbose output
--json Print the output in JSON format
--help Show this message and exit.
.. code-block::
Usage: habu.cert.names [OPTIONS] [NETWORK]
Connects to each host/port and shows a summary of the certificate names.
The hosts to connect to are taken from two possible options:
1. -i option (default: stdin). A file where each line is a host or network
2. An argument that can be a host or network
If you use both methods, the hosts and networks are merged into one list.
Example:
$ habu.cert.names 2.18.60.240/29
2.18.60.241 443 i.s-microsoft.com microsoft.com privacy.microsoft.com
2.18.60.242 443 aod-ssl.itunes.apple.com aod.itunes.apple.com aodp-ssl.itunes.apple.com
2.18.60.243 443 *.mlb.com mlb.com
2.18.60.244 443 [SSL: TLSV1_ALERT_INTERNAL_ERROR] tlsv1 alert internal error (_ssl.c:1056)
2.18.60.245 443 cert2-cn-public-ubiservices.ubi.com cert2-cn-public-ws-ubiservices.ubi.com
2.18.60.246 443 *.blog.sina.com.cn *.dmp.sina.cn
aod.itunes.apple.com
aodp-ssl.itunes.apple.com
aod-ssl.itunes.apple.com
*.blog.sina.com.cn
cert2-cn-public-ubiservices.ubi.com
cert2-cn-public-ws-ubiservices.ubi.com
*.dmp.sina.cn
i.s-microsoft.com microsoft.com
*.mlb.com mlb.com
privacy.microsoft.com
Options:
-p TEXT Ports to connect to (comma separated list)
-i FILENAME Input file (Default: stdin)
-t FLOAT Time to wait for each connection
-v Verbose output
--json Print the output in JSON format
--help Show this message and exit.
.. code-block::
Usage: habu.config.del [OPTIONS] KEY
Delete a KEY from the configuration.
Note: By default, KEY is converted to uppercase.
Example:
$ habu.config.del DNS_SERVER
Options:
--help Show this message and exit.
.. code-block::
Usage: habu.config.set [OPTIONS] KEY VALUE
Set VALUE to the config KEY.
Note: By default, KEY is converted to uppercase.
Example:
$ habu.config.set DNS_SERVER 8.8.8.8
Options:
--help Show this message and exit.
.. code-block::
Usage: habu.config.show [OPTIONS]
Show the current config.
Note: By default, the options with 'KEY' in their name are shadowed.
Example:
$ habu.config.show
{
"DNS_SERVER": "8.8.8.8",
"FERNET_KEY": "*************"
}
Options:
-k, --show-keys Show also the key values
--option TEXT... Write to the config(KEY VALUE)
--help Show this message and exit.
.. code-block::
Usage: habu.crack.luhn [OPTIONS] NUMBER
Having known values for a Luhn validated number, obtain the possible
unknown numbers.
Numbers that use the Luhn algorithm for validation are Credit Cards, IMEI,
National Provider Identifier in the United States, Canadian Social
Insurance Numbers, Israel ID Numbers and Greek Social Security Numbers
(ΑΜΚΑ).
The '-' characters are ignored.
Define the missing numbers with the 'x' character.
Reference: https://en.wikipedia.org/wiki/Luhn_algorithm
Example:
$ habu.crack.luhn 4509-xx08-3160-6445
4509000831606445
4509180831606445
4509260831606445
4509340831606445
4509420831606445
4509590831606445
4509670831606445
4509750831606445
4509830831606445
4509910831606445
Options:
--help Show this message and exit.
.. code-block::
Usage: habu.crack.snmp [OPTIONS] IP
Launches snmp-get queries against an IP, and tells you when finds a valid
community string (is a simple SNMP cracker).
The dictionary used is the distributed with the onesixtyone tool
https://github.com/trailofbits/onesixtyone
Example:
# habu.crack.snmp 179.125.234.210
Community found: private
Community found: public
Note: You can also receive messages like \<UNIVERSAL\> \<class
'scapy.asn1.asn1.ASN1\_Class\_metaclass'\>, I don't know how to supress
them for now.
Options:
-p INTEGER Port to use
-c TEXT Community (default: list of most used)
-s Stop after first match
-v Verbose
--help Show this message and exit.
.. code-block::
Usage: habu.crypto.fernet [OPTIONS]
Fernet cipher.
Uses AES-128-CBC with HMAC
Note: You must use a key to cipher with Fernet.
Use the -k paramenter or set the FERNET_KEY configuration value.
The keys can be generated with the command habu.crypto.fernet.genkey
Reference: https://github.com/fernet/spec/blob/master/Spec.md
Example:
$ "I want to protect this string" | habu.crypto.fernet
gAAAAABbXnCGoCULLuVNRElYTbEcwnek9iq5jBKq9JAN3wiiBUzPqpUgV5oWvnC6xfIA...
$ echo gAAAAABbXnCGoCULLuVNRElYTbEcwnek9iq5jBKq9JAN3wiiBUzPqpUgV5oWvnC6xfIA... | habu.crypto.fernet -d
I want to protect this string
Options:
-k TEXT Key
-d Decrypt instead of encrypt
--ttl INTEGER Time To Live for timestamp verification
-i FILENAME Input file (default: stdin)
-o FILENAME Output file (default: stdout)
--help Show this message and exit.
.. code-block::
Usage: habu.crypto.fernet.genkey [OPTIONS]
Generate a new Fernet Key, optionally write it to ~/.habu.json
Example:
$ habu.crypto.fernet.genkey
xgvWCIvjwe9Uq7NBvwO796iI4dsGD623QOT9GWqnuhg=
Options:
-w Write this key to ~/.habu.json
--help Show this message and exit.
.. code-block::
Usage: habu.crypto.gppref [OPTIONS] PASSWORD
Decrypt the password of local users added via Windows 2008 Group Policy
Preferences.
This value is the 'cpassword' attribute embedded in the Groups.xml file,
stored in the domain controller's Sysvol share.
Example:
# habu.crypto.gppref AzVJmXh/J9KrU5n0czX1uBPLSUjzFE8j7dOltPD8tLk
testpassword
Options:
--help Show this message and exit.
.. code-block::
Usage: habu.crypto.hasher [OPTIONS] [F]
Compute various hashes for the input data, that can be a file or a stream.
Example:
$ habu.crypto.hasher README.rst
md5 992a833cd162047daaa6a236b8ac15ae README.rst
ripemd160 0566f9141e65e57cae93e0e3b70d1d8c2ccb0623 README.rst
sha1 d7dbfd2c5e2828eb22f776550c826e4166526253 README.rst
sha256 6bb22d927e1b6307ced616821a1877b6cc35e... README.rst
sha512 8743f3eb12a11cf3edcc16e400fb14d599b4a... README.rst
whirlpool 96bcc083242e796992c0f3462f330811f9e8c... README.rst
You can also specify which algorithm to use. In such case, the output is
only the value of the calculated hash:
$ habu.hasher -a md5 README.rst
992a833cd162047daaa6a236b8ac15ae README.rst
Options:
-a [md5|sha1|sha256|sha512|ripemd160|whirlpool]
Only this algorithm (Default: all)
--help Show this message and exit.
.. code-block::
Usage: habu.crypto.xor [OPTIONS]
XOR cipher.
Note: XOR is not a 'secure cipher'. If you need strong crypto you must use
algorithms like AES. You can use habu.fernet for that.
Example:
$ habu.xor -k mysecretkey -i /bin/ls > xored
$ habu.xor -k mysecretkey -i xored > uxored
$ sha1sum /bin/ls uxored
$ 6fcf930fcee1395a1c95f87dd38413e02deff4bb /bin/ls
$ 6fcf930fcee1395a1c95f87dd38413e02deff4bb uxored
Options:
-k TEXT Encryption key
-i FILENAME Input file (default: stdin)
-o FILENAME Output file (default: stdout)
--help Show this message and exit.
.. code-block::
Usage: habu.data.enrich [OPTIONS]
Enrich data adding interesting information.
Example:
$ cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich
[
{
"asset": "8.8.8.8",
"family": "IPAddress",
"asn": "15169",
"net": "8.8.8.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US"
},
{
"asset": "8.8.4.4",
"family": "IPAddress",
"asn": "15169",
"net": "8.8.4.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US"
}
]
Options:
-i FILENAME Input file (Default: stdin)
-v Verbose output
--help Show this message and exit.
.. code-block::
Usage: habu.data.extract.domain [OPTIONS] [INFILE]
Extract valid domains from a file or stdin.
Optionally, check each domain for the presence of NS registers.
Example:
$ cat /var/log/some.log | habu.data.extract.domain -c
google.com
ibm.com
redhat.com
Options:
-c Check if domain has NS servers defined
-v Verbose output
-j JSON output
--help Show this message and exit.
.. code-block::
Usage: habu.data.extract.email [OPTIONS] [INFILE]
Extract email addresses from a file or stdin.
Example:
$ cat /var/log/auth.log | habu.data.extract.email
[email protected]
[email protected]
[email protected]
Options:
-v Verbose output
-j JSON output
--help Show this message and exit.
.. code-block::
Usage: habu.data.extract.fqdn [OPTIONS] [INFILE]
Extract FQDNs (Fully Qualified Domain Names) from a file or stdin.
Example:
$ cat /var/log/some.log | habu.data.extract.fqdn
www.google.com
ibm.com
fileserver.redhat.com
Options:
-c Check if hostname resolves
-v Verbose output
-j JSON output
--help Show this message and exit.
.. code-block::
Usage: habu.data.extract.ipv4 [OPTIONS] [INFILE]
Extract IPv4 addresses from a file or stdin.
Example:$ cat /var/log/auth.log | habu.data.extract.ipv4
172.217.162.4
23.52.213.96
190.210.43.70
Options :
-j, --json Sortie JSON
-u, --unique Supprimer les doublons
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.data.filter [OPTIONS] FIELD [gt|lt|eq|ne|ge|le|in|contains|defin
ed|undefined|true|false] [VALUE]
Filtrer les données en fonction des opérateurs.
Référence des opérateurs :
gt: Plus grand que
lt: Plus petit que
eq: Égal à
ne: Différent de
ge: Plus grand ou égal à
le: Plus petit ou égal à
in: Dans la liste de valeurs (ou dans le réseau)
contains: Contient la valeur (ou l'adresse réseau)
defined: La valeur est définie
undefined: La valeur n'est pas définie
true: La valeur est Vrai
false: La valeur est Faux
Exemple :
$ cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich | habu.data.filter cc eq US
[
{
"item": "8.8.8.8",
"family": "ipv4_address",
"asn": "15169",
"net": "8.8.8.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US"
}
]
Documentation : https://fportantier.github.io/hacking-with-habu/user/data-manipulation.html#data-enrichment
Options :
-i FILENAME Fichier d'entrée (Défaut : stdin)
-v Sortie verbeuse
--not Nier la comparaison
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.data.select [OPTIONS] FIELD
Sélectionner un champ à partir d'une entrée JSON.
Exemple :
$ cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich | habu.data.filter cc eq US | habu.data.select asset
8.8.8.7
8.8.8.8
8.8.8.9
Options :
-i FILENAME Fichier d'entrée (Défaut : stdin)
-v Sortie verbeuse
--json Sortie JSON
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.dhcp.discover [OPTIONS]
Envoyer une requête DHCP et afficher quels périphériques ont répondu.
Remarque : En utilisant '-v', vous pouvez voir toutes les options (comme les serveurs DNS) incluses dans les réponses.
# habu.dhcp_discover
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.5:bootpc / BOOTP / DHCP
Options :
-i TEXT Interface à utiliser
-t INTEGER Temps (secondes) d'attente des réponses
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.dhcp.starvation [OPTIONS]
Envoyer plusieurs requêtes DHCP avec des adresses MAC forgées pour remplir les baux du serveur DHCP.
Lorsque toutes les adresses réseau disponibles sont attribuées, le serveur DHCP n'envoie plus de réponses.
Ainsi, certaines attaques, comme l'usurpation DHCP, peuvent être réalisées.
# habu.dhcp_starvation
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.6:bootpc / BOOTP / DHCP
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.7:bootpc / BOOTP / DHCP
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.8:bootpc / BOOTP / DHCP
Options :
-i TEXT Interface à utiliser
-t INTEGER Temps (secondes) d'attente des réponses
-s INTEGER Temps (secondes) entre les requêtes
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.dns.lookup.forward [OPTIONS] HOSTNAME
Effectuer une requête directe d'un nom d'hôte donné.
Exemple :
$ habu.dns.lookup.forward google.com
{
"ipv4": "172.217.168.46",
"ipv6": "2a00:1450:400a:802::200e"
}
Options :
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.dns.lookup.reverse [OPTIONS] IP_ADDRESS
Effectuer une requête inverse d'une adresse IP donnée.
Exemple :
$ $ habu.dns.lookup.reverse 8.8.8.8
{
"hostname": "google-public-dns-a.google.com"
}
Options :
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.eicar [OPTIONS]
Afficher la chaîne de test EICAR qui peut être utilisée pour tester les moteurs antivirus.
Plus d'informations : http://www.eicar.org/86-0-Intended-use.html
Exemple :
$ habu.eicar
X5O!P%@AP[4\XZP54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Options :
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.forkbomb [OPTIONS] [bash|batch|c|haskell|perl|php|python|ruby]
Un raccourci pour se souvenir comment utiliser les fork bombs dans différents langages.
Langages actuellement supportés : bash, batch, c, haskell, perl, php, python, ruby.
Exemple :
$ habu.forkbomb c
#include <unistd.h>
int main()
{
while(1)
{
fork();
}
return 0;
}
Options :
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.fqdn.finder [OPTIONS] [DOMAINS]...
Utiliser diverses techniques pour obtenir des FQDN valides pour les domaines spécifiés.
1. Essayer tous les FQDN avec les transferts de zone DNS
2. Vérifier les journaux de transparence des certificats
3. Se connecter aux ports spécifiés, obtenir les certificats SSL et en extraire les FQDN
4. Se connecter aux sites web et obtenir les FQDN basés sur les liens du site
5. Force brute DNS pour les noms courants
Les résultats sont nettoyés pour supprimer les FQDN qui ne résolvent pas via le DNS
Exemple :
$ habu.fqdn.finder educacionit.com
barometrosalarial.educacionit.com
blog.educacionit.com
ci.educacionit.com
educacionit.com
intranet.educacionit.com
lecdev.educacionit.com
lecweb.educacionit.com
mail.educacionit.com
plantillas.educacionit.com
www.educacionit.com
Options :
-t FLOAT Temps d'attente pour chaque connexion
-v Sortie verbeuse
--debug Sortie de débogage
--connect / --no-connect Obtenir les certificats SSL des ports ouverts à partir des FQDN connus
--brute / --no-brute Effectuer une force brute DNS sur les domaines
--links / --no-links Extraire les FQDN des liens du site web
--xfr / --no-xfr Essayer d'effectuer un transfert de zone DNS sur les domaines
--ctlog / --no-ctlog Essayer d'obtenir les FQDN à partir des journaux de transparence des certificats
--json Afficher la sortie au format JSON
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.gateway.find [OPTIONS] NETWORK
Essayer d'atteindre une IP externe en utilisant n'importe quel hôte comme routeur.
Utile pour trouver des routeurs sur votre réseau.
D'abord, utilise arping pour détecter les hôtes actifs et obtenir les adresses MAC.
Ensuite, crée un paquet réseau et place chaque adresse MAC comme destination.
Enfin, affiche les périphériques qui ont correctement transmis les paquets.
Exemple :
# habu.find.gateway 192.168.0.0/24
192.168.0.1 a4:08:f5:19:17:a4 Sagemcom
192.168.0.7 b0:98:2b:5d:22:70 Sagemcom
192.168.0.8 b0:98:2b:5d:1f:e8 Sagemcom
Options :
-i TEXT Interface à utiliser
--host TEXT Hôte à atteindre (défaut : 8.8.8.8)
--tcp Utiliser TCP au lieu d'ICMP
--dport INTEGER RANGE Port de destination pour TCP (défaut : 80)
--timeout INTEGER Délai d'attente en secondes (défaut : 5)
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.host [OPTIONS]
Collecter des informations sur l'hôte où habu est exécuté.
Exemple :
$ habu.host
{
"kernel": [
"Linux",
"demo123",
"5.0.6-200.fc29.x86_64",
"#1 SMP Wed Apr 3 15:09:51 UTC 2019",
"x86_64",
"x86_64"
],
"distribution": [
"Fedora",
"29",
"Twenty Nine"
],
"libc": [
"glibc",
"2.2.5"
],
"arch": "x86_64",
"python_version": "3.7.3",
"os_name": "Linux",
"cpu": "x86_64",
"static_hostname": "demo123",
"fqdn": "demo123.lab.sierra"
}
Options :
-v Sortie verbeuse.
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.http.headers [OPTIONS] SERVER
Récupérer les en-têtes HTTP d'un serveur web.
Exemple :
$ habu.http.headers http://duckduckgo.com
{
"Server": "nginx",
"Date": "Sun, 14 Apr 2019 00:00:55 GMT",
"Content-Type": "text/html",
"Content-Length": "178",
"Connection": "keep-alive",
"Location": "https://duckduckgo.com/",
"X-Frame-Options": "SAMEORIGIN",
"Content-Security-Policy": "default-src https: blob: data: 'unsafe-inline' 'unsafe-eval'",
"X-XSS-Protection": "1;mode=block",
"X-Content-Type-Options": "nosniff",
"Referrer-Policy": "origin",
"Expect-CT": "max-age=0",
"Expires": "Mon, 13 Apr 2020 00:00:55 GMT",
"Cache-Control": "max-age=31536000"
}
Options :
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.http.options [OPTIONS] SERVER
Récupérer les méthodes HTTP disponibles d'un serveur web.
Exemple :
$ habu.http.options -v http://google.com
{
"allowed": "GET, HEAD"
}
Options :
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.http.tech [OPTIONS] URL
Utiliser la base de données apps.json de Wappalyzer pour identifier les technologies utilisées sur une application web.
Référence : https://github.com/AliasIO/Wappalyzer
Remarque : Cet outil n'envoie qu'une seule requête. Il est donc furtif et non suspect.
$ habu.web.tech https://woocomerce.com
Google Tag Manager inconnu
MySQL inconnu
Nginx inconnu
PHP inconnu
Prototype inconnu
RequireJS inconnu
WooCommerce 3.8.0
WordPress 5.2.4
Yoast SEO 10.0.1
Options :
--cache / --no-cache
--format [txt|csv|json] Format de sortie
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.icmp.ping [OPTIONS] IP
L'outil ping classique qui envoie des requêtes ICMP echo.
# habu.icmp.ping 8.8.8.8
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
IP / ICMP 8.8.8.8 > 192.168.0.5 echo-reply 0 / Padding
Options :
-i TEXT Interface à utiliser (défaut : auto)
-c INTEGER Nombre de paquets à envoyer (défaut : infini)
-t INTEGER Délai d'attente en secondes (défaut : 2)
-w INTEGER Temps entre les paquets en secondes (défaut : 1)
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.ip.asn [OPTIONS] IP
Utiliser le service Team Cymru ip2asn pour obtenir des informations sur une adresse IPv4/IPv6 publique.
Référence : https://www.team-cymru.com/IP-ASN-mapping.html
$ habu.ip.asn 8.8.8.8
{
"asn": "15169",
"net": "8.8.8.0/24",
"cc": "US",
"rir": "ARIN",
"asname": "GOOGLE - Google LLC, US",
"country": "United States"
}
Options :
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.ip.geolocation [OPTIONS] IP_ADDRESS
Obtenir la géolocalisation d'une adresse IP depuis https://ipapi.co/.
Exemple :
$ habu.ip.geolocation 8.8.8.8
{
"ip": "8.8.8.8",
"city": "Mountain View",
...
"asn": "AS15169",
"org": "Google LLC"
}
Options :
-v Sortie verbeuse.
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.ip.internal [OPTIONS]
Obtenir la ou les adresses IP locales des interfaces locales.
Exemple :
$ habu.ip.internal
{
"lo": {
"ipv4": [
{
"addr": "127.0.0.1",
"netmask": "255.0.0.0",
"peer": "127.0.0.1"
}
],
"link_layer": [
{
"addr": "00:00:00:00:00:00",
"peer": "00:00:00:00:00:00"
}
],
"ipv6": [
{
"addr": "::1",
"netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff/128"
}
]
},
...
Options :
-v Sortie verbeuse.
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.ip.public [OPTIONS]
Obtenir l'adresse IP publique de la connexion depuis https://api.ipify.org.
Exemple :
$ habu.ip.public
80.219.53.185
Options :
-4, --ipv4 Afficher votre adresse IPv4 publique (défaut)
-6, --ipv6 Afficher votre adresse IPv6 publique
-j, --json Afficher la sortie au format JSON
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.karma [OPTIONS] HOST
Utiliser le service Karma https://karma.securetia.com pour vérifier une IP par rapport à diverses listes de renseignements sur les menaces / réputation.
$ habu.karma www.google.com
www.google.com -> 64.233.190.99
[
"hphosts_fsa",
"hphosts_psh",
"hphosts_emd"
]
Remarque : Vous pouvez utiliser le nom d'hôte ou l'IP de l'hôte pour interroger.
Options :
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.karma.bulk [OPTIONS] [INFILE]
Afficher quelles adresses IP sont dans les listes noires en utilisant le service en ligne Karma.
Exemple :
$ cat /var/log/auth.log | habu.extract.ipv4 | habu.karma.bulk
172.217.162.4 spamhaus_drop,alienvault_spamming
23.52.213.96 CLEAN
190.210.43.70 alienvault_malicious
Options :
--json Sortie JSON
--bad Afficher uniquement les entrées dans les listes noires
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.land [OPTIONS] IP
Cette commande implémente l'attaque LAND, qui envoie des paquets en forgeant l'adresse IP source pour qu'elle soit identique à l'adresse IP de destination. Utilise également le même port source et destination.
L'attaque est très ancienne et peut être utilisée pour provoquer un déni de service sur des systèmes anciens, comme Windows NT 4.0. Plus d'informations ici :
https://en.wikipedia.org/wiki/LAND
# sudo habu.land 172.16.0.10
............
Remarque : Chaque point (.) est un paquet envoyé. Vous pouvez spécifier le nombre de paquets à envoyer avec l'option '-c'. La valeur par défaut est de ne jamais s'arrêter. Vous pouvez également spécifier le port de destination avec l'option '-p'.
Options :
-c INTEGER Nombre de paquets à envoyer (défaut : infini)
-p INTEGER Port à utiliser (défaut : 135)
-i TEXT Interface à utiliser
-v Sortie verbeuse
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.nc [OPTIONS] HOST PORT
Une sorte de remplacement de netcat/ncat.
L'exécution émule le ressenti de ces outils populaires.
Exemple :
$ habu.nc --crlf www.portantier.com 80
Connected to 45.77.113.133 80
HEAD / HTTP/1.0
HTTP/1.0 301 Moved Permanently
Date: Thu, 26 Jul 2018 21:10:51 GMT
Server: OpenBSD httpd
Connection: close
Content-Type: text/html
Content-Length: 443
Location: https://www.portantier.com/
Options :
--family [4|6|46] Famille d'adresses IP
--ssl Activer SSL
--crlf Utiliser CRLF pour la séquence de fin de ligne
--protocol [tcp|udp] Protocole de couche 4 à utiliser
--source-ip TEXT IP source à utiliser
--source-port INTEGER RANGE Port source à utiliser
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.net.contest [OPTIONS]
Essayer de se connecter à divers services et vérifier s'ils sont atteignables via votre connexion internet.
Exemple :
$ habu.net.contest
DNS: True
FTP: True
SSH: True
HTTP: True
HTTPS: True
Options :
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.net.interfaces [OPTIONS]
Afficher les interfaces réseau disponibles sur le système.
Exemple :
# habu.interfaces
# NAME MAC INET INET6
0 eth0 80:fa:5b:4b:f9:18 None None
1 lo 00:00:00:00:00:00 127.0.0.1 ::1
2 wlan0 f4:96:34:e5:ae:1b 192.168.0.6 None
3 vboxnet0 0a:00:27:00:00:00 192.168.56.1 fe80::800:27ff:fe00:0
Options :
-j Sortie au format JSON
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.nmap.excluded [OPTIONS]
Afficher un port aléatoire qui n'est pas présent dans le fichier nmap-services, donc non scanné automatiquement par nmap.
Utile pour des services comme SSH ou RDP, qui sont continuellement scannés sur leurs ports par défaut.
Exemple :
# habu.nmap.excluded
58567
Options :
-l INTEGER RANGE Port le plus bas à considérer
-h INTEGER RANGE Port le plus haut à considérer
--help Afficher ce message et quitter.
.. code-block::
Usage: habu.nmap.open [OPTIONS] SCANFILE
Lire un rapport nmap et afficher les ports ouverts.
Afficher les ports qui ont été ouverts en lisant la sortie nmap générée.
Vous pouvez l'utiliser pour réutiliser rapidement la liste des ports en entrée d'autres outils.
Prend en charge et détecte les 3 formats de sortie (nmap, gnmap et xml)
Exemple :
# habu.nmap.open portantier.nmap
22,80,443
Options :
-p [tcp|udp|sctp] Le protocole (défaut=tcp)
--help Afficher ce message et quitter.
habu.nmap.ports ---------------Usage: habu.nmap.ports [OPTIONS] SCANFILE
Lit un rapport nmap et affiche les ports testés.
Affiche les ports qui ont été testés en lisant la sortie générée par nmap.
Vous pouvez l'utiliser pour réutiliser rapidement la liste des ports comme entrée pour d'autres outils.
Supporte et détecte les 3 formats de sortie (nmap, gnmap et xml)
Exemple :
21,22,23,80,443
Options : -p [tcp|udp|sctp] Le protocole (par défaut=tcp) --help Affiche ce message et quitte.
.. code-block::
Usage: habu.protoscan [OPTIONS] IP
Envoie des paquets IP avec différentes valeurs de champ protocole pour
deviner quels protocoles de couche 4 sont disponibles.
La sortie montre quels protocoles ne génèrent pas de réponse ICMP
'protocol-unreachable'.
Exemple :
$ sudo python cmd_ipscan.py 45.77.113.133
1 icmp
2 igmp
4 ipencap
6 tcp
17 udp
41 ipv6
47 gre
50 esp
51 ah
58 ipv6_icmp
97 etherip
112 vrrp
115 l2tp
132 sctp
137 mpls_in_ip
Options :
-i TEXT Interface à utiliser
-t INTEGER Délai d'attente pour chaque sonde (par défaut : 2 secondes)
--all Tester tous les protocoles (par défaut : défini dans /etc/protocols)
-v Sortie verbeuse
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.server.ftp [OPTIONS]
Serveur FTP factice basique, ayant pour seul but de voler les identifiants
des utilisateurs.
Supporte SSL/TLS.
Exemple :
# sudo habu.server.ftp --ssl --ssl-cert /tmp/cert.pem --ssl-key /tmp/key.pem
Écoute sur le port 21
Connexion acceptée depuis ('192.168.0.27', 56832)
Identifiants collectés depuis 192.168.0.27 ! fabian 123456
Options :
-a TEXT Adresse à écouter (par défaut : toutes)
-p INTEGER Port à utiliser (par défaut : 21)
--ssl Activer SSL/TLS (par défaut : False)
--ssl-cert TEXT Fichier de certificat SSL/TLS
--ssl-key TEXT Fichier de clé SSL/TLS
-v Verbeux
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.shodan [OPTIONS] IP
Client API Shodan simple.
Affiche le résultat JSON d'une requête Shodan.
Exemple :
$ habu.shodan 216.58.222.36
asn AS15169
isp Google
hostnames eze04s06-in-f4.1e100.net, gru09s17-in-f36.1e100.net
country_code US
region_code CA
city Mountain View
org Google
open_ports tcp/443, tcp/80
Options :
--cache / --no-cache
-v Sortie verbeuse
--format [txt|csv|json|nmap] Format de sortie
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.shodan.query [OPTIONS] QUERY
Client API Shodan simple.
Affiche le résultat JSON d'une requête Shodan.
Exemple :
$ habu.shodan 8.8.8.8
{
"hostnames": [
"google-public-dns-a.google.com"
],
"country_code": "US",
"org": "Google",
"data": [
{
"isp": "Google",
"transport": "udp",
"data": "Recursion: enabled",
"asn": "AS15169",
"port": 53,
"hostnames": [
"google-public-dns-a.google.com"
]
}
],
"ports": [
53
]
}
Options :
-c Désactiver le cache
-v Sortie verbeuse
-o FILENAME Fichier de sortie (par défaut : stdout)
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.tcp.flags [OPTIONS] IP
Envoie des paquets TCP avec différents flags et indique quelles réponses
sont reçues.
Peut être utilisé pour analyser comment les différentes implémentations
et configurations de la pile TCP/IP répondent aux paquets avec diverses
combinaisons de flags.
Exemple :
# habu.tcp_flags www.portantier.com
S -> SA
FS -> SA
FA -> R
SA -> R
Par défaut, la commande envoie toutes les combinaisons possibles de flags.
Vous pouvez spécifier quels flags doivent toujours être présents (réduisant
ainsi le nombre de combinaisons possibles), avec l'option '-f'.
Vous pouvez également spécifier quels flags doivent être présents dans les
paquets de réponse à afficher, avec l'option '-r'.
Avec la commande suivante, vous voyez toutes les combinaisons possibles qui
ont le flag FIN (F) défini et qui génèrent une réponse contenant le flag
RST (R).
Exemple :
# habu.tcp_flags -f F -r R www.portantier.com
FPA -> R
FSPA -> R
FAU -> R
Options :
-p INTEGER Port à utiliser (par défaut : 80)
-f TEXT Flags qui doivent toujours être envoyés (par défaut : fuzz avec tous les flags)
-r TEXT Filtrer par flags de réponse (par défaut : afficher toutes les réponses)
-v Verbeux
--first S'arrêter dès la première réponse correspondante
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.tcp.isn [OPTIONS] IP
Crée des connexions TCP et affiche les numéros de séquence initiaux TCP
pour chacune.
$ sudo habu.tcp.isn -c 5 www.portantier.com
1962287220
1800895007
589617930
3393793979
469428558
Remarque : Vous pouvez obtenir une représentation graphique (nécessite le
paquet matplotlib) en utilisant l'option '-g' pour mieux comprendre
l'aléatoire.
Options :
-p INTEGER Port à utiliser (par défaut : 80)
-c INTEGER Combien de paquets envoyer/recevoir (par défaut : 5)
-i TEXT Interface à utiliser
-g Graphique (nécessite matplotlib)
-v Sortie verbeuse
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.tcp.scan [OPTIONS] IP
Scanner de ports TCP.
Affiche les ports qui ont généré une réponse avec le flag SYN ou (si vous
utilisez -a) tous les ports qui ont généré une réponse.
C'est vraiment basique comparé à nmap, mais qui compare ?
Exemple :
# habu.tcp.scan -p 22,23,80,443 -s 1 45.77.113.133
22 S -> SA
80 S -> SA
443 S -> SA
Options :
-p TEXT Ports à utiliser (par défaut : 80) exemple : 20-23,80,135
-i TEXT Interface à utiliser
-f TEXT Flags à utiliser (par défaut : S)
-s TEXT Temps entre les sondes (par défaut : tout envoyer ensemble)
-t INTEGER Délai d'attente pour chaque sonde (par défaut : 2 secondes)
-a Afficher toutes les réponses (par défaut : uniquement celles contenant le flag SYN)
-v Sortie verbeuse
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.tcp.synflood [OPTIONS] IP
Lance un grand nombre de connexions TCP et les maintient ouvertes.
Certains systèmes très anciens peuvent subir un déni de service avec cela.
Référence : https://en.wikipedia.org/wiki/SYN_flood
Exemple :
# sudo habu.tcp.synflood 172.16.0.10
.................
Chaque point est un paquet envoyé.
Vous pouvez utiliser les options '-2' et '-3' pour falsifier les adresses
de couche 2/3.
Si vous les utilisez, chaque connexion sera envoyée depuis une adresse
aléatoire de couche2 (MAC) et/ou de couche3 (IP).
Vous pouvez choisir le nombre de connexions à créer avec l'option '-c'.
Par défaut, il ne s'arrête jamais de créer des connexions.
Remarque : si vous envoyez les paquets depuis votre véritable adresse IP et
que vous souhaitez maintenir les connexions semi-ouvertes, vous devez
configurer votre pare-feu pour ne pas envoyer les paquets RST.
Options :
-i TEXT Interface à utiliser (par défaut : auto)
-c INTEGER Combien de paquets envoyer (par défaut : infini)
-p INTEGER Port à utiliser (par défaut : 135)
-2 Falsifier l'adresse de couche2/MAC (par défaut : Non)
-3 Falsifier l'adresse de couche3/IP (par défaut : Non)
-v Verbeux
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.traceroute [OPTIONS] IP
Traceroute TCP.
Identifie le chemin vers une destination en obtenant les messages
ttl-zero-during-transit.
Remarque : Sur Internet, vous pouvez avoir plusieurs chemins valides vers
un appareil.
Exemple :
# habu.traceroute 45.77.113.133
IP / ICMP 192.168.0.1 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
IP / ICMP 10.242.4.197 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding
IP / ICMP 200.32.127.98 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror / Padding
.
IP / ICMP 4.16.180.190 > 192.168.0.5 time-exceeded ttl-zero-during-transit / IPerror / TCPerror
.
IP / TCP 45.77.113.133:http > 192.168.0.5:ftp_data SA / Padding
Remarque : Il est préférable d'utiliser un port ouvert sur le système distant.
Options :
-p INTEGER Port à utiliser (par défaut : 80)
-i TEXT Interface à utiliser
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.upgrade [OPTIONS]
Met à jour habu (depuis https://github.com/fportantier/habu)
Options :
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.usercheck [OPTIONS] USERNAME
Vérifie si le nom d'utilisateur donné existe sur divers réseaux sociaux
et autres sites populaires.
$ habu.usercheck portantier
{
"aboutme": "https://about.me/portantier",
"disqus": "https://disqus.com/by/portantier/",
"github": "https://github.com/portantier/",
"ifttt": "https://ifttt.com/p/portantier",
"lastfm": "https://www.last.fm/user/portantier",
"medium": "https://medium.com/@portantier",
"pastebin": "https://pastebin.com/u/portantier",
"pinterest": "https://in.pinterest.com/portantier/",
"twitter": "https://twitter.com/portantier",
"vimeo": "https://vimeo.com/portantier"
}
Options :
-c Désactiver le cache
-v Sortie verbeuse
-w Ouvrir chaque URL valide dans un navigateur web
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.version [OPTIONS]
Options :
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.vhosts [OPTIONS] HOST
Utilise Bing pour interroger les sites web hébergés sur la même adresse IP.
$ habu.vhosts www.telefonica.com
www.telefonica.com -> 212.170.36.79
[
'www.telefonica.es',
'universitas.telefonica.com',
'www.telefonica.com',
]
Options :
-c Désactiver le cache
-p INTEGER Nombre de pages (par défaut : 10)
-f INTEGER Premier résultat à obtenir (par défaut : 1)
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.virustotal [OPTIONS] INPUT
Envoie un fichier à VirusTotal https://www.virustotal.com/ et affiche le
rapport au format JSON.
Remarque : Avant d'envoyer un fichier, vérifie si le fichier a déjà été
analysé (en envoyant le sha256 du fichier). Si un rapport existe, aucune
soumission ne sera effectuée et vous verrez le dernier rapport.
$ habu.virustotal meterpreter.exe
Vérification si le hash a déjà été soumis : f4826b219aed3ffdaa23db26cfae611979bf215984fc71a1c12f6397900cb70d
Envoi du fichier pour analyse
Attente/récupération du rapport...
{
"md5": "0ddb015b5328eb4d0cc2b87c39c49686",
"permalink": "https://www.virustotal.com/file/c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23/analysis/1526850717/",
"positives": 49,
"resource": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"response_code": 1,
"scan_date": "2018-05-20 21:11:57",
"scan_id": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23-1526850717",
"scans": {
"ALYac": {
"detected": true,
"result": "Trojan.CryptZ.Gen",
"update": "20180520",
"version": "1.1.1.5"
},
... Les autres scanners ...
},
"sha1": "5fa33cab1729480dd023b08f7b91a945c16d0a9e",
"sha256": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"total": 67,
"verbose_msg": "Scan terminé, informations intégrées"
}
Options :
-v Sortie verbeuse
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.web.report [OPTIONS] [INPUT_FILE]
Génère un rapport qui inclut les en-têtes HTTP des sites web.
Optionnellement, utilise Firefox ou Chromium pour prendre une capture
d'écran des sites web.
Le format attendu est une URL par ligne.
Crée un répertoire appelé 'report' contenant le résultat.
$ echo https://www.portantier.com | habu.web.report
Options :
-v Sortie verbeuse
-s Prendre une capture d'écran pour chaque site web
-b [firefox|chromium-browser] Navigateur à utiliser pour la capture d'écran.
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.web.screenshot [OPTIONS] URL
Utilise Firefox ou Chromium pour prendre une capture d'écran du site web.
$ habu.web.screenshot https://www.portantier.com
Options :
-b [firefox|chromium-browser] Navigateur à utiliser pour la capture d'écran.
-o TEXT Fichier de sortie. (par défaut : screenshot.png)
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.whois.domain [OPTIONS] DOMAIN
Client whois simple pour vérifier les noms de domaine.
Exemple :
$ habu.whois.domain google.com
registrar MarkMonitor, Inc.
whois_server whois.markmonitor.com
creation_date 1997-09-15 04:00:00
expiration_date 2028-09-14 04:00:00
name_servers ns1.google.com, ns2.google.com, ns3.google.com, ns4.google.com
emails [email protected], [email protected]
dnssec unsigned
org Google LLC
country US
state CA
Options :
--json Afficher la sortie au format JSON
--csv Afficher la sortie au format CSV
--help Affiche ce message et quitte.
.. code-block::
Usage: habu.whois.ip [OPTIONS] IP
Client whois simple pour vérifier les adresses IP (IPv4 et IPv6).
Exemple :
$ habu.whois.ip 8.8.4.4
asn 15169
asn_registry arin
asn_cidr 8.8.4.0/24
asn_country_code US
asn_description GOOGLE - Google LLC, US
asn_date 1992-12-01
Options :
--json Afficher la sortie au format JSON
--csv Afficher la sortie au format CSV
--help Affiche ce message et quitte.
crypto.fernet <#habucryptofernet>_crypto.fernet.genkey <#habucryptofernetgenkey>_crypto.gppref <#habucryptogppref>_crypto.hasher <#habucryptohasher>_crypto.xor <#habucryptoxor>_data.enrich <#habudataenrich>_data.extract.domain <#habudataextractdomain>_data.extract.email <#habudataextractemail>_data.extract.fqdn <#habudataextractfqdn>_data.extract.ipv4 <#habudataextractipv4>_data.filter <#habudatafilter>_data.select <#habudataselect>_dhcp.discover <#habudhcpdiscover>_dhcp.starvation <#habudhcpstarvation>_dns.lookup.forward <#habudnslookupforward>_dns.lookup.reverse <#habudnslookupreverse>_eicar <#habueicar>_forkbomb <#habuforkbomb>_fqdn.finder <#habufqdnfinder>_gateway.find <#habugatewayfind>_host <#habuhost>_http.headers <#habuhttpheaders>_http.options <#habuhttpoptions>_http.tech <#habuhttptech>_icmp.ping <#habuicmpping>_ip.asn <#habuipasn>_ip.geolocation <#habuipgeolocation>_ip.internal <#habuipinternal>_ip.public <#habuippublic>_karma <#habukarma>_karma.bulk <#habukarmabulk>_land <#habuland>_nc <#habunc>_net.contest <#habunetcontest>_net.interfaces <#habunetinterfaces>_nmap.excluded <#habunmapexcluded>_nmap.open <#habunmapopen>_nmap.ports <#habunmapports>_protoscan <#habuprotoscan>_server.ftp <#habuserverftp>_shodan <#habushodan>_shodan.query <#habushodanquery>_tcp.flags <#habutcpflags>_tcp.isn <#habutcpisn>_tcp.scan <#habutcpscan>_tcp.synflood <#habutcpsynflood>_traceroute <#habutraceroute>_upgrade <#habuupgrade>_usercheck <#habuusercheck>_version <#habuversion>_vhosts <#habuvhosts>_virustotal <#habuvirustotal>_web.report <#habuwebreport>_web.screenshot <#habuwebscreenshot>_whois.domain <#habuwhoisdomain>_whois.ip <#habuwhoisip>_