Kestrel: reconocimiento pasivo de Active Directory con un footprint mínimo

La mayoría de las herramientas de reconocimiento para Active Directory comparten un problema: aunque son extremadamente eficaces, su ejecución genera una cantidad considerable de telemetría que los EDR modernos aprovechan para identificar actividad de reconocimiento.

Proyectos como SharpHound o PowerView son ya un estándar dentro de los ejercicios de Red Team, pero precisamente por su amplia adopción también constituyen una referencia para las reglas de detección. La carga del CLR, la ejecución de PowerShell, el uso de ensamblados .NET y determinados patrones de consultas LDAP forman parte de la superficie de exposición que los defensores monitorizan habitualmente.

En este contexto resulta especialmente interesante Kestrel, un proyecto open source desarrollado íntegramente en C nativo cuyo objetivo no es descubrir nuevas técnicas de enumeración, sino ejecutar las ya conocidas utilizando únicamente componentes nativos de Windows.

Su principal característica es que consume Active Directory Services Interfaces (ADSI) mediante COM, eliminando completamente la dependencia de .NET, PowerShell y del Common Language Runtime (CLR).

Desde un punto de vista técnico, esto implica que el proceso interactúa directamente con las interfaces COM expuestas por ADSI para realizar consultas LDAP, aproximándose mucho más al comportamiento esperado de aplicaciones empresariales que necesitan consultar Active Directory que al de herramientas ofensivas tradicionales.

Esta diferencia puede parecer sutil, pero tiene implicaciones importantes desde la perspectiva de la telemetría:

  • La ausencia del CLR elimina una fuente habitual de instrumentación utilizada por muchos EDR.
  • No existe ejecución de PowerShell ni AMSI asociado al proceso.
  • Se evita la carga de ensamblados .NET frecuentemente relacionados con herramientas de reconocimiento.
  • El proceso presenta una cadena de llamadas mucho más cercana a la de software Windows nativo que utiliza ADSI como mecanismo legítimo de acceso al directorio.

Obviamente, esto no convierte a Kestrel en una herramienta "indetectable". Las consultas LDAP siguen siendo observables, la actividad de red continúa existiendo y un entorno correctamente instrumentado puede detectar comportamientos anómalos mediante correlación de eventos, frecuencia de consultas, análisis del cliente LDAP o modelos de comportamiento.

Sin embargo, el proyecto pone el foco donde realmente está evolucionando el panorama ofensivo: reducir el footprint operativo, eliminando dependencias que históricamente han servido como indicadores de alta fidelidad para los mecanismos de detección.

Más que una nueva herramienta de enumeración, Kestrel representa una tendencia cada vez más evidente en el desarrollo de capacidades ofensivas: volver a las APIs nativas del sistema operativo para minimizar la telemetría asociada a frameworks administrados y hacer que la actividad se parezca, lo máximo posible, a la de una aplicación Windows legítima.

Para quienes trabajamos en Red Team, Purple Team o Detection Engineering, proyectos como este son especialmente valiosos porque obligan a replantear una cuestión fundamental: ¿estamos detectando herramientas concretas o realmente estamos detectando comportamientos?

Proyectohttps://github.com/ssteelfactor-oss/Kestrel

Comentarios