Saltar al contenido
OPS // KITitspentest.sh

PE-SEA

SeamlessPass

Convierte tickets Kerberos on-premises en tokens de acceso de Microsoft 365 / Entra ID abusando de Azure AD Seamless SSO (Desktop SSO).

Sitio oficialVolver al catálogo

RESUMEN

SeamlessPass (github.com/Malcrove/SeamlessPass) es una herramienta de red team que weaponiza el Azure AD Seamless Single Sign-On (también llamado Desktop SSO) — la funcionalidad de identidad híbrida que permite a las máquinas unidas al dominio iniciar sesión en Entra ID sin solicitud de contraseña, intercambiando un ticket de servicio Kerberos de la cuenta de equipo `AZUREADSSOACC$` por un token de acceso cloud.

Dados los ingredientes que un atacante típicamente ya tiene tras comprometer el AD on-premises — un TGT robado, el hash NTLM o la clave AES de un usuario, un Golden Ticket forjado, o el propio secreto de la cuenta `AZUREADSSOACC$` — SeamlessPass solicita o forja el ticket de servicio Kerberos de esa cuenta, y luego lo intercambia directamente con Entra ID por un token de acceso de Microsoft 365 funcional, sin tocar siquiera el segmento de red del controlador de dominio si el secreto on-prem ya es conocido.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Demostrar el impacto en la nube de un compromiso del AD on-prem donde Seamless SSO está habilitado, como parte de un engagement de red team.

  • 02

    Convertir un TGT capturado o el hash NTLM/clave AES de un usuario en una sesión activa de Microsoft 365 para acceso API posterior (Graph, ROADTools, AADInternals).

  • 03

    Probar si el secreto comprometido de `AZUREADSSOACC$` por sí solo es suficiente para impersonar usuarios arbitrarios en Entra ID.

  • 04

    Validar detecciones sobre inicios de sesión anómalos de Seamless SSO durante un ejercicio purple-team.

PRIMEROS PASOS

En post-explotación, una vez comprometido el Active Directory on-premises, para demostrar cómo ese compromiso pivota hacia Microsoft 365 / Entra ID vía Seamless SSO.

  1. Clona el repositorio e instala sus dependencias de Python con `pip install -r requirements.txt`.
  2. Confirma que el tenant objetivo realmente tiene Seamless SSO habilitado e identifica el dominio del tenant y el nombre del tenant de Entra ID.
  3. Reúne una credencial soportada: un TGT robado, el hash NTLM/clave AES de un usuario más su SID, o el hash NTLM/clave AES de la cuenta `AZUREADSSOACC$`.
  4. Ejecuta SeamlessPass con las flags de autenticación correspondientes y el controlador de dominio accesible si se necesita un intercambio de ticket en vivo.
  5. Usa el token de acceso de Microsoft 365 devuelto con llamadas a la API Graph, ROADTools o AADInternals para demostrar el impacto en la nube.
seamlesspass — bash
seamlesspass -tenant corp.com -domain corp.local -dc dc.corp.local -tgt <base64_TGT>

ANTES DE USARLA

Qué revisar antes de lanzarla

Esta herramienta opera sobre material de AD on-prem ya comprometido (TGTs, hashes NTLM, claves AES) — es un pivote de post-explotación, no una técnica de acceso inicial, y debe permanecer dentro del alcance de AD y Entra ID autorizado del engagement.

Los tickets Kerberos forjados o reproducidos y los inicios de sesión de Entra ID resultantes pueden aparecer en los logs de inicio de sesión de Entra ID y en Microsoft Defender for Identity/Entra ID Protection — coordina el momento y la actividad esperada con el blue team del cliente de antemano.

El acceso al secreto de la cuenta `AZUREADSSOACC$` es altamente sensible; maneja y elimina cualquier material de credenciales extraído según las reglas de enfrentamiento del engagement.

SIGUE EXPLORANDO

Ver toda la fase →