Je développe Habu pour enseigner (et apprendre) certains concepts sur le piratage de Python et de réseau.
Certaines techniques implémentées dans la version actuelle sont:
Le développement de ce logiciel est pris en charge par Securetia SRL (https://www.securetia.com/)
Divers scénarios d'utilisation utiles sont détaillés dans https://fportantier.github.io/hacking-with-habu/
La liste de lecture YouTube suivante dispose de vidéos qui montrent l'installation et l'utilisation:
https://www.youtube.com/watch?v=rgp9Sellyqe&list=pl4hznx8vnfxqsvnw7x-bxon0dgxndfnvd
Si vous souhaitez discuter de certaines fonctionnalités HABU, des améliorations possibles, etc., vous pouvez utiliser le groupe Habu Telegram: https://t.me/python_habu
Les problèmes et les demandes de traction doivent être envoyés à GitHub Repo: https://github.com/fportantier/habu
Moyen recommandé d'installer:
$ Python3 -M Pip Install - Opgrade Git + https: //github.com/fportantier/habu.git
Cela doit fonctionner sur tout système qui a installé Python 3.
Remarque: Sur certains systèmes (comme Microsoft Windows), vous devez ajuster la commande pour pointer sur le chemin correct de l'exécutable Python.
Maintenant, nous avons une commande de mise à niveau directement du repo Git et de nettoyer toute ancienne commande qui n'existe plus ou qui a été renommée.
$ 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 quelques informations supplémentaires sur ce que fait Habu.
Utilisation: Habu.arp.ping [Options] IP Envoyez des paquets ARP pour vérifier si un hôte est vivant dans le réseau local. Exemple: # Habu.arp.Ping 192.168.0.1 Ether / ARP est à A4: 08: F5: 19: 17: A4 dit 192.168.0.1 / padding Options: -I interface de texte à utiliser -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.arp.poison [Options] VICTIVE1 victime2 Envoyez des paquets arp «is-at» à chaque victime, empoisonnant leurs tables ARP pour Envoyez le trafic à votre système. Remarque: si vous voulez un homme qui travaille complet dans l'attaque du milieu, vous devez Activer le transfert de paquets sur votre système d'exploitation pour agir comme un routeur. Vous pouvez le faire en utilisant: # echo 1> / proc / sys / net / ipv4 / ip_forward Exemple: # Habu.arpoison 192.168.0.1 192.168.0.77 Ether / ARP est à F4: 96: 34: E5: AE: 1B dit 192.168.0.77 Ether / ARP est à F4: 96: 34: E5: AE: 1B dit 192.168.0.70 Ether / ARP est à F4: 96: 34: E5: AE: 1B dit 192.168.0.77 ... Options: -I interface de texte à utiliser -v verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.arp.sniff [Options] Écoutez les paquets ARP et affichez des informations pour chaque appareil. Colonnes: secondes du dernier paquet | IP | Mac | Fournisseur Exemple: 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 (communications mobiles) 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 interface de texte à utiliser - help afficher ce message et qui sortent.
Utilisation: Habu.asydns [Options]
Demande un nom de domaine DNS basé sur des clés RSA publiques et privées en utilisant le
Protocole ASYDNS https://github.com/portantier/asydns
Exemple:
$ habu.asydns -v
Génération de la clé RSA ...
Chargement de la clé RSA ...
{
"ip": "181.31.41.231",
"Nom": "07286E90FD6E7E6BE61D6A7919967C7CF3BBFB23A36EDBC72B6D7C53.a.asydns.org"
}
$ DIG + Short 07286E90FD6E7E6BE61D6A7919967C7CF3BBFB23A36EDBC72B6D7C53.A.asydns.org
181.31.41.231
Options:
-U URL de l'API texte
-g Force la génération d'une nouvelle paire de clés
-R révoquez la clé publique
-Vorport verbeux
- help afficher ce message et qui sortent.
Utilisation: Habu.B64 [Options] [F] Encode ou décode les données dans Base64, tout comme la commande Base64. $ echo génial | Habu.B64 Yxdlc29tzqo = $ echo yxdlc29tzqo = | Habu.b64 -d génial Options: -d Decode au lieu de coder - help afficher ce message et qui sortent.
Utilisation: Habu.cert.clone [Options] Port de nom d'hôte KeyFile Certfile Connectez-vous à un serveur SSL / TLS, obtenez le certificat et générez un certificat avec les mêmes options et valeurs de champ. Remarque: le certificat généré n'est pas valide, mais peut être utilisé pour Attaques d'ingénierie Exemple: $ habu.certclone www.google.com 443 /tmp/key.pem /tmp/cert.pem Options: - Copy-Extensions Copy Certificate Extensions (par défaut: false) - Expuré Générer un certificat expiré (par défaut: false) -v verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.cert.crtsh [Options] Domaine Télécharge les journaux de transparence du certificat pour un domaine et vérifiez avec DNS interroge si chaque sous-domaine existe. Utilise le multithreading pour améliorer les performances des requêtes DNS. Exemple: $ Habu.crtsh Securetia.com alt.securetia.com autre.securetia.com www.securetia.com Options: -C Désactiver le cache -N Désactiver la validation du sous-domaine DNS -Vorport verbeux --json imprime la sortie au format JSON - help afficher ce message et qui sortent.
Utilisation: Habu.cert.Names [Options] [réseau] Se connecte à chaque hôte / port et affiche un résumé des noms de certificat. Les hôtes vers lesquels se connecter sont tirés de deux options possibles: 1. -I option (par défaut: stdin). Un fichier où chaque ligne est un hôte ou un réseau 2. Un argument qui peut être un hôte ou un réseau Si vous utilisez les deux méthodes, les hôtes et les réseaux sont fusionnés dans une seule liste. Exemple: $ Habu.cert.Names 2.18.60.240/29 2.18.60.241 443 IS-Microsoft.com Microsoft.com Privacy.microsoft.com 2.18.60.242 443 aod-sl.itunes.apple.com aod.itunes.apple.com aodp-sl.itunes.apple.com 2.18.60.243 443 * .mlb.com mlb.com 2.18.60.244 443 [SSL: TLSV1_ALERT_INTERNAL_ERROR] Erreur interne d'alerte TLSV1 (_SSL.C: 1056) 2.18.60.245 443 CERT2-CN-PUBLIC-UBISERVICES.UBI.com Cert2-cn-public-ws-ubivices.ubi.com 2.18.60.246 443 * .blog.sina.com.cn * .dmp.sina.cn aod.itunes.apple.com AODP-SSL.itunes.apple.com aod-sl.itunes.apple.com * .blog.sina.com.cn Cert2-cn-public-ubiservices.ubi.com cert2-cn-public-ws-ubiservices.ubi.com * .dmp.sina.cn is-microsoft.com Microsoft.com * .mlb.com mlb.com privacy.microsoft.com Options: -P PORTS DE Texte pour se connecter à (liste séparée de virgules) -I Fichier d'entrée de nom de fichier (par défaut: stdin) -T Temps flottant pour attendre chaque connexion -Vorport verbeux --json imprime la sortie au format JSON - help afficher ce message et qui sortent.
Utilisation: Habu.config.del [Options] Key Supprimez une clé de la configuration. Remarque: Par défaut, la clé est convertie en majuscules. Exemple: $ habu.config.del dns_server Options: - help afficher ce message et qui sortent.
Utilisation: Habu.config.set [Options] Valeur clé Définissez la valeur sur la touche de configuration. Remarque: Par défaut, la clé est convertie en majuscules. Exemple: $ habu.config.set dns_server 8.8.8.8 Options: - help afficher ce message et qui sortent.
Utilisation: Habu.config.show [Options]
Afficher la configuration actuelle.
Remarque: Par défaut, les options avec «clé» à leur nom sont ombrées.
Exemple:
$ habu.config.show
{
"Dns_server": "8.8.8.8",
"Fernet_key": "*************"
}
Options:
-K, - les clés dehow montrent également les valeurs clés
- Texte d'option ... Écrivez dans la configuration (valeur clé)
- help afficher ce message et qui sortent.
Utilisation: Habu.crack.luhn [Options] Numéro Ayant des valeurs connues pour un nombre validé de Luhn, obtenez le possible Nombres inconnus. Les nombres qui utilisent l'algorithme Luhn pour la validation sont les cartes de crédit, imei, Identifiant du fournisseur national aux États-Unis, social canadien Numéros d'assurance, numéros d'identification Israël et numéros de sécurité sociale grecs (Αμκα). Les caractères '-' sont ignorés. Définissez les nombres manquants avec le caractère «x». Référence: https://en.wikipedia.org/wiki/luhn_algorithme Exemple: $ habu.crack.luhn 4509-xx08-3160-6445 4509000831606445 4509180831606445 4509260831606445 4509340831606445 4509420831606445 4509590831606445 4509670831606445 4509750831606445 4509830831606445 4509910831606445 Options: - help afficher ce message et qui sortent.
Utilisation: Habu.crack.snmp [Options] IP Lance les requêtes SNMP-get contre une IP et vous indique quand trouve un valide String communautaire (est un simple cracker SNMP). Le dictionnaire utilisé est le distribué avec l'outil OneSixTyOne https://github.com/trailofbits/onixtyone Exemple: # habu.crack.snmp 179.125.234.210 Communauté trouvée: privé Communauté trouvée: public Remarque: vous pouvez également recevoir des messages comme <universel > <classe 'scapy.asn1.asn1.asn1 _class _metaclass' >, je ne sais pas comment supprimer eux pour l'instant. Options: -P Port entier à utiliser -C Communauté de texte (par défaut: liste la plus utilisée) -s s'arrête après le premier match -v verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.Crypto.Fernet [Options] Fernet Cipher. Utilise AES-128-CBC avec HMAC Remarque: vous devez utiliser une clé pour chiffrer avec Fernet. Utilisez le paramerter -k ou définissez la valeur de configuration Fernet_Key. Les touches peuvent être générées avec la commande habu.crypto.fernet.genkey Référence: https://github.com/fernet/spec/blob/master/spec.md Exemple: $ "Je veux protéger cette chaîne" | Habu.crypto.fernet GAAAAABBXNCGOCULVULTYTBECWNEK9IQ5JBKQ9JAN3WIIBUZPQPUGV5OWVNC6XFIA ... $ echo gaaaaabbxncgoculluvnrelytbecwnek9iq5jbkq9jan3wiibuzpqpugv5owvnc6xfia ... | habu.crypto.fernet -d Je veux protéger cette chaîne Options: -K clé texte -d décrypter au lieu de crypter - TTL INTEGER Temps pour vivre pour la vérification de l'horodatage -I Fichier d'entrée de nom de fichier (par défaut: stdin) -O Fichier de sortie de nom de fichier (par défaut: stdout) - help afficher ce message et qui sortent.
Utilisation: Habu.Crypto.fernet.Genkey [Options] Générez une nouvelle touche Fernet, écrivez-la éventuellement sur ~ / .habu.json Exemple: $ habu.crypto.fernet.genkey xgvwcivjwe9uq7nbvwo796ii4dsgd623qot9gwqnuhg = Options: -W Écrivez cette clé à ~ / .habu.json - help afficher ce message et qui sortent.
Utilisation: Habu.Crypto.gpref [Options] Mot de passe Décript le mot de passe des utilisateurs locaux ajoutés via la politique de groupe Windows 2008 Préférences. Cette valeur est l'attribut 'cpassword' intégré dans le fichier groupes.xml, stocké dans le partage Sysvol du contrôleur de domaine. Exemple: # habu.crypto.gppref azvjmxh / j9kru5n0czx1ubplSujzfe8j7doltpd8tlk TestPassword Options: - help afficher ce message et qui sortent.
Utilisation: Habu.Crypto.Hasher [Options] [F]
Calculez divers hachages pour les données d'entrée, qui peuvent être un fichier ou un flux.
Exemple:
$ habu.crypto.hasher readme.rst
MD5 992A833CD162047DAAA6A236B8AC15AE README.RST
RiMeMD160 0566F9141E65E57CAE93E0E3B70D1D8C2CCB0623 Readme.RST
SHA1 D7DBFD2C5E2828EB22F776550C826E4166526253 README.RST
SHA256 6BB22D927E1B6307CED616821A1877B6CC35E ... Readme.rst
SHA512 8743F3EB12A11CF3EDCC16E400FB14D599B4A ... README.RST
Whirlpool 96BCC083242E796992C0F3462F330811F9E8C ... Readme.rst
Vous pouvez également spécifier quel algorithme utiliser. Dans un tel cas, la sortie est
Seule la valeur du hachage calculé:
$ habu.hasher -a md5 readme.rst
992A833CD162047DAAA6A236B8AC15AE README.RST
Options:
-A [MD5 | SHA1 | SHA256 | SHA512 | RIMEMD160 | WHIRLPOOL]
Seulement cet algorithme (par défaut: tout)
- help afficher ce message et qui sortent.
Utilisation: Habu.Crypto.xor [Options] Xor Cipher. Remarque: XOR n'est pas un «chiffre sécurisé». Si vous avez besoin d'une crypto forte, vous devez utiliser Algorithmes comme AES. Vous pouvez utiliser Habu.fernet pour cela. Exemple: $ 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 Clé de chiffrement texte -I Fichier d'entrée de nom de fichier (par défaut: stdin) -O Fichier de sortie de nom de fichier (par défaut: stdout) - help afficher ce message et qui sortent.
Utilisation: Habu.Data.enrich [Options]
Enrichir les données ajoutant des informations intéressantes.
Exemple:
$ cat /var/log/auth.log | Habu.data.extract.ipv4 | Habu.Data.enrich
[
{
"Asset": "8.8.8.8",
"Famille": "iPaddress",
"asn": "15169",
"net": "8.8.8.0/24",
"CC": "nous",
"Rir": "Arin",
"Asname": "Google - Google LLC, nous"
},
{
"Asset": "8.8.4.4",
"Famille": "iPaddress",
"asn": "15169",
"net": "8.8.4.0/24",
"CC": "nous",
"Rir": "Arin",
"Asname": "Google - Google LLC, nous"
}
]]
Options:
-I Fichier d'entrée de nom de fichier (par défaut: stdin)
-Vorport verbeux
- help afficher ce message et qui sortent.
Utilisation: Habu.Data.Extract.Domain [Options] [Infile] Extraire des domaines valides d'un fichier ou de stdin. Facultativement, vérifiez chaque domaine pour la présence de registres NS. Exemple: $ cat /var/log/some.log | Habu.Data.Extract.Domain -C google.com ibm.com redhat.com Options: -C Vérifiez si le domaine a des serveurs NS définis -Vorport verbeux -J Sortie JSON - help afficher ce message et qui sortent.
Utilisation: Habu.Data.Extract.Email [Options] [Infile] Extraire les adresses e-mail d'un fichier ou de stdin. Exemple: $ cat /var/log/auth.log | Habu.data.extract.email [email protected] [email protected] [email protected] Options: -Vorport verbeux -J Sortie JSON - help afficher ce message et qui sortent.
Utilisation: Habu.data.extract.fqdn [Options] [Infile] Extraire FQDNS (noms de domaine entièrement qualifiés) à partir d'un fichier ou de STDIN. Exemple: $ cat /var/log/some.log | Habu.data.extract.fqdn www.google.com ibm.com Fileserver.redhat.com Options: -C Vérifiez si le nom d'hôte résout -Vorport verbeux -J Sortie JSON - help afficher ce message et qui sortent.
Utilisation: Habu.Data.Extract.Ipv4 [Options] [Infile] Extraire les adresses IPv4 d'un fichier ou de stdin. Exemple: $ cat /var/log/auth.log | Habu.data.extract.ipv4 172.217.162.4 23.52.213.96 190.210.43.70 Options: -J, --json JSON Sortie -U, - Uninique Supprimer les doublons -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.Data.Filter [Options] Fiel
ed | Undefined | true | false] [valeur]
Filtrez des données basées sur les opérateurs.
Référence de l'opérateur:
gt: plus que
lt: moins que
Eq: égal à
NE: pas égal à
ge: great ou égal que
LE: moindre ou égal que
Dans: à l'intérieur de la liste des valeurs (ou à l'intérieur du réseau)
Contient: contient la valeur (ou l'adresse réseau)
défini: la valeur est définie
non défini: la valeur n'est pas définie
vrai: la valeur est vraie
Faux: la valeur est fausse
Exemple:
$ cat /var/log/auth.log | Habu.data.extract.ipv4 | Habu.Data.enrich | Habu.data.filter cc eq us
[
{
"article": "8.8.8.8",
"famille": "ipv4_address",
"asn": "15169",
"net": "8.8.8.0/24",
"CC": "nous",
"Rir": "Arin",
"Asname": "Google - Google LLC, nous"
}
]]
Docs: https://fportantier.github.io/hacking-with-habu/user/data-manipulation.html#data-enrichment
Options:
-I Fichier d'entrée de nom de fichier (par défaut: stdin)
-Vorport verbeux
- pas nier la comparaison
- help afficher ce message et qui sortent.
Utilisation: Habu.Data.Select [Options] Champ Sélectionnez un champ dans 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 Fichier d'entrée de nom de fichier (par défaut: stdin) -Vorport verbeux - Sortie JSON JSON - help afficher ce message et qui sortent.
Utilisation: Habu.dhcp.Discover [Options] Envoyez une demande DHCP et montrez quels appareils ont répondu. Remarque: en utilisant '-v', vous pouvez voir toutes les options (comme les serveurs DNS) inclus sur les réponses. # habu.dhcp_discover Éther / ip / udp 192.168.0.1:bootps> 192.168.0.5:bootpc / bootp / dhcp Options: -I interface de texte à utiliser -T Temps entier (secondes) pour attendre les réponses -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.dhcp.starvation [Options] Envoyez plusieurs demandes DHCP à partir d'adresses MAC forgées pour remplir le DHCP Baux de serveur. Lorsque toutes les adresses réseau disponibles sont attribuées, le serveur DHCP N'envoyez pas de réponses. Ainsi, certaines attaques, comme l'usurpation du DHCP, peuvent être faites. # habu.dhcp_starvation Éther / ip / udp 192.168.0.1:bootps> 192.168.0.6:bootpc / bootp / dhcp Éther / ip / udp 192.168.0.1:bootps> 192.168.0.7:bootpc / bootp / dhcp Éther / ip / udp 192.168.0.1:bootps> 192.168.0.8:bootpc / bootp / dhcp Options: -I interface de texte à utiliser -T Temps entier (secondes) pour attendre les réponses -s temps entier (secondes) entre les demandes -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.Dns.lookup.Forward [Options] Hostname
Effectuez une recherche avant 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:
-Vorport verbeux
- help afficher ce message et qui sortent.
Utilisation: Habu.Dns.Lookup.Reverse [Options] IP_ADdress
Effectuez une recherche inverse d'une adresse IP donnée.
Exemple:
$ $ HABU.DNS.lookup.reverse 8.8.8.8
{
"Nom d'hôte": "Google-Public-dns-a.google.com"
}
Options:
-Vorport verbeux
- help afficher ce message et qui sortent.
Utilisation: Habu.eicar [Options] Imprimez la chaîne de test eicar qui peut être utilisée pour tester les moteurs anti-logiciels. 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-anvivirus-test-file! $ H + h * Options: - help afficher ce message et qui sortent.
Utilisation: Habu.ForkBomb [Options] [bash | Batch | C | Haskell | Perl | Php | Python | Ruby]
Un raccourci pour se rappeler comment utiliser les bombes à fourche dans différentes langues.
Actuellement pris en charge: Bash, Batch, C, Haskell, Perl, PHP, Python, Ruby.
Exemple:
$ Habu.Forkbomb C
#include <unistd.h>
int main ()
{
tandis que (1)
{
fourchette();
}
retour 0;
}
Options:
- help afficher ce message et qui sortent.
Utilisation: Habu.fqdn.finder [Options] [Domaines] ...
Utilise diverses techniques pour obtenir des FQDN valides pour les domaines spécifiés.
1. Essayez tous les FQDN avec des transferts de zone DNS
2. Vérifiez les journaux de transparence des certificats
3. Connectez-vous aux ports spécifiés, obtenez des certificats SSL et obtenez des FQDN
4. Connectez-vous aux sites Web et obtenez des FQDN en fonction des liens du site Web
5. DNS Force brute pour les noms communs
Les résultats sont nettoyés pour supprimer les FQDN qui ne se résout pas par DNS
Exemple:
$ habu.fqdn.finder educacionit.com
barometalarial.educacionit.com
blog.educacionit.com
ci.eduducacionit.com
educacionit.com
intranet.educacionit.com
lecdev.educacionit.com
lecweb.educacionit.com
mail.educacionit.com
plantillas.eduducacionit.com
www.educacionit.com
Options:
-T Temps flottant pour attendre chaque connexion
-Vorport verbeux
- Debug Debug Sortie
- Connect / --No-Connect Get of connu FQDNS Open Ports SSL Certificats
- Brute / --no-Brute Run DNS Force Brute contre les domaines
- Links / --No-links Extraire FQDN à partir des liens du site Web
--xfr / --no-xfr essayez de faire un transfert de zone DNS contre les domaines
--ctlog / --no-cotlog essayez d'obtenir des FQDN à partir de la transparence du certificat
Bûches
--json imprime la sortie au format JSON
- help afficher ce message et qui sortent.
Utilisation: Habu.gateway.find [Options] Réseau Essayez d'atteindre une IP externe à l'aide d'un hôte a un routeur. Utile pour trouver des routeurs dans votre réseau. Tout d'abord, utilise Arping pour détecter les hôtes vivants et obtenir des adresses MAC. Plus tard, créez un paquet réseau et placez chaque adresse MAC en tant que destination. Enfin, imprimez les appareils qui ont transmis correctement 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 interface de texte à utiliser - hôte de texte à atteindre (par défaut: 8.8.8.8) --TCP Utilisez TCP au lieu de ICMP - Port de destination de plage entier-DPORT pour TCP (par défaut: 80) - Timeout entier délai d'expiration en secondes (par défaut: 5) -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.host [Options]
Collectez des informations sur l'hôte où Habu fonctionne.
Exemple:
$ Habu.host
{
"noyau": [
"Linux",
"Demo123",
"5.0.6-200.fc29.x86_64",
"# 1 SMP mer 3 avril 15:09:51 UTC 2019",
"x86_64",
"x86_64"
],
"distribution": [
"Feutre",
"29",
"Vingt-neuf"
],
"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:
-VORTISSE VERBOSE.
- help afficher ce message et qui sortent.
Utilisation: Habu.http.Headers [Options] Serveur
Récupérez les en-têtes HTTP d'un serveur Web.
Exemple:
$ habu.http.heders http://duckduckgo.com
{
"Serveur": "nginx",
"Date": "Sun, 14 avril 2019 00:00:55 GMT",
"Contenu-type": "texte / html",
"Contenu-longueur": "178",
"Connexion": "Keep-Alive",
"Emplacement": "https://duckduckgo.com/",
"X-Frame-Options": "Sameorigin",
"Content-Security-Policy": "Default-Src HTTPS: Blob: Data: 'Usage-In-inline' 'Usfe-Eval'",
"X-XSS-Protection": "1; mode = bloc",
"X-Content-Type-Options": "Nosniff",
"REFORRER-POLICY": "Origin",
"Expect-CT": "max-age = 0",
"Expire": "lun, 13 avril 2020 00:00:55 GMT",
"Cache-Control": "Max-Age = 31536000"
}
Options:
-Vorport verbeux
- help afficher ce message et qui sortent.
Utilisation: Habu.http.options [Options] Serveur
Récupérez les méthodes HTTP disponibles d'un serveur Web.
Exemple:
$ habu.http.options -v http://google.com
{
"Autorisé": "Get, tête"
}
Options:
-Vorport verbeux
- help afficher ce message et qui sortent.
Utilisation: Habu.http.tech [Options] URL Utilise la base de données Wappalyzer Apps.json pour identifier les technologies utilisées sur un Web application. Référence: https://github.com/aliasio/wappalyzer Remarque: cet outil n'envoie qu'une seule demande. Donc, c'est furtif et pas 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 -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.icmp.ping [Options] IP L'outil de ping classique qui envoie des demandes d'écho ICMP. # Habu.icmp.ping 8.8.8.8 IP / ICMP 8.8.8.8> 192.168.0.5 Echo-Reply 0 / rembourrage IP / ICMP 8.8.8.8> 192.168.0.5 Echo-Reply 0 / rembourrage IP / ICMP 8.8.8.8> 192.168.0.5 Echo-Reply 0 / rembourrage IP / ICMP 8.8.8.8> 192.168.0.5 Echo-Reply 0 / rembourrage Options: -I Texte de l'interface à utiliser (par défaut: auto) -c entier combien de paquets envoient (par défaut: infinit) -T timeout entier en secondes (par défaut: 2) -w entier combien de secondes entre les paquets (par défaut: 1) -v verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.ip.asn [Options] IP
Utilisez le service d'équipe Cymru IP2ASN pour obtenir des informations sur un IPv4 / IPv6 public.
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": "nous",
"Rir": "Arin",
"Asname": "Google - Google LLC, nous",
"pays": "États-Unis"
}
Options:
- help afficher ce message et qui sortent.
Utilisation: Habu.ip.Geolocation [Options] IP_ADdress
Obtenez la géolocalisation d'un adddress IP à partir de 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:
-VORTISSE VERBOSE.
- help afficher ce message et qui sortent.
Utilisation: Habu.ip.internal [Options]
Obtenez 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",
"Masque de réseau": "FFFF: FFFF: FFFF: FFFF: FFFF: FFFF: FFFF: FFFF / 128"
}
]]
},
...
Options:
-VORTISSE VERBOSE.
- help afficher ce message et qui sortent.
Utilisation: Habu.ip.public [Options] Obtenez l'adresse IP publique de la connexion à partir de https://api.ipify.org. Exemple: $ habu.ip.public 80.219.53.185 Options: -4, --ipv4 Imprimez votre adresse IPv4 publique (par défaut) -6, --ipv6 Imprimez votre adresse publique IPv6 -j, --json imprime la sortie au format JSON - help afficher ce message et qui sortent.
Utilisation: Habu.Karma [Options] Hôte
Utilisez le service Karma https://karma.securetia.com pour vérifier une adresse IP contre
Diverses listes d'intelligence / réputation de menace.
$ 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 requérir.
Options:
- help afficher ce message et qui sortent.
Utilisation: Habu.karma.bulk [Options] [Infile] Montrez quelles adresses IP se trouvent à l'intérieur de listes noires en utilisant le karma en ligne service. 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: - Sortie JSON JSON - Bad Show Only Entrées dans les listes noires -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.land [Options] IP Cette commande met en œuvre l'attaque terrestre, qui envoie des paquets à forger La source d'adresse IP est la même que la destination IP. Utilise également le Même source et port de destination. L'attaque est très ancienne et peut être utilisée pour faire un déni de service sur l'ancien Systèmes, 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 envoyés avec l'option '-c'. La valeur par défaut n'est jamais arrêtée. Vous pouvez également spécifier le Port de destination, avec l'option '-p'. Options: -c entier combien de paquets envoient (par défaut: infinit) -P Port entier à utiliser (par défaut: 135) -I interface de texte à utiliser -v verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.nc [Options] Port hôte Une sorte de remplacement NetCAT / NCAT. L'exécution émule le sentiment de ces outils populaires. Exemple: $ habu.nc --crlf www.portantier.com 80 Connecté à 45.77.113.133 80 Tête / http / 1.0 Http / 1.0 301 déplacé de façon permanente Date: Thu, 26 juillet 2018 21:10:51 GMT Serveur: OpenBSD HTTPD Connexion: fermer Type de contenu: texte / html Longueur du contenu: 443 Emplacement: https://www.portantier.com/ Options: - Famille [4 | 6 | 46] Famille d'adresses IP - SSL Activer SSL --crlf Utilisez CRLF pour la séquence EOL - ProtoCol [TCP | UDP] Protocole de couche 4 à utiliser --Source-IP Source IP à utiliser - Port source de plage entière du port de source à utiliser - help afficher ce message et qui sortent.
Utilisation: Habu.net.Contest [Options] Essayez de vous connecter à divers services et de vérifier si peut les atteindre en utilisant votre connexion Internet. Exemple: $ habu.net.contest DNS: vrai FTP: vrai SSH: Vrai Http: vrai Https: vrai Options: - help afficher ce message et qui sortent.
Utilisation: 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 Aucun Aucun 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 Aucun 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 qui sortent.
Utilisation: Habu.nmap.Exclué [Options] Imprime un port aléatoire qui n'est pas présent sur le fichier de services NMAP, donc n'est pas numérisé automatiquement par NMAP. Utile pour des services comme SSH ou RDP, qui sont en permanence leurs ports par défaut. Exemple: # habu.nmap.exclué 58567 Options: -L Port le plus bas de la gamme entière à considérer -H Port le plus élevé de gamme entière à considérer - help afficher ce message et qui sortent.
Utilisation: Habu.nmap.open [Options] Scanfile Lisez un rapport NMAP et imprimez les ports ouverts. Imprimez les ports qui ont été ouverts en lecture du NMAP généré sortir. Vous pouvez l'utiliser pour rééviliser rapidement la liste de ports pour l'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 (default = TCP) - help afficher ce message et qui sortent.
Utilisation: Habu.nmap.ports [Options] Scanfile Lisez un rapport NMAP et imprimez les ports testés. Imprimez les ports qui ont été testés en lisant la sortie NMAP générée. Vous pouvez l'utiliser pour rééviliser rapidement la liste de ports pour l'entrée d'autres outils. Prend en charge et détecte les 3 formats de sortie (NMAP, GNMAP et XML) Exemple: # habu.nmap.ports portantier.nmap 21,22,23,80,443 Options: -p [TCP | UDP | SCTP] Le protocole (default = TCP) - help afficher ce message et qui sortent.
Utilisation: Habu.protoscan [Options] IP Envoyez des paquets IP avec un contenu de champ de protocole différent pour deviner quel calque 4 protocoles sont disponibles. La sortie montre quels protocoles ne génèrent pas un `` protocole inaccessible '' Réponse ICMP. 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 interface de texte à utiliser -T timeout entier pour chaque sonde (par défaut: 2 secondes) - Toute sonde tous les protocoles (par défaut: défini dans / etc / protocoles) -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.server.ftp [Options]
Faux serveur FTP de base, avec le seul but de voler des informations d'identification de l'utilisateur.
Prend en charge SSL / TLS.
Exemple:
# sudo habu.server.ftp --sl --sl-ret /tmp/cert.pem --ssl-key /tmp/key.pem
Écoute sur le port 21
Connexion acceptée de ('192.168.0.27', 56832)
Contaliens collectés à partir de 192.168.0.27! Fabian 123456
Options:
-Une adresse texte à lier (par défaut: tout)
-p entier quel port utiliser (par défaut: 21)
--sl activer ssl / tls (par défaut: false)
- Fichier SSL / TLS CERT SSL-CERT
- SSL-Key Text SSL / TLS Fichier clé
-v verbeux
- help afficher ce message et qui sortent.
Utilisation: Habu.shodan [Options] IP Client de l'API Shodan simple. Imprime le résultat JSON d'une requête Shodan. Exemple: $ habu.shodan 216.58.222.36 ASN AS15169 ISP Google Noms d'hôte eze04s06-in-f4.1e100.net, gru09s17-in-f36.1e100.net country_code nous région_code ca City Mountain View org google Open_Ports TCP / 443, TCP / 80 Options: --cache / --no-cache -Vorport verbeux - format [txt | csv | json | nmap] format de sortie - help afficher ce message et qui sortent.
Utilisation: Habu.shodan.Query [Options] Requête
Client de l'API Shodan simple.
Imprime 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": "nous",
"org": "google",
"données": [
{
"ISP": "Google",
"Transport": "UDP",
"données": "Recursion: activé",
"asn": "AS15169",
"Port": 53,
"HostNames": [
"Google-public-dns-a.google.com"
]]
}
],
"Ports": [
53
]]
}
Options:
-C Désactiver le cache
-Vorport verbeux
-O Fichier de sortie de nom de fichier (par défaut: stdout)
- help afficher ce message et qui sortent.
Utilisation: Habu.tcp.flags [Options] IP Envoyez des paquets TCP avec différents drapeaux et dites ce que les réponses reçoivent. Il peut être utilisé pour analyser comment les différentes implémentations de pile TCP / IP et les configurations répondent au paquet avec diverses combinaisons de drapeaux. Exemple: # habu.tcp_flags www.portantier.com S -> SA FS -> SA Fa -> r SA -> R Par défaut, la commande envoie toutes les combinaisons d'indicateurs possibles. Tu peux Spécifiez quels drapeaux doivent être présents (en réduisant la quantité de combinaisons possibles), avec l'option «-f». Vous pouvez également spécifier les indicateurs que vous souhaitez être présents sur la réponse paquets à afficher, avec l'option '-r'. Avec la commande suivante, vous voyez toutes les combinaisons possibles qui ont le Fin (F) Flag définit et génère une réponse qui contient le premier drapeau (R). Exemple: # habu.tcp_flags -f f -r r www.portantier.com FPA -> R Fspa -> r Fau -> r Options: -P Port entier à utiliser (par défaut: 80) -f indicateurs de texte qui doivent être envoyés jamais (par défaut: fuzz avec tous les drapeaux) -r filtre de texte par indicateurs de réponse (par défaut: afficher toutes les réponses) -v verbeux - First arrêt lors de la première réponse qui correspond - help afficher ce message et qui sortent.
Utilisation: Habu.tcp.isn [Options] IP Créez des connexions TCP et imprimez les numéros de séquence initiale TCP pour chacun un. $ sudo habu.tcp.isn -c 5 www.portantier.com 1962287220 1800895007 589617930 3393793979 469428558 Remarque: vous pouvez obtenir une représentation graphique (a besoin du matplotlib Package) Utilisation de l'option «-g» pour mieux comprendre l'aléatoire. Options: -P Port entier à utiliser (par défaut: 80) -c entier combien de paquets à envoyer / recevoir (par défaut: 5) -I interface de texte à utiliser -g graphique (nécessite un matplotlib) -Vorport verbeux - help afficher ce message et qui sortent.
Utilisation: Habu.tcp.scan [Options] IP Scanner de port TCP. Imprimez les ports qui ont généré une réponse avec le drapeau syn ou (si Show Utiliser -A) Tous les ports qui ont généré une réponse. C'est vraiment basique par rapport à 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 PORTS DE Texte à utiliser (par défaut: 80) Exemple: 20-23,80,135 -I interface de texte à utiliser -f indicateurs de texte à utiliser (par défaut: s) -s TEXT Time between probes (default: send all together) -t INTEGER Timeout for each probe (default: 2 seconds) -a Show all responses (default: Only containing SYN flag) -v Verbose output --help Show this message and exit.
Usage: habu.tcp.synflood [OPTIONS] IP Launch a lot of TCP connections and keeps them opened. Some very old systems can suffer a Denial of Service with this. Reference: https://en.wikipedia.org/wiki/SYN_flood Exemple: # sudo habu.tcp.synflood 172.16.0.10 ................. Each dot is a packet sent. You can use the options '-2' and '-3' to forge the layer 2/3 addresses. If you use them, each connection will be sent from a random layer2 (MAC) and/or layer3 (IP) address. You can choose the number of connections to create with the option '-c'. The default is never stop creating connections. Note: If you send the packets from your real IP address and you want to keep the connections half-open, you need to setup for firewall to don't send the RST packets. Options: -i TEXT Wich interface to use (default: auto) -c INTEGER How many packets send (default: infinit) -p INTEGER Port to use (default: 135) -2 Forge layer2/MAC address (default: No) -3 Forge layer3/IP address (default: No) -v Verbose --help Show this message and exit.
Usage: habu.traceroute [OPTIONS] IP TCP traceroute. Identify the path to a destination getting the ttl-zero-during-transit messages. Note: On the internet, you can have various valid paths to a device. 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 Note: It's better if you use a port that is open on the remote system. Options: -p INTEGER Port to use (default: 80) -i TEXT Interface to use --help Show this message and exit.
Usage: habu.upgrade [OPTIONS] Upgrade habu (from https://github.com/fportantier/habu) Options: --help Show this message and exit.
Usage: habu.usercheck [OPTIONS] USERNAME
Check if the given username exists on various social networks and other
popular sites.
$ 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 Disable cache
-v Verbose output
-w Open each valid url in a webbrowser
--help Show this message and exit.
Usage: habu.version [OPTIONS] Options: --help Show this message and exit.
Usage: habu.vhosts [OPTIONS] HOST
Use Bing to query the websites hosted on the same IP address.
$ habu.vhosts www.telefonica.com
www.telefonica.com -> 212.170.36.79
[
'www.telefonica.es',
'universitas.telefonica.com',
'www.telefonica.com',
]]
Options:
-c Disable cache
-p INTEGER Pages count (Default: 10)
-f INTEGER First result to get (Default: 1)
--help Show this message and exit.
Usage: habu.virustotal [OPTIONS] INPUT
Send a file to VirusTotal https://www.virustotal.com/ and print the report
in JSON format.
Note: Before send a file, will check if the file has been analyzed before
(sending the sha256 of the file), if a report exists, no submission will
be made, and you will see the last report.
$ 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"
}
Options:
-v Verbose output
--help Show this message and exit.
Usage: habu.web.report [OPTIONS] [INPUT_FILE] Makes a report that includes HTTP headers of websites. Optionally, uses Firefox or Chromium to take a screenshot of the websites. The expected format is one url per line. Creates a directory called 'report' with the content inside. $ echo https://www.portantier.com | habu.web.report Options: -v Verbose output -s Take a screenshot for each website -b [firefox|chromium-browser] Browser to use for screenshot. --help Show this message and exit.
Usage: habu.web.screenshot [OPTIONS] URL Uses Firefox or Chromium to take a screenshot of the website. $ habu.web.screenshot https://www.portantier.com Options: -b [firefox|chromium-browser] Browser to use for screenshot. -o TEXT Output file. (default: screenshot.png) --help Show this message and exit.
Usage: habu.whois.domain [OPTIONS] DOMAIN Simple whois client to check domain names. 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 Print the output in JSON format --csv Print the output in CSV format --help Show this message and exit.
Usage: habu.whois.ip [OPTIONS] IP Simple whois client to check IP addresses (IPv4 and 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 Print the output in JSON format --csv Print the output in CSV format --help Show this message and exit.