
Estoy desarrollando Habu para enseñar (y aprender) algunos conceptos sobre Python y Hacking de Redes.
Algunas técnicas implementadas en la versión actual son:
El desarrollo de este software es apoyado por Securetia SRL (https://www.securetia.com/)
Varios escenarios de uso útiles se detallan en https://fportantier.github.io/hacking-with-habu/
La siguiente lista de reproducción de YouTube contiene videos que muestran la instalación y el uso:
https://www.youtube.com/watch?v=rgp9seLLyqE&list=PL4HZnX8VnFXqSvNw7x-bXOn0dgxNdfnVD
Si deseas discutir algunas características de Habu, posibles mejoras, etc., puedes usar el Grupo de Telegram de Habu: https://t.me/python_habu
Los problemas y solicitudes de extracción deben enviarse al repositorio de github: https://github.com/fportantier/habu
Forma recomendada de instalar:
::
$ python3 -m pip install --upgrade git+https://github.com/fportantier/habu.git
Esto debería funcionar en cualquier sistema que tenga Python 3 instalado.
Nota: En algunos sistemas (como Microsoft Windows) debes ajustar el comando para apuntar a la ruta correcta del ejecutable de Python.
Ahora tenemos un comando para actualizar directamente desde el repositorio Git y limpiar cualquier comando antiguo que ya no exista o que haya sido renombrado.
::
$ habu.upgrade
Todos los comandos implementan la opción '--help', que muestra la ayuda, argumentos, opciones y valores predeterminados.
Casi todos los comandos implementan el modo verboso con la opción '-v'. Esto puede darte información adicional sobre lo que está haciendo 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/some.log | habu.data.extract.ipv4
192.168.1.1
10.0.0.1
8.8.8.8
Options:
-v Verbose output
-j JSON output
--help Show this message and exit.$ cat /var/log/auth.log | habu.data.extract.ipv4
172.217.162.4
23.52.213.96
190.210.43.70
Opciones:
-j, --json Salida JSON
-u, --unique Eliminar duplicados
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.data.filter [OPTIONS] FIELD [gt|lt|eq|ne|ge|le|in|contains|defin
ed|undefined|true|false] [VALUE]
Filtrar datos basado en operadores.
Referencia de operadores:
gt: Mayor que
lt: Menor que
eq: Igual a
ne: Diferente de
ge: Mayor o igual que
le: Menor o igual que
in: Dentro de la lista de valores (o dentro de la red)
contains: Contiene el valor (o la dirección de red)
defined: El valor está definido
undefined: El valor no está definido
true: El valor es Verdadero
false: El valor es Falso
Ejemplo:
$ 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"
}
]
Docs: https://fportantier.github.io/hacking-with-habu/user/data-manipulation.html#data-enrichment
Opciones:
-i FILENAME Archivo de entrada (Predeterminado: stdin)
-v Salida verbose
--not Negar la comparación
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.data.select [OPTIONS] FIELD
Seleccionar un campo de una entrada JSON.
Ejemplo:
$ 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
Opciones:
-i FILENAME Archivo de entrada (Predeterminado: stdin)
-v Salida verbose
--json Salida JSON
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.dhcp.discover [OPTIONS]
Enviar una solicitud DHCP y mostrar qué dispositivos han respondido.
Nota: Usando '-v' puedes ver todas las opciones (como servidores DNS) incluidas
en las respuestas.
# habu.dhcp_discover
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.5:bootpc / BOOTP / DHCP
Opciones:
-i TEXT Interfaz a usar
-t INTEGER Tiempo (segundos) para esperar respuestas
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.dhcp.starvation [OPTIONS]
Enviar múltiples solicitudes DHCP desde direcciones MAC falsificadas para llenar las
concesiones del servidor DHCP.
Cuando todas las direcciones de red disponibles están asignadas, el servidor DHCP
no envía respuestas.
Así, se pueden realizar algunos ataques, como la suplantación DHCP (DHCP spoofing).
# 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
Opciones:
-i TEXT Interfaz a usar
-t INTEGER Tiempo (segundos) para esperar respuestas
-s INTEGER Tiempo (segundos) entre solicitudes
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.dns.lookup.forward [OPTIONS] HOSTNAME
Realizar una consulta directa (forward lookup) de un nombre de host dado.
Ejemplo:
$ habu.dns.lookup.forward google.com
{
"ipv4": "172.217.168.46",
"ipv6": "2a00:1450:400a:802::200e"
}
Opciones:
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.dns.lookup.reverse [OPTIONS] IP_ADDRESS
Realizar una consulta inversa (reverse lookup) de una dirección IP dada.
Ejemplo:
$ $ habu.dns.lookup.reverse 8.8.8.8
{
"hostname": "google-public-dns-a.google.com"
}
Opciones:
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.eicar [OPTIONS]
Imprimir la cadena de prueba EICAR que se puede usar para probar motores antimalware.
Más información: http://www.eicar.org/86-0-Intended-use.html
Ejemplo:
$ habu.eicar
X5O!P%@AP[4\XZP54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Opciones:
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.forkbomb [OPTIONS] [bash|batch|c|haskell|perl|php|python|ruby]
Un atajo para recordar cómo usar bombas fork en diferentes lenguajes.
Actualmente soportados: bash, batch, c, haskell, perl, php, python, ruby.
Ejemplo:
$ habu.forkbomb c
#include <unistd.h>
int main()
{
while(1)
{
fork();
}
return 0;
}
Opciones:
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.fqdn.finder [OPTIONS] [DOMAINS]...
Utiliza varias técnicas para obtener FQDN válidos para los dominios especificados.
1. Intentar todos los FQDN con transferencias de zona DNS
2. Verificar registros de transparencia de certificados (Certificate Transparency Logs)
3. Conectarse a puertos especificados, obtener certificados SSL y obtener FQDN de ellos
4. Conectarse a sitios web y obtener FQDN basados en los enlaces del sitio
5. Fuerza bruta DNS para nombres comunes
Los resultados se limpian para eliminar FQDN que no resuelven mediante DNS
Ejemplo:
$ 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
Opciones:
-t FLOAT Tiempo de espera para cada conexión
-v Salida verbose
--debug Salida de depuración
--connect / --no-connect Obtener de FQDN conocidos puertos abiertos certificados SSL
--brute / --no-brute Ejecutar fuerza bruta DNS contra dominios
--links / --no-links Extraer FQDN de enlaces de sitios web
--xfr / --no-xfr Intentar realizar una transferencia de zona DNS contra dominios
--ctlog / --no-ctlog Intentar obtener FQDN de los registros de transparencia de
certificados
--json Imprimir la salida en formato JSON
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.gateway.find [OPTIONS] NETWORK
Intentar alcanzar una IP externa usando cualquier host como enrutador.
Útil para encontrar routers en tu red.
Primero, usa arping para detectar hosts activos y obtener direcciones MAC.
Luego, crea un paquete de red y coloca cada dirección MAC como destino.
Por último, imprime los dispositivos que reenviaron correctamente los paquetes.
Ejemplo:
# 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
Opciones:
-i TEXT Interfaz a usar
--host TEXT Host al que llegar (predeterminado: 8.8.8.8)
--tcp Usar TCP en lugar de ICMP
--dport INTEGER RANGE Puerto de destino para TCP (predeterminado: 80)
--timeout INTEGER Tiempo de espera en segundos (predeterminado: 5)
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.host [OPTIONS]
Recopilar información sobre el host donde se está ejecutando habu.
Ejemplo:
$ 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"
}
Opciones:
-v Salida verbose.
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.http.headers [OPTIONS] SERVER
Recuperar las cabeceras HTTP de un servidor web.
Ejemplo:
$ 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"
}
Opciones:
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.http.options [OPTIONS] SERVER
Recuperar los métodos HTTP disponibles de un servidor web.
Ejemplo:
$ habu.http.options -v http://google.com
{
"allowed": "GET, HEAD"
}
Opciones:
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.http.tech [OPTIONS] URL
Utiliza la base de datos apps.json de Wappalyzer para identificar tecnologías usadas en una
aplicación web.
Referencia: https://github.com/AliasIO/Wappalyzer
Nota: Esta herramienta solo envía una solicitud. Por lo tanto, es sigilosa y no
sospechosa.
$ habu.web.tech https://woocomerce.com
Google Tag Manager unknown
MySQL unknown
Nginx unknown
PHP unknown
Prototype unknown
RequireJS unknown
WooCommerce 3.8.0
WordPress 5.2.4
Yoast SEO 10.0.1
Opciones:
--cache / --no-cache
--format [txt|csv|json] Formato de salida
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.icmp.ping [OPTIONS] IP
La herramienta clásica ping que envía solicitudes de eco ICMP.
# 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
Opciones:
-i TEXT Qué interfaz usar (predeterminado: auto)
-c INTEGER Cuántos paquetes enviar (predeterminado: infinito)
-t INTEGER Tiempo de espera en segundos (predeterminado: 2)
-w INTEGER Cuántos segundos entre paquetes (predeterminado: 1)
-v Verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.ip.asn [OPTIONS] IP
Utilizar el servicio Team Cymru ip2asn para obtener información sobre una IPv4/IPv6 pública.
Referencia: 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"
}
Opciones:
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.ip.geolocation [OPTIONS] IP_ADDRESS
Obtener la geolocalización de una dirección IP desde https://ipapi.co/.
Ejemplo:
$ habu.ip.geolocation 8.8.8.8
{
"ip": "8.8.8.8",
"city": "Mountain View",
...
"asn": "AS15169",
"org": "Google LLC"
}
Opciones:
-v Salida verbose.
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.ip.internal [OPTIONS]
Obtener la(s) dirección(es) IP local(es) de las interfaces locales.
Ejemplo:
$ 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"
}
]
},
...
Opciones:
-v Salida verbose.
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.ip.public [OPTIONS]
Obtener la dirección IP pública de la conexión desde https://api.ipify.org.
Ejemplo:
$ habu.ip.public
80.219.53.185
Opciones:
-4, --ipv4 Imprimir tu dirección IPv4 pública (predeterminado)
-6, --ipv6 Imprimir tu dirección IPv6 pública
-j, --json Imprimir la salida en formato JSON
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.karma [OPTIONS] HOST
Utilizar el servicio Karma https://karma.securetia.com para verificar una IP contra
varias listas de Inteligencia de Amenazas / Reputación.
$ habu.karma www.google.com
www.google.com -> 64.233.190.99
[
"hphosts_fsa",
"hphosts_psh",
"hphosts_emd"
]
Nota: Puedes usar el nombre de host o la IP del host para consultar.
Opciones:
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.karma.bulk [OPTIONS] [INFILE]
Mostrar qué direcciones IP están en listas negras utilizando el servicio online
Karma.
Ejemplo:
$ 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
Opciones:
--json Salida JSON
--bad Mostrar solo entradas en listas negras
-v Salida verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.land [OPTIONS] IP
Este comando implementa el ataque LAND, que envía paquetes falsificando la
dirección IP de origen para que sea la misma que la IP de destino. También usa el
mismo puerto de origen y destino.
El ataque es muy antiguo y se puede usar para hacer una Denegación de Servicio en sistemas
antiguos, como Windows NT 4.0. Más información aquí:
https://en.wikipedia.org/wiki/LAND
# sudo habu.land 172.16.0.10
............
Nota: Cada punto (.) es un paquete enviado. Puedes especificar cuántos paquetes enviar
con la opción '-c'. El valor predeterminado es nunca detenerse. También puedes especificar el
puerto de destino, con la opción '-p'.
Opciones:
-c INTEGER Cuántos paquetes enviar (predeterminado: infinito)
-p INTEGER Puerto a usar (predeterminado: 135)
-i TEXT Interfaz a usar
-v Verbose
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.nc [OPTIONS] HOST PORT
Una especie de reemplazo de netcat/ncat.
La ejecución emula la sensación de estas herramientas populares.
Ejemplo:
$ 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/
Opciones:
--family [4|6|46] Familia de direcciones IP
--ssl Habilitar SSL
--crlf Usar CRLF para la secuencia de fin de línea
--protocol [tcp|udp] Protocolo de capa 4 a usar
--source-ip TEXT IP de origen a usar
--source-port INTEGER RANGE Puerto de origen a usar
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.net.contest [OPTIONS]
Intentar conectarse a varios servicios y verificar si se pueden alcanzar usando tu
conexión a Internet.
Ejemplo:
$ habu.net.contest
DNS: True
FTP: True
SSH: True
HTTP: True
HTTPS: True
Opciones:
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.net.interfaces [OPTIONS]
Mostrar las interfaces de red disponibles en el sistema.
Ejemplo:
# 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
Opciones:
-j Salida en formato JSON
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.nmap.excluded [OPTIONS]
Imprime un puerto aleatorio que no está presente en el archivo nmap-services para que no sea
escaneado automáticamente por nmap.
Útil para servicios como SSH o RDP, que son escaneados continuamente en
sus puertos predeterminados.
Ejemplo:
# habu.nmap.excluded
58567
Opciones:
-l INTEGER RANGE Puerto más bajo a considerar
-h INTEGER RANGE Puerto más alto a considerar
--help Mostrar este mensaje y salir.
.. code-block::
Usage: habu.nmap.open [OPTIONS] SCANFILE
Leer un informe de nmap e imprimir los puertos abiertos.
Imprime los puertos que han resultado abiertos leyendo la salida generada por nmap.
Puedes usarlo para reutilizar rápidamente la lista de puertos como entrada de otras
herramientas.
Soporta y detecta los 3 formatos de salida (nmap, gnmap y xml)
Ejemplo:
# habu.nmap.open portantier.nmap
22,80,443
Opciones:
-p [tcp|udp|sctp] El protocolo (predeterminado=tcp)
--help Mostrar este mensaje y salir.
habu.nmap.ports ---------------Usage: habu.nmap.ports [OPCIONES] ARCHIVO_ESCANEO
Lee un informe de nmap e imprime los puertos probados.
Imprime los puertos que han sido probados leyendo la salida generada por nmap.
Puede usarse para reutilizar rápidamente la lista de puertos como entrada de otras herramientas.
Soporta y detecta los 3 formatos de salida (nmap, gnmap y xml)
Ejemplo:
21,22,23,80,443
Opciones: -p [tcp|udp|sctp] El protocolo (predeterminado=tcp) --help Muestra este mensaje y sale.
.. code-block::
Usage: habu.protoscan [OPCIONES] IP
Envía paquetes IP con diferentes contenidos de campo de protocolo para adivinar qué protocolos
de capa 4 están disponibles.
La salida muestra qué protocolos no generan una respuesta ICMP de 'protocolo-no-alcanzable'.
Ejemplo:
$ 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
Opciones:
-i TEXTO Interfaz a usar
-t ENTERO Tiempo de espera para cada sonda (predeterminado: 2 segundos)
--all Probar todos los protocolos (predeterminado: Definido en /etc/protocols)
-v Salida verbosa
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.server.ftp [OPCIONES]
Servidor FTP falso básico, con el único propósito de robar credenciales de usuario.
Soporta SSL/TLS.
Ejemplo:
# sudo habu.server.ftp --ssl --ssl-cert /tmp/cert.pem --ssl-key /tmp/key.pem
Escuchando en el puerto 21
Conexión aceptada desde ('192.168.0.27', 56832)
Credenciales recolectadas de 192.168.0.27! fabian 123456
Opciones:
-a TEXTO Dirección a la que vincularse (predeterminado: todas)
-p ENTERO Puerto a usar (predeterminado: 21)
--ssl Habilitar SSL/TLS (predeterminado: False)
--ssl-cert TEXTO Archivo de certificado SSL/TLS
--ssl-key TEXTO Archivo de clave SSL/TLS
-v Verboso
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.shodan [OPCIONES] IP
Cliente simple de la API de shodan.
Imprime el resultado JSON de una consulta de shodan.
Ejemplo:
$ 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
Opciones:
--cache / --no-cache
-v Salida verbosa
--format [txt|csv|json|nmap] Formato de salida
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.shodan.query [OPCIONES] CONSULTA
Cliente simple de la API de shodan.
Imprime el resultado JSON de una consulta de shodan.
Ejemplo:
$ 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
]
}
Opciones:
-c Deshabilitar caché
-v Salida verbosa
-o NOMBRE_ARCHIVO Archivo de salida (predeterminado: stdout)
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.tcp.flags [OPCIONES] IP
Envía paquetes TCP con diferentes banderas e indica qué respuestas recibe.
Puede usarse para analizar cómo las diferentes implementaciones y configuraciones
de la pila TCP/IP responden a paquetes con varias combinaciones de banderas.
Ejemplo:
# habu.tcp_flags www.portantier.com
S -> SA
FS -> SA
FA -> R
SA -> R
Por defecto, el comando envía todas las combinaciones posibles de banderas. Puede
especificar qué banderas deben estar siempre presentes (reduciendo la cantidad de
combinaciones posibles), con la opción '-f'.
También puede especificar qué banderas desea que estén presentes en los paquetes
de respuesta a mostrar, con la opción '-r'.
Con el siguiente comando, ve todas las combinaciones posibles que tienen la
bandera FIN (F) activa y generan una respuesta que contiene la bandera RST (R).
Ejemplo:
# habu.tcp_flags -f F -r R www.portantier.com
FPA -> R
FSPA -> R
FAU -> R
Opciones:
-p ENTERO Puerto a usar (predeterminado: 80)
-f TEXTO Banderas que deben enviarse siempre (predeterminado: fuzz con todas las banderas)
-r TEXTO Filtrar por banderas de respuesta (predeterminado: mostrar todas las respuestas)
-v Verboso
--first Detenerse en la primera respuesta que coincida
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.tcp.isn [OPCIONES] IP
Crea conexiones TCP e imprime los números de secuencia iniciales TCP para cada una.
$ sudo habu.tcp.isn -c 5 www.portantier.com
1962287220
1800895007
589617930
3393793979
469428558
Nota: Puede obtener una representación gráfica (requiere el paquete matplotlib)
usando la opción '-g' para comprender mejor la aleatoriedad.
Opciones:
-p ENTERO Puerto a usar (predeterminado: 80)
-c ENTERO Cuántos paquetes enviar/recibir (predeterminado: 5)
-i TEXTO Interfaz a usar
-g Gráfico (requiere matplotlib)
-v Salida verbosa
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.tcp.scan [OPCIONES] IP
Escáner de puertos TCP.
Imprime los puertos que generaron una respuesta con la bandera SYN o (si se usa
-a) todos los puertos que generaron una respuesta.
Es realmente básico comparado con nmap, pero ¿quién está comparando?
Ejemplo:
# habu.tcp.scan -p 22,23,80,443 -s 1 45.77.113.133
22 S -> SA
80 S -> SA
443 S -> SA
Opciones:
-p TEXTO Puertos a usar (predeterminado: 80) ejemplo: 20-23,80,135
-i TEXTO Interfaz a usar
-f TEXTO Banderas a usar (predeterminado: S)
-s TEXTO Tiempo entre sondas (predeterminado: enviar todos juntos)
-t ENTERO Tiempo de espera para cada sonda (predeterminado: 2 segundos)
-a Mostrar todas las respuestas (predeterminado: Solo las que contienen bandera SYN)
-v Salida verbosa
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.tcp.synflood [OPCIONES] IP
Lanza muchas conexiones TCP y las mantiene abiertas.
Algunos sistemas muy antiguos pueden sufrir una Denegación de Servicio con esto.
Referencia: https://en.wikipedia.org/wiki/SYN_flood
Ejemplo:
# sudo habu.tcp.synflood 172.16.0.10
.................
Cada punto es un paquete enviado.
Puede usar las opciones '-2' y '-3' para falsificar las direcciones de capa 2/3.
Si las usa, cada conexión se enviará desde una dirección aleatoria de capa2 (MAC)
y/o capa3 (IP).
Puede elegir el número de conexiones a crear con la opción '-c'.
El valor predeterminado es nunca dejar de crear conexiones.
Nota: Si envía los paquetes desde su dirección IP real y desea mantener las
conexiones semiabiertas, necesita configurar el firewall para que no envíe
los paquetes RST.
Opciones:
-i TEXTO Qué interfaz usar (predeterminado: auto)
-c ENTERO Cuántos paquetes enviar (predeterminado: infinito)
-p ENTERO Puerto a usar (predeterminado: 135)
-2 Falsificar dirección capa2/MAC (predeterminado: No)
-3 Falsificar dirección capa3/IP (predeterminado: No)
-v Verboso
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.traceroute [OPCIONES] IP
Traceroute TCP.
Identifica la ruta hacia un destino obteniendo los mensajes de
ttl-zero-during-transit.
Nota: En Internet, puede tener varias rutas válidas hacia un dispositivo.
Ejemplo:
# 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
Nota: Es mejor si usa un puerto que esté abierto en el sistema remoto.
Opciones:
-p ENTERO Puerto a usar (predeterminado: 80)
-i TEXTO Interfaz a usar
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.upgrade [OPCIONES]
Actualizar habu (desde https://github.com/fportantier/habu)
Opciones:
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.usercheck [OPCIONES] NOMBRE_USUARIO
Comprueba si el nombre de usuario dado existe en varias redes sociales y otros
sitios populares.
$ 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"
}
Opciones:
-c Deshabilitar caché
-v Salida verbosa
-w Abrir cada URL válida en un navegador web
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.version [OPCIONES]
Opciones:
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.vhosts [OPCIONES] HOST
Usa Bing para consultar los sitios web alojados en la misma dirección IP.
$ habu.vhosts www.telefonica.com
www.telefonica.com -> 212.170.36.79
[
'www.telefonica.es',
'universitas.telefonica.com',
'www.telefonica.com',
]
Opciones:
-c Deshabilitar caché
-p ENTERO Número de páginas (Predeterminado: 10)
-f ENTERO Primer resultado a obtener (Predeterminado: 1)
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.virustotal [OPCIONES] ENTRADA
Envía un archivo a VirusTotal https://www.virustotal.com/ e imprime el informe
en formato JSON.
Nota: Antes de enviar un archivo, se comprobará si el archivo ha sido analizado antes
(enviando el sha256 del archivo); si existe un informe, no se realizará ningún
envío y verá el último informe.
$ habu.virustotal meterpreter.exe
Verificando si el hash ya fue enviado: f4826b219aed3ffdaa23db26cfae611979bf215984fc71a1c12f6397900cb70d
Enviando archivo para análisis
Esperando/recuperando el informe...
{
"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"
},
... Los otros escáneres ...
},
"sha1": "5fa33cab1729480dd023b08f7b91a945c16d0a9e",
"sha256": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"total": 67,
"verbose_msg": "Scan finished, information embedded"
}
Opciones:
-v Salida verbosa
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.web.report [OPCIONES] [ARCHIVO_ENTRADA]
Genera un informe que incluye las cabeceras HTTP de sitios web.
Opcionalmente, usa Firefox o Chromium para tomar una captura de pantalla de los sitios web.
El formato esperado es una URL por línea.
Crea un directorio llamado 'report' con el contenido dentro.
$ echo https://www.portantier.com | habu.web.report
Opciones:
-v Salida verbosa
-s Tomar una captura de pantalla para cada sitio web
-b [firefox|chromium-browser] Navegador a usar para la captura de pantalla.
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.web.screenshot [OPCIONES] URL
Usa Firefox o Chromium para tomar una captura de pantalla del sitio web.
$ habu.web.screenshot https://www.portantier.com
Opciones:
-b [firefox|chromium-browser] Navegador a usar para la captura de pantalla.
-o TEXTO Archivo de salida. (predeterminado: screenshot.png)
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.whois.domain [OPCIONES] DOMINIO
Cliente whois simple para consultar nombres de dominio.
Ejemplo:
$ 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
Opciones:
--json Imprimir la salida en formato JSON
--csv Imprimir la salida en formato CSV
--help Muestra este mensaje y sale.
.. code-block::
Usage: habu.whois.ip [OPCIONES] IP
Cliente whois simple para consultar direcciones IP (IPv4 e IPv6).
Ejemplo:
$ 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
Opciones:
--json Imprimir la salida en formato JSON
--csv Imprimir la salida en formato CSV
--help Muestra este mensaje y sale.
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>_