Gssapi-Abuse: Herramienta para enumerar hosts potencialmente abiertos al abuso de GSSAPI

Gssapi-Abuse es una herramienta lanzada como parte de mi charla DEF CON 31, diseñada para enumerar hosts en redes de Active Directory susceptibles al abuso de GSSAPI. Esta herramienta se enfoca en dos características principales que exploraremos a continuación.

Características de la Herramienta

Enumeración de Hosts No Windows

La primera característica permite identificar hosts no Windows unidos a Active Directory que ofrecen autenticación GSSAPI a través de SSH.

Actualizaciones Dinámicas de DNS

La segunda característica permite realizar actualizaciones dinámicas de DNS para hosts abusables de GSSAPI que carecen de entradas DNS correctas. Esto asegura que las entradas DNS coincidan tanto con el nombre principal del servicio como con la dirección IP.

Requisitos Previos

Para utilizar gssapi-abuse, se requiere una pila krb5 funcional con un krb5.conf configurado correctamente. En sistemas Windows, se debe instalar el software MIT Kerberos y en sistemas Linux, es necesario instalar el paquete libkrb5-dev.

Una vez cumplidos los requisitos, las dependencias de Python se pueden instalar con pip.

Windows

En los hosts de Windows, se debe instalar el software MIT Kerberos además de los módulos de Python enumerados en requirements.txt , esto se puede obtener en la página de distribución de MIT Kerberos . Windows krb5.conf se puede encontrar en C:\ProgramData\MIT\Kerberos5\krb5.conf .

Linux

El paquete libkrb5-dev debe instalarse antes de instalar los requisitos de Python.

En todos los SO

Una vez que se cumplan los requisitos , puede instalar las dependencias de Python mediante la herramienta pip/pip3.

pip install -r requirements.txt

Modo de Enumeración

El modo de enumeración se conecta a Active Directory, realiza una búsqueda LDAP para identificar computadoras que no son de Windows y luego intenta conectarse a cada host a través de SSH para determinar si permite la autenticación basada en GSSAPI.

Una vez que se haya obtenido la lista de máquinas que no son Windows, gssapi-abuse intentará conectarse a cada host a través de SSH y determinará si se permite la autenticación basada en GSSAPI.

Ejemplo de Uso

python .\gssapi-abuse.py -d ad.ginge.com enum -u john.doe -p SuperSecret!
[=] Encontradas 2 máquinas no Windows registradas en AD
[!] El host ubuntu.ad.ginge.com no tiene GSSAPI habilitado sobre SSH, ignorando
[+] El host centos.ad.ginge.com tiene GSSAPI habilitado sobre SSH

Modo DNS

El modo DNS utiliza Kerberos y dnspython para realizar actualizaciones de DNS autenticadas. Es necesario contar con una configuración krb5 válida y un ticket de servicio TGT o DNS dirigido a un controlador de dominio específico.

El modo DNS utiliza Kerberos y dnspython para realizar una actualización de DNS autenticada a través del puerto 53 mediante el protocolo DNS-TSIG. Actualmente, el modo dns depende de una configuración krb5 que funcione con un ticket de servicio TGT o DNS válido dirigido a un controlador de dominio específico, por ejemplo DNS/dc1.victim.local .

Ejemplos de Uso

Agregar un registro DNS A para el host ahost.ad.ginge.com:

python .\gssapi-abuse.py -d ad.ginge.com dns -t ahost -a add --type A --data 192.168.128.50

Agregar un PTR registro inverso para el host ahost.ad.ginge.com . Observe que el data argumento termina con a . , esto es importante o el registro se convierte en un registro relativo a la zona, lo cual no queremos. También necesitamos especificar la zona de destino a actualizar, ya que PTR los registros se almacenan en zonas diferentes a los registros A .

python .\gssapi-abuse.py -d ad.ginge.com dns --zone 128.168.192.in-addr.arpa -t 50 -a add --type PTR --data ahost.ad.ginge.com.

Resultados de Búsqueda de DNS

Después de la ejecución, se pueden verificar los resultados de búsqueda directa e inversa con comandos nslookup.

nslookup ahost.ad.ginge.com
&
nslookup 192.168.128.50

Relacionado

61 Cursos Gratis de Udemy: Qt, Java, Selenium, Python (cupón finalizado)

Una nueva compilación de cursos, para no perder la costumbre y aprovechando que es Domingo. Hoy, tenemos 3 cursitos en español: Java Básico, Experiencia de Usuario y Microsoft Power BI. Además, de hasta 56 cursos en inglés: Qt, Java, Selenium, Javascript, Python, React, R, PHP, Testing with LoadRunner, Ethical Hacking, Varius of Data and Database, Network, GNS3, Linux, Bitcoin, Ethereum, SEO, AWS, Google Cloud, ARM Cortex-M, ¡SEGUIR LEYENDO!

22 Mejores Cursos Gratis de Software Técnico

Recopilatorio de cursos para aprender técnicas de reparación y mantenimiento de software y hardware o estudios de técnico informático.