
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>_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>_.. 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::