
Sto sviluppando Habu per insegnare (e imparare) alcuni concetti su Python e l'Hacking di Rete.
Alcune tecniche implementate nella versione attuale sono:
Lo sviluppo di questo software è supportato da Securetia SRL (https://www.securetia.com/)
Vari scenari di utilizzo utili sono dettagliati in https://fportantier.github.io/hacking-with-habu/
La seguente playlist di Youtube contiene video che mostrano l'installazione e l'utilizzo:
https://www.youtube.com/watch?v=rgp9seLLyqE&list=PL4HZnX8VnFXqSvNw7x-bXOn0dgxNdfnVD
Se vuoi discutere di alcune funzionalità di Habu, possibili miglioramenti, ecc., puoi utilizzare il gruppo Telegram di Habu: https://t.me/python_habu
Issues e pull request devono essere inviate al repository github: https://github.com/fportantier/habu
Metodo consigliato per installare:
::
$ python3 -m pip install --upgrade git+https://github.com/fportantier/habu.git
Questo funziona su qualsiasi sistema che abbia Python 3 installato.
Nota: Su alcuni sistemi (come Microsoft Windows) è necessario modificare il comando per puntare al percorso corretto dell'eseguibile Python.
Ora abbiamo un comando per aggiornare direttamente dal repository Git e pulire eventuali vecchi comandi che non esistono più o che sono stati rinominati.
::
$ habu.upgrade
Tutti i comandi implementano l'opzione '--help', che mostra l'aiuto, gli argomenti, le opzioni e i valori predefiniti.
Quasi tutti i comandi implementano la modalità verbosa con l'opzione '-v'. Questo può darti alcune informazioni extra su ciò che habu sta facendo.
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
Invia pacchetti ARP per verificare se un host è attivo nella rete locale.
Esempio:
# 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 Interfaccia da usare
-v Output dettagliato
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.arp.poison [OPTIONS] VICTIM1 VICTIM2
Invia pacchetti ARP 'is-at' a ciascuna vittima, avvelenando le loro tabelle ARP per inviare il traffico al tuo sistema.
Nota: Se vuoi un attacco Man In The Middle completamente funzionante, devi abilitare l'inoltro dei pacchetti sul tuo sistema operativo per agire come un router. Puoi farlo usando:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Esempio:
# 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 Interfaccia da usare
-v Verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.arp.sniff [OPTIONS]
Ascolta i pacchetti ARP e mostra informazioni per ogni dispositivo.
Colonne: Secondi dall'ultimo pacchetto | IP | MAC | Vendor
Esempio:
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 Interfaccia da usare
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.asydns [OPTIONS]
Richiede un nome di dominio DNS basato su chiavi RSA pubbliche e private utilizzando il protocollo AsyDNS https://github.com/portantier/asydns
Esempio:
$ 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 URL API
-g Forza la generazione di una nuova coppia di chiavi
-r Revoca la chiave pubblica
-v Output dettagliato
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.b64 [OPTIONS] [F]
Codifica o decodifica dati in base64, proprio come il comando base64.
$ echo awesome | habu.b64
YXdlc29tZQo=
$ echo YXdlc29tZQo= | habu.b64 -d
awesome
Options:
-d decodifica invece di codificare
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.cert.clone [OPTIONS] HOSTNAME PORT KEYFILE CERTFILE
Connettiti a un server SSL/TLS, ottieni il certificato e genera un certificato con le stesse opzioni e valori dei campi.
Nota: Il certificato generato non è valido, ma può essere utilizzato per attacchi di social engineering
Esempio:
$ habu.certclone www.google.com 443 /tmp/key.pem /tmp/cert.pem
Options:
--copy-extensions Copia le estensioni del certificato (predefinito: False)
--expired Genera un certificato scaduto (predefinito: False)
-v Verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.cert.crtsh [OPTIONS] DOMAIN
Scarica i log di trasparenza dei certificati per un dominio e verifica con query DNS se ogni sottodominio esiste.
Utilizza il multithreading per migliorare le prestazioni delle query DNS.
Esempio:
$ habu.crtsh securetia.com
alt.securetia.com
other.securetia.com
www.securetia.com
Options:
-c Disabilita cache
-n Disabilita la validazione dei sottodomini DNS
-v Output dettagliato
--json Stampa l'output in formato JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.cert.names [OPTIONS] [NETWORK]
Si connette a ciascun host/porta e mostra un riepilogo dei nomi dei certificati.
Gli host a cui connettersi sono presi da due possibili opzioni:
1. Opzione -i (predefinita: stdin). Un file in cui ogni riga è un host o una rete
2. Un argomento che può essere un host o una rete
Se usi entrambi i metodi, gli host e le reti vengono uniti in un'unica lista.
Esempio:
$ 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 Porte a cui connettersi (elenco separato da virgole)
-i FILENAME File di input (Predefinito: stdin)
-t FLOAT Tempo di attesa per ciascuna connessione
-v Output dettagliato
--json Stampa l'output in formato JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.config.del [OPTIONS] KEY
Elimina una CHIAVE dalla configurazione.
Nota: Per impostazione predefinita, KEY viene convertita in maiuscolo.
Esempio:
$ habu.config.del DNS_SERVER
Options:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.config.set [OPTIONS] KEY VALUE
Imposta VALORE sulla chiave di configurazione.
Nota: Per impostazione predefinita, KEY viene convertita in maiuscolo.
Esempio:
$ habu.config.set DNS_SERVER 8.8.8.8
Options:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.config.show [OPTIONS]
Mostra la configurazione corrente.
Nota: Per impostazione predefinita, le opzioni con 'KEY' nel nome sono oscurate.
Esempio:
$ habu.config.show
{
"DNS_SERVER": "8.8.8.8",
"FERNET_KEY": "*************"
}
Options:
-k, --show-keys Mostra anche i valori delle chiavi
--option TEXT... Scrivi nella configurazione (CHIAVE VALORE)
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.crack.luhn [OPTIONS] NUMBER
Avendo valori noti per un numero convalidato Luhn, ottieni i possibili numeri sconosciuti.
I numeri che utilizzano l'algoritmo di Luhn per la convalida sono Carte di Credito, IMEI, Identificatore Nazionale del Fornitore negli Stati Uniti, Numeri di Assicurazione Sociale Canadesi, Numeri ID Israeliani e Numeri di Previdenza Sociale Greci (ΑΜΚΑ).
I caratteri '-' vengono ignorati.
Definisci i numeri mancanti con il carattere 'x'.
Riferimento: https://en.wikipedia.org/wiki/Luhn_algorithm
Esempio:
$ habu.crack.luhn 4509-xx08-3160-6445
4509000831606445
4509180831606445
4509260831606445
4509340831606445
4509420831606445
4509590831606445
4509670831606445
4509750831606445
4509830831606445
4509910831606445
Options:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.crack.snmp [OPTIONS] IP
Lancia query snmp-get contro un IP, e ti dice quando trova una community string valida (è un semplice cracker SNMP).
Il dizionario utilizzato è quello distribuito con lo strumento onesixtyone https://github.com/trailofbits/onesixtyone
Esempio:
# habu.crack.snmp 179.125.234.210
Community found: private
Community found: public
Nota: Puoi anche ricevere messaggi come \<UNIVERSAL\> \<class
'scapy.asn1.asn1.ASN1\_Class\_metaclass'\>, non so come sopprimerli per ora.
Options:
-p INTEGER Porta da usare
-c TEXT Community (predefinito: elenco dei più usati)
-s Fermati dopo la prima corrispondenza
-v Verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.crypto.fernet [OPTIONS]
Cifratura Fernet.
Usa AES-128-CBC con HMAC
Nota: Devi usare una chiave per cifrare con Fernet.
Usa il parametro -k o imposta il valore di configurazione FERNET_KEY.
Le chiavi possono essere generate con il comando habu.crypto.fernet.genkey
Riferimento: https://github.com/fernet/spec/blob/master/Spec.md
Esempio:
$ "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 Chiave
-d Decifra invece di cifrare
--ttl INTEGER Tempo di vita per la verifica del timestamp
-i FILENAME File di input (predefinito: stdin)
-o FILENAME File di output (predefinito: stdout)
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.crypto.fernet.genkey [OPTIONS]
Genera una nuova chiave Fernet, opzionalmente scrivila in ~/.habu.json
Esempio:
$ habu.crypto.fernet.genkey
xgvWCIvjwe9Uq7NBvwO796iI4dsGD623QOT9GWqnuhg=
Options:
-w Scrivi questa chiave in ~/.habu.json
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.crypto.gppref [OPTIONS] PASSWORD
Decifra la password degli utenti locali aggiunti tramite Windows 2008 Group Policy Preferences.
Questo valore è l'attributo 'cpassword' incorporato nel file Groups.xml, memorizzato nella condivisione Sysvol del controller di dominio.
Esempio:
# habu.crypto.gppref AzVJmXh/J9KrU5n0czX1uBPLSUjzFE8j7dOltPD8tLk
testpassword
Options:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.crypto.hasher [OPTIONS] [F]
Calcola vari hash per i dati di input, che possono essere un file o un flusso.
Esempio:
$ 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
Puoi anche specificare quale algoritmo usare. In tal caso, l'output è solo il valore dell'hash calcolato:
$ habu.hasher -a md5 README.rst
992a833cd162047daaa6a236b8ac15ae README.rst
Options:
-a [md5|sha1|sha256|sha512|ripemd160|whirlpool]
Solo questo algoritmo (Predefinito: tutti)
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.crypto.xor [OPTIONS]
Cifratura XOR.
Nota: XOR non è una 'cifratura sicura'. Se hai bisogno di crittografia forte devi usare algoritmi come AES. Puoi usare habu.fernet per quello.
Esempio:
$ 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 Chiave di cifratura
-i FILENAME File di input (predefinito: stdin)
-o FILENAME File di output (predefinito: stdout)
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.data.enrich [OPTIONS]
Arricchisci i dati aggiungendo informazioni interessanti.
Esempio:
$ 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 File di input (Predefinito: stdin)
-v Output dettagliato
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.data.extract.domain [OPTIONS] [INFILE]
Estrai domini validi da un file o da stdin.
Opzionalmente, verifica ogni dominio per la presenza di registri NS.
Esempio:
$ cat /var/log/some.log | habu.data.extract.domain -c
google.com
ibm.com
redhat.com
Options:
-c Verifica se il dominio ha server NS definiti
-v Output dettagliato
-j Output JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.data.extract.email [OPTIONS] [INFILE]
Estrai indirizzi email da un file o da stdin.
Esempio:
$ cat /var/log/auth.log | habu.data.extract.email
[email protected]
[email protected]
[email protected]
Options:
-v Output dettagliato
-j Output JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.data.extract.fqdn [OPTIONS] [INFILE]
Estrai FQDN (Fully Qualified Domain Names) da un file o da stdin.
Esempio:
$ cat /var/log/some.log | habu.data.extract.fqdn
www.google.com
ibm.com
fileserver.redhat.com
Options:
-c Verifica se il nome host si risolve
-v Output dettagliato
-j Output JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.data.extract.ipv4 [OPTIONS] [INFILE]
Estrai indirizzi IPv4 da un file o da stdin.
Esempio:$ cat /var/log/auth.log | habu.data.extract.ipv4
172.217.162.4
23.52.213.96
190.210.43.70
Opzioni:
-j, --json Output JSON
-u, --unique Rimuovi duplicati
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.data.filter [OPTIONS] FIELD [gt|lt|eq|ne|ge|le|in|contains|defin
ed|undefined|true|false] [VALUE]
Filtra i dati in base agli operatori.
Riferimento operatori:
gt: Maggiore di
lt: Minore di
eq: Uguale a
ne: Diverso da
ge: Maggiore o uguale a
le: Minore o uguale a
in: Dentro la lista di valori (o dentro la rete)
contains: Contiene il valore (o l'indirizzo di rete)
defined: Il valore è definito
undefined: Il valore non è definito
true: Il valore è True
false: Il valore è False
Esempio:
$ 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"
}
]
Documentazione: https://fportantier.github.io/hacking-with-habu/user/data-manipulation.html#data-enrichment
Opzioni:
-i FILENAME File di input (Predefinito: stdin)
-v Output verboso
--not Nega il confronto
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.data.select [OPTIONS] FIELD
Seleziona un campo da un input JSON.
Esempio:
$ 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
Opzioni:
-i FILENAME File di input (Predefinito: stdin)
-v Output verboso
--json Output JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.dhcp.discover [OPTIONS]
Invia una richiesta DHCP e mostra quali dispositivi hanno risposto.
Nota: Usando '-v' puoi vedere tutte le opzioni (come i server DNS) incluse
nelle risposte.
# habu.dhcp_discover
Ether / IP / UDP 192.168.0.1:bootps > 192.168.0.5:bootpc / BOOTP / DHCP
Opzioni:
-i TEXT Interfaccia da usare
-t INTEGER Tempo (secondi) di attesa per le risposte
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.dhcp.starvation [OPTIONS]
Invia multiple richieste DHCP da indirizzi MAC falsificati per riempire i
lease del server DHCP.
Quando tutti gli indirizzi di rete disponibili sono assegnati, il server
DHCP non invia risposte.
Quindi, alcuni attacchi, come lo spoofing DHCP, possono essere effettuati.
# 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
Opzioni:
-i TEXT Interfaccia da usare
-t INTEGER Tempo (secondi) di attesa per le risposte
-s INTEGER Tempo (secondi) tra le richieste
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.dns.lookup.forward [OPTIONS] HOSTNAME
Esegue una ricerca diretta di un dato hostname.
Esempio:
$ habu.dns.lookup.forward google.com
{
"ipv4": "172.217.168.46",
"ipv6": "2a00:1450:400a:802::200e"
}
Opzioni:
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.dns.lookup.reverse [OPTIONS] IP_ADDRESS
Esegue una ricerca inversa di un dato indirizzo IP.
Esempio:
$ $ habu.dns.lookup.reverse 8.8.8.8
{
"hostname": "google-public-dns-a.google.com"
}
Opzioni:
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.eicar [OPTIONS]
Stampa la stringa di test EICAR che può essere usata per testare i motori
antimalware.
Maggiori info: http://www.eicar.org/86-0-Intended-use.html
Esempio:
$ habu.eicar
X5O!P%@AP[4\XZP54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Opzioni:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.forkbomb [OPTIONS] [bash|batch|c|haskell|perl|php|python|ruby]
Una scorciatoia per ricordare come usare le fork bomb in diversi linguaggi.
Attualmente supportati: bash, batch, c, haskell, perl, php, python, ruby.
Esempio:
$ habu.forkbomb c
#include <unistd.h>
int main()
{
while(1)
{
fork();
}
return 0;
}
Opzioni:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.fqdn.finder [OPTIONS] [DOMAINS]...
Usa diverse tecniche per ottenere FQDN validi per i domini specificati.
1. Prova tutti gli FQDN con i trasferimenti di zona DNS
2. Controlla i log di Certificate Transparency
3. Si connette a porte specificate, ottiene certificati SSL e ne ricava FQDN
4. Si connette a siti web e ottiene FQDN basati sui link del sito
5. DNS Brute Force per nomi comuni
I risultati vengono puliti per rimuovere FQDN che non risolvono via DNS
Esempio:
$ 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
Opzioni:
-t FLOAT Tempo di attesa per ogni connessione
-v Output verboso
--debug Output di debug
--connect / --no-connect Ottieni da FQDN noti certificati SSL di porte aperte
--brute / --no-brute Esegui DNS brute force sui domini
--links / --no-links Estrai FQDN dai collegamenti dei siti web
--xfr / --no-xfr Prova a fare un trasferimento di zona DNS sui domini
--ctlog / --no-ctlog Prova a ottenere FQDN dai log di Certificate
Transparency
--json Stampa l'output in formato JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.gateway.find [OPTIONS] NETWORK
Prova a raggiungere un IP esterno usando qualsiasi host come router.
Utile per trovare router nella tua rete.
Prima, usa arping per rilevare host vivi e ottenere indirizzi MAC.
Successivamente, crea un pacchetto di rete e inserisce ogni indirizzo MAC
come destinazione.
Infine, stampa i dispositivi che hanno inoltrato correttamente i pacchetti.
Esempio:
# 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
Opzioni:
-i TEXT Interfaccia da usare
--host TEXT Host da raggiungere (predefinito: 8.8.8.8)
--tcp Usa TCP invece di ICMP
--dport INTEGER RANGE Porta di destinazione per TCP (predefinito: 80)
--timeout INTEGER Timeout in secondi (predefinito: 5)
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.host [OPTIONS]
Raccoglie informazioni sull'host dove è in esecuzione habu.
Esempio:
$ 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"
}
Opzioni:
-v Output verboso.
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.http.headers [OPTIONS] SERVER
Recupera gli header HTTP di un server web.
Esempio:
$ 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"
}
Opzioni:
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.http.options [OPTIONS] SERVER
Recupera i metodi HTTP disponibili di un server web.
Esempio:
$ habu.http.options -v http://google.com
{
"allowed": "GET, HEAD"
}
Opzioni:
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.http.tech [OPTIONS] URL
Usa il database apps.json di Wappalyzer per identificare le tecnologie
utilizzate in un'applicazione web.
Riferimento: https://github.com/AliasIO/Wappalyzer
Nota: Questo strumento invia una sola richiesta. Quindi è furtivo e non
sospetto.
$ 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
Opzioni:
--cache / --no-cache
--format [txt|csv|json] Formato di output
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.icmp.ping [OPTIONS] IP
Il classico strumento ping che invia richieste 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
Opzioni:
-i TEXT Quale interfaccia usare (predefinito: auto)
-c INTEGER Quanti pacchetti inviare (predefinito: infiniti)
-t INTEGER Timeout in secondi (predefinito: 2)
-w INTEGER Quanti secondi tra i pacchetti (predefinito: 1)
-v Verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.ip.asn [OPTIONS] IP
Usa il servizio Team Cymru ip2asn per ottenere informazioni su un
IPv4/IPv6 pubblico.
Riferimento: 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"
}
Opzioni:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.ip.geolocation [OPTIONS] IP_ADDRESS
Ottiene la geolocalizzazione di un indirizzo IP da https://ipapi.co/.
Esempio:
$ habu.ip.geolocation 8.8.8.8
{
"ip": "8.8.8.8",
"city": "Mountain View",
...
"asn": "AS15169",
"org": "Google LLC"
}
Opzioni:
-v Output verboso.
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.ip.internal [OPTIONS]
Ottiene l'indirizzo(i) IP locale delle interfacce locali.
Esempio:
$ 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"
}
]
},
...
Opzioni:
-v Output verboso.
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.ip.public [OPTIONS]
Ottiene l'indirizzo IP pubblico della connessione da https://api.ipify.org.
Esempio:
$ habu.ip.public
80.219.53.185
Opzioni:
-4, --ipv4 Stampa il tuo indirizzo IPv4 pubblico (predefinito)
-6, --ipv6 Stampa il tuo indirizzo IPv6 pubblico
-j, --json Stampa l'output in formato JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.karma [OPTIONS] HOST
Usa il servizio Karma https://karma.securetia.com per controllare un IP
contro varie liste di Threat Intelligence / Reputazione.
$ habu.karma www.google.com
www.google.com -> 64.233.190.99
[
"hphosts_fsa",
"hphosts_psh",
"hphosts_emd"
]
Nota: Puoi usare il nome host o l'IP dell'host per la query.
Opzioni:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.karma.bulk [OPTIONS] [INFILE]
Mostra quali indirizzi IP sono presenti nelle blacklist usando il servizio
online Karma.
Esempio:
$ 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
Opzioni:
--json Output JSON
--bad Mostra solo le voci nelle blacklist
-v Output verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.land [OPTIONS] IP
Questo comando implementa l'attacco LAND, che invia pacchetti forgiando
l'indirizzo IP sorgente per essere uguale all'indirizzo IP di destinazione.
Usa anche la stessa porta sorgente e destinazione.
L'attacco è molto vecchio e può essere usato per fare un Denial of Service
su sistemi obsoleti, come Windows NT 4.0. Maggiori informazioni qui:
https://en.wikipedia.org/wiki/LAND
# sudo habu.land 172.16.0.10
............
Nota: Ogni punto (.) è un pacchetto inviato. Puoi specificare quanti
pacchetti inviare con l'opzione '-c'. Il default è non fermarsi mai.
Inoltre, puoi specificare la porta di destinazione con l'opzione '-p'.
Opzioni:
-c INTEGER Quanti pacchetti inviare (predefinito: infiniti)
-p INTEGER Porta da usare (predefinito: 135)
-i TEXT Interfaccia da usare
-v Verboso
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.nc [OPTIONS] HOST PORT
Una specie di sostituto di netcat/ncat.
L'esecuzione emula la sensazione di questi strumenti popolari.
Esempio:
$ 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/
Opzioni:
--family [4|6|46] Famiglia di indirizzi IP
--ssl Abilita SSL
--crlf Usa CRLF per la sequenza EOL
--protocol [tcp|udp] Protocollo di livello 4 da usare
--source-ip TEXT IP sorgente da usare
--source-port INTEGER RANGE Porta sorgente da usare
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.net.contest [OPTIONS]
Prova a connettersi a vari servizi e controlla se riesce a raggiungerli
usando la tua connessione Internet.
Esempio:
$ habu.net.contest
DNS: True
FTP: True
SSH: True
HTTP: True
HTTPS: True
Opzioni:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.net.interfaces [OPTIONS]
Mostra le interfacce di rete disponibili sul sistema.
Esempio:
# 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
Opzioni:
-j Output in formato JSON
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.nmap.excluded [OPTIONS]
Stampa una porta casuale che non è presente nel file nmap-services,
quindi non viene scansionata automaticamente da nmap.
Utile per servizi come SSH o RDP, che vengono continuamente scansionati
sulle loro porte predefinite.
Esempio:
# habu.nmap.excluded
58567
Opzioni:
-l INTEGER RANGE Porta più bassa da considerare
-h INTEGER RANGE Porta più alta da considerare
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.nmap.open [OPTIONS] SCANFILE
Legge un report nmap e stampa le porte aperte.
Stampa le porte che risultano aperte leggendo l'output generato da nmap.
Puoi usarlo per riutilizzare rapidamente la lista delle porte come input
per altri strumenti.
Supporta e rileva i 3 formati di output (nmap, gnmap e xml)
Esempio:
# habu.nmap.open portantier.nmap
22,80,443
Opzioni:
-p [tcp|udp|sctp] Il protocollo (predefinito=tcp)
--help Mostra questo messaggio ed esci.
habu.nmap.ports ---------------Usage: habu.nmap.ports [OPTIONS] SCANFILE
Legge un report di nmap e stampa le porte testate.
Stampa le porte che sono state testate leggendo l'output di nmap generato.
Puoi usarlo per riutilizzare rapidamente l'elenco delle porte come input per altri strumenti.
Supporta e riconosce i 3 formati di output (nmap, gnmap e xml)
Esempio:
21,22,23,80,443
Opzioni: -p [tcp|udp|sctp] Il protocollo (default=tcp) --help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.protoscan [OPTIONS] IP
Invia pacchetti IP con diversi contenuti del campo protocollo per indovinare quali
protocolli di livello 4 sono disponibili.
L'output mostra quali protocolli non generano una risposta ICMP 'protocol-unreachable'.
Esempio:
$ 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
Opzioni:
-i TEXT Interfaccia da usare
-t INTEGER Timeout per ogni sonda (default: 2 secondi)
--all Sonda tutti i protocolli (default: Definita in /etc/protocols)
-v Output verbose
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.server.ftp [OPTIONS]
Server FTP fasullo di base, con il solo scopo di rubare le credenziali degli utenti.
Supporta SSL/TLS.
Esempio:
# sudo habu.server.ftp --ssl --ssl-cert /tmp/cert.pem --ssl-key /tmp/key.pem
Listening on port 21
Accepted connection from ('192.168.0.27', 56832)
Credentials collected from 192.168.0.27! fabian 123456
Opzioni:
-a TEXT Indirizzo a cui associarsi (default: tutte)
-p INTEGER Porta da usare (default: 21)
--ssl Abilita SSL/TLS (default: False)
--ssl-cert TEXT File certificato SSL/TLS
--ssl-key TEXT File chiave SSL/TLS
-v Verbose
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.shodan [OPTIONS] IP
Semplice client API di Shodan.
Stampa il risultato JSON di una query Shodan.
Esempio:
$ 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
Opzioni:
--cache / --no-cache
-v Output verbose
--format [txt|csv|json|nmap] Formato di output
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.shodan.query [OPTIONS] QUERY
Semplice client API di Shodan.
Stampa il risultato JSON di una query Shodan.
Esempio:
$ 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
]
}
Opzioni:
-c Disabilita cache
-v Output verbose
-o FILENAME File di output (default: stdout)
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.tcp.flags [OPTIONS] IP
Invia pacchetti TCP con diversi flag e dice quali risposte riceve.
Può essere usato per analizzare come le diverse implementazioni dello stack TCP/IP
e le configurazioni rispondono a pacchetti con varie combinazioni di flag.
Esempio:
# habu.tcp_flags www.portantier.com
S -> SA
FS -> SA
FA -> R
SA -> R
Per impostazione predefinita, il comando invia tutte le possibili combinazioni di flag. Puoi
specificare quali flag devono essere sempre presenti (riducendo la quantità di
possibili combinazioni), con l'opzione '-f'.
Inoltre, puoi specificare quali flag vuoi siano presenti nei pacchetti di risposta
da mostrare, con l'opzione '-r'.
Con il prossimo comando, vedi tutte le possibili combinazioni che hanno il flag
FIN (F) impostato e generano una risposta che contiene il flag RST (R).
Esempio:
# habu.tcp_flags -f F -r R www.portantier.com
FPA -> R
FSPA -> R
FAU -> R
Opzioni:
-p INTEGER Porta da usare (default: 80)
-f TEXT Flag che devono essere sempre inviati (default: fuzz con tutti i flag)
-r TEXT Filtra per flag di risposta (default: mostra tutte le risposte)
-v Verbose
--first Fermati alla prima risposta che corrisponde
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.tcp.isn [OPTIONS] IP
Crea connessioni TCP e stampa i numeri di sequenza iniziali TCP per ciascuna.
$ sudo habu.tcp.isn -c 5 www.portantier.com
1962287220
1800895007
589617930
3393793979
469428558
Nota: Puoi ottenere una rappresentazione grafica (richiede il pacchetto matplotlib)
usando l'opzione '-g' per comprendere meglio l'aleatorietà.
Opzioni:
-p INTEGER Porta da usare (default: 80)
-c INTEGER Quanti pacchetti inviare/ricevere (default: 5)
-i TEXT Interfaccia da usare
-g Grafico (richiede matplotlib)
-v Output verbose
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.tcp.scan [OPTIONS] IP
Scanner di porte TCP.
Stampa le porte che hanno generato una risposta con il flag SYN o (se mostrala
usa -a) tutte le porte che hanno generato una risposta.
È molto basilare rispetto a nmap, ma chi sta confrontando?
Esempio:
# habu.tcp.scan -p 22,23,80,443 -s 1 45.77.113.133
22 S -> SA
80 S -> SA
443 S -> SA
Opzioni:
-p TEXT Porte da usare (default: 80) esempio: 20-23,80,135
-i TEXT Interfaccia da usare
-f TEXT Flag da usare (default: S)
-s TEXT Tempo tra le sonde (default: invia tutti insieme)
-t INTEGER Timeout per ogni sonda (default: 2 secondi)
-a Mostra tutte le risposte (default: Solo contenenti flag SYN)
-v Output verbose
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.tcp.synflood [OPTIONS] IP
Lancia molte connessioni TCP e le mantiene aperte.
Alcuni sistemi molto vecchi possono subire un Denial of Service con questo.
Riferimento: https://en.wikipedia.org/wiki/SYN_flood
Esempio:
# sudo habu.tcp.synflood 172.16.0.10
.................
Ogni punto è un pacchetto inviato.
Puoi usare le opzioni '-2' e '-3' per falsificare gli indirizzi di livello 2/3.
Se le usi, ogni connessione verrà inviata da un indirizzo casuale di livello2 (MAC)
e/o livello3 (IP).
Puoi scegliere il numero di connessioni da creare con l'opzione '-c'.
Il default è non smettere mai di creare connessioni.
Nota: Se invii i pacchetti dal tuo indirizzo IP reale e vuoi
mantenere le connessioni semi-aperte, devi configurare il firewall per non
inviare pacchetti RST.
Opzioni:
-i TEXT Quale interfaccia usare (default: auto)
-c INTEGER Quanti pacchetti inviare (default: infinito)
-p INTEGER Porta da usare (default: 135)
-2 Falsifica indirizzo livello2/MAC (default: No)
-3 Falsifica indirizzo livello3/IP (default: No)
-v Verbose
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.traceroute [OPTIONS] IP
Traceroute TCP.
Identifica il percorso verso una destinazione ottenendo i messaggi
ttl-zero-during-transit.
Nota: Su internet, puoi avere vari percorsi validi verso un dispositivo.
Esempio:
# 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: È meglio se usi una porta che è aperta sul sistema remoto.
Opzioni:
-p INTEGER Porta da usare (default: 80)
-i TEXT Interfaccia da usare
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.upgrade [OPTIONS]
Aggiorna habu (da https://github.com/fportantier/habu)
Opzioni:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.usercheck [OPTIONS] USERNAME
Controlla se il nome utente specificato esiste su vari social network e altri
siti popolari.
$ 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"
}
Opzioni:
-c Disabilita cache
-v Output verbose
-w Apre ogni url valido in un browser web
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.version [OPTIONS]
Opzioni:
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.vhosts [OPTIONS] HOST
Usa Bing per interrogare i siti web ospitati sullo stesso indirizzo IP.
$ habu.vhosts www.telefonica.com
www.telefonica.com -> 212.170.36.79
[
'www.telefonica.es',
'universitas.telefonica.com',
'www.telefonica.com',
]
Opzioni:
-c Disabilita cache
-p INTEGER Conteggio pagine (Default: 10)
-f INTEGER Primo risultato da ottenere (Default: 1)
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.virustotal [OPTIONS] INPUT
Invia un file a VirusTotal https://www.virustotal.com/ e stampa il rapporto
in formato JSON.
Nota: Prima di inviare un file, controllerà se il file è stato analizzato in precedenza
(inviando lo sha256 del file), se esiste un rapporto, non verrà effettuata alcuna
sottomissione, e vedrai l'ultimo rapporto.
$ habu.virustotal meterpreter.exe
Verifying if hash already submitted: f4826b219aed3ffdaa23db26cfae611979bf215984fc71a1c12f6397900cb70d
Sending file for analysis
Waiting/retrieving the report...
{
"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"
},
... The other scanners ...
},
"sha1": "5fa33cab1729480dd023b08f7b91a945c16d0a9e",
"sha256": "c9a2252b491641e15753a4d0c4bb30b1f9bd26ecff2c74f20a3c7890f3a1ea23",
"total": 67,
"verbose_msg": "Scan finished, information embedded"
}
Opzioni:
-v Output verbose
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.web.report [OPTIONS] [INPUT_FILE]
Crea un rapporto che include gli header HTTP dei siti web.
Opzionalmente, usa Firefox o Chromium per fare uno screenshot dei siti web.
Il formato previsto è un url per riga.
Crea una directory chiamata 'report' con il contenuto all'interno.
$ echo https://www.portantier.com | habu.web.report
Opzioni:
-v Output verbose
-s Fai uno screenshot per ogni sito web
-b [firefox|chromium-browser] Browser da usare per lo screenshot.
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.web.screenshot [OPTIONS] URL
Usa Firefox o Chromium per fare uno screenshot del sito web.
$ habu.web.screenshot https://www.portantier.com
Opzioni:
-b [firefox|chromium-browser] Browser da usare per lo screenshot.
-o TEXT File di output. (default: screenshot.png)
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.whois.domain [OPTIONS] DOMAIN
Semplice client whois per controllare i nomi di dominio.
Esempio:
$ 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
Opzioni:
--json Stampa l'output in formato JSON
--csv Stampa l'output in formato CSV
--help Mostra questo messaggio ed esci.
.. code-block::
Usage: habu.whois.ip [OPTIONS] IP
Semplice client whois per controllare indirizzi IP (IPv4 e IPv6).
Esempio:
$ 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
Opzioni:
--json Stampa l'output in formato JSON
--csv Stampa l'output in formato CSV
--help Mostra questo messaggio ed esci.
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>_