
Spray365 facilita el rociado de cuentas de Microsoft (Office 365 / Azure AD) mediante su enfoque personalizable de rociado de contraseñas en dos pasos. El plan de ejecución integrado incluye opciones que intentan eludir el bloqueo inteligente de Azure y las políticas de acceso condicional inseguras.

Spray365 es una herramienta de pulverización de contraseñas que identifica credenciales válidas para cuentas de Microsoft (Office 365 / Azure AD). ¿En qué se diferencia Spray365 de las muchas otras herramientas de pulverización de contraseñas ya disponibles? Spray365 permite pulverizar contraseñas a partir de un "plan de ejecución". Tener un plan de ejecución pregenerado que describa la operación de pulverización mucho antes de que ocurra tiene muchos otros beneficios que Spray365 aprovecha, y también permite reanudar las pulverizaciones de contraseñas (opción -R) después de un error de red u otra interrupción. Si bien es más fácil generar un plan de ejecución de Spray365 usando directamente Spray365, otras herramientas que producen una estructura JSON compatible facilitan la creación de flujos de trabajo únicos de pulverización de contraseñas.
Spray365 expone algunas opciones útiles al pulverizar credenciales. Se pueden usar agentes de usuario aleatorios para detectar y eludir políticas de acceso condicional inseguras configuradas para limitar los tipos de dispositivos permitidos. De manera similar, el argumento --shuffle_auth_order es una excelente forma de pulverizar credenciales de manera menos predecible. Esta opción se agregó para intentar eludir los bloqueos de cuentas inteligentes (por ejemplo, Azure Smart Lockout). Aunque no es perfecto, aleatorizar el orden en que se intentan las credenciales tiene otros beneficios, como dificultar aún más la detección de estas operaciones de pulverización. Spray365 también admite el proxy de tráfico a través de HTTP/HTTPS, lo que se integra bien con otras herramientas como Burp Suite para manipular el origen de la operación de pulverización.



¡Clone el repositorio, instale los paquetes de Python requeridos y ejecute Spray365!
$ git clone https://github.com/MarkoH17/Spray365
$ cd Spray365
~/Spray365$ pip3 install -r requirements.txt -U
~/Spray365$ python3 spray365.py
Se necesita un plan de ejecución para pulverizar credenciales, ¡así que debemos crear uno! Spray365 puede generar su propio plan de ejecución ejecutando el comando generate en modo "normal": (spray365.py generate normal). Consulte la ayuda (spray365.py generate -h / spray365.py generate normal -h) para más detalles.
$ python3 spray365.py generate normal -ep <nombre_archivo_plan_ejecucion> -d <nombre_dominio> -u <archivo_que_contiene_usuarios> -pf <archivo_que_contiene_contraseñas>
p.ej.
$ python3 spray365.py generate normal -ep ex-plan.s365 -d example.com -u usernames -pf passwords
Spray365 también puede auditar configuraciones de autenticación multifactor (MFA) y políticas de acceso condicional pulverizando credenciales válidas. Los planes de ejecución de tipo auditoría intentan todas las combinaciones de User-Agent + AAD Client ID + AAD Endpoint ID para un par de credenciales dado.
Spray365 puede generar un plan de ejecución de tipo auditoría ejecutando el comando generate en modo "audit": (spray365.py generate audit). Consulte la ayuda (spray365.py generate -h / spray365.py generate audit -h) para más detalles. Si bien es posible proporcionar una lista de usuarios y contraseñas por separado (-u y -pf), estas opciones se adaptan mejor a los planes de ejecución para pulverización de contraseñas (no para auditoría), lo que probablemente causaría muchos intentos de inicio de sesión no válidos. En su lugar, considere -u / --user_file con --passwords_in_userfile, lo que indicará a Spray365 que extraiga las contraseñas de "user_file" dividiendo cada línea del archivo de entrada por dos puntos, donde el valor antes de los dos puntos se trata como el nombre de usuario, y el valor después de los dos puntos se trata como la contraseña (p. ej., <usuario>:<contraseña>, jsmith:Password01).
$ python3 spray365.py generate audit -ep <nombre_archivo_plan_ejecucion> -d <nombre_dominio> -u <archivo_que_contiene_usuarios_y_contraseñas> --passwords_in_userfile
p.ej.
$ python3 spray365.py generate audit -ep ex-plan.s365 -d example.com -u usernames --passwords_in_userfile
Una vez que se crea un plan de ejecución, se puede usar Spray365 para procesarlo. Ejecutar Spray365 en modo "spray" (spray365.py spray) procesará el plan de ejecución especificado y pulverizará las credenciales adecuadas. Todos los tipos de planes de ejecución (normal y auditoría) se pueden procesar en este modo. Consulte la ayuda (spray365.py spray -h) para más detalles.
$ python3 spray365.py spray -ep <nombre_archivo_plan_ejecucion>
p.ej.
$ python3 spray365.py spray -ep ex-plan.s365
Después de pulverizar credenciales desde un plan de ejecución, Spray365 genera un archivo JSON con los resultados. Este archivo se puede procesar con otras herramientas como JQ para obtener información sobre la operación de pulverización una vez realizada. Sin embargo, Spray365 también incluye un comando "review" que se puede usar para conocer:
Consulte la ayuda (spray365.py review -h) para más detalles.
$ python3 spray365.py review <nombre_archivo_json_resultados_pulverizacion>
p.ej.
$ python3 spray365.py review spray365_results_2022-05-20_18-58-31.json
Usage: spray365.py generate normal [OPTIONS]
Generate a vanilla (normal) execution plan