Saltar al contenido
OPS // KITitspentest.sh

X-O36

o365spray

Herramienta de enumeración de usuarios y password spraying dirigida a los endpoints de autenticación de Microsoft O365/Entra ID, con throttling de lockout incorporado.

Sitio oficialVolver al catálogo

RESUMEN

o365spray (0xZDH/o365spray) es una herramienta en Python creada específicamente contra las superficies de autenticación de Microsoft O365/Entra ID. Su módulo `--validate` confirma que un dominio está respaldado por O365, `--enum` comprueba si nombres de usuario individuales existen usando técnicas como Autologon, OAuth2 y respuestas del endpoint RST, y `--spray` ejecuta un password spray contra una lista de nombres de usuario dada.

Lo que la distingue de herramientas de spray genéricas es que su propio README la documenta explícitamente como consciente del lockout de cuentas: los módulos de enumeración que hacen un único intento de autenticación por usuario reinician automáticamente el temporizador de lockout del tenant antes de que se ejecute un spray posterior en la misma corrida, y la herramienta expone flags `--count` y `--lockout` para que el operador pueda ajustar el ritmo de los intentos a la política de lockout real del cliente.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Validar que un dominio objetivo está respaldado por Microsoft O365/Entra ID antes de invertir más esfuerzo de reconocimiento.

  • 02

    Enumerar qué direcciones de una lista recolectada corresponden a cuentas reales y válidas del tenant.

  • 03

    Ejecutar password spraying con límite de tasa contra una lista de contraseñas verificada y aprobada por el cliente.

  • 04

    Enrutar el tráfico de enumeración y spray a través de endpoints rotativos estilo FireProx para probar la cobertura de detección en lugar de la tasa de éxito bruta.

PRIMEROS PASOS

Una vez autorizado explícitamente el password spraying contra el tenant O365/Entra ID de un cliente, para validar el tenant, enumerar nombres de usuario válidos y rociar una lista de contraseñas verificada contra cuentas reales.

  1. Confirma que el dominio específico, la lista de usuarios y la lista de contraseñas están todos dentro de la autorización firmada antes de ejecutar nada contra el objetivo.
  2. Valida el tenant: `o365spray --validate --domain target.com`.
  3. Enumera nombres de usuario válidos contra la lista recolectada: `o365spray --enum -U usernames.txt --domain target.com`.
  4. Rocía solo con las contraseñas aprobadas por el cliente, respetando el umbral real de lockout del tenant: `o365spray --spray -U usernames.txt -P passwords.txt --count 1 --lockout 10 --domain target.com`.
o365spray — bash
o365spray --enum -U usernames.txt --domain target.com

ANTES DE USARLA

Qué revisar antes de lanzarla

El password spraying apunta a cuentas reales de usuarios finales, no solo a infraestructura — debe estar explícitamente autorizado por escrito, con la política de lockout real del cliente y la lista de contraseñas acordadas de antemano, por separado de cualquier autorización de reconocimiento limitada a infraestructura.

Configurar mal `--count`/`--lockout` bloquea a usuarios reales y genera tickets de soporte; ajusta siempre el ritmo del spray por debajo del umbral de lockout documentado del tenant y coordina el momento con el SOC del cliente.

Los intentos de enumeración y spray aparecen como eventos de autenticación en los logs de inicio de sesión de Entra ID (a menudo como muchos inicios de sesión fallidos desde una sola fuente); acuerda con el cliente qué esperar ahí para el debrief con el equipo blue team.

SIGUE EXPLORANDO

Ver toda la fase →