
Herramienta de enumeración de nombres de usuario y rociado de contraseñas dirigida a Microsoft O365.
o365spray es una herramienta de enumeración de nombres de usuario y rociado de contraseñas dirigida a Microsoft Office 365 (O365). Esta herramienta reimplementa una colección de técnicas de enumeración y rociado investigadas e identificadas por aquellos mencionados en Agradecimientos.
Solo con fines educativos, autorizados y/o de investigación.
ADVERTENCIA: Los módulos de enumeración de usuarios Autologon, oAuth2 y RST funcionan enviando un único intento de autenticación por usuario. Si los módulos se ejecutan junto con el rociado de contraseñas en una sola ejecución, o365spray restablecerá automáticamente el temporizador de bloqueo antes de realizar el rociado de contraseñas. Si la enumeración se ejecuta sola, el usuario debe ser consciente de cuántos y cuándo se realizó cada intento de autenticación y restablecer manualmente el temporizador de bloqueo antes de realizar cualquier rociado de contraseñas.
Validar que un dominio usa O365:
o365spray --validate --domain test.com
Realizar enumeración de nombres de usuario contra un dominio dado:
o365spray --enum -U usernames.txt --domain test.com
Realizar rociado de contraseñas contra un dominio dado:
o365spray --spray -U usernames.txt -P passwords.txt --count 2 --lockout 5 --domain test.com
usage: o365spray [flags]
o365spray | Microsoft O365 User Enumerator and Password Sprayer -- v3.0.4
options:
-h, --help show this help message and exit
Target:
-d DOMAIN, --domain DOMAIN
Target domain for validation, user enumeration, and/or
password spraying.
Actions:
--validate Run domain validation only.
--enum Run username enumeration.
--spray Run password spraying.
Credentials:
-u USERNAME, --username USERNAME
Username(s) delimited using commas.
-p PASSWORD, --password PASSWORD
Password(s) delimited using commas.
-U USERFILE, --userfile USERFILE
File containing list of usernames.
-P PASSFILE, --passfile PASSFILE
File containing list of passwords.
--paired PAIRED File containing list of credentials in username:password
format.
Password Spraying Configuration:
-c COUNT, --count COUNT
Number of password attempts to run per user before resetting
the lockout account timer.
Default: 1
-l LOCKOUT, --lockout LOCKOUT
Lockout policy's reset time (in minutes).
Default: 15 minutes
Module Configuration:
--validate-module VALIDATE_MODULE
Specify which valiadtion module to run.
Default: getuserrealm
--enum-module ENUM_MODULE
Specify which enumeration module to run.
Default: office
--spray-module SPRAY_MODULE
Specify which password spraying module to run.
Default: oauth2
--adfs-url ADFS_URL AuthURL of the target domain's ADFS login page for password
spraying.
Scan Configuration:
--sleep [-1, 0-120] Throttle HTTP requests every `N` seconds. This can be randomized
by passing the value `-1` (between 1 sec and 2 mins).
Default: 0
--jitter [0-100] Jitter extends --sleep period by percentage given (0-100).
Default: 0
--rate RATE Number of concurrent connections (attempts) during
enumeration and spraying.
Default: 10
--poolsize POOLSIZE Maximum size of the ThreadPoolExecutor.
Default: 10000
--safe SAFE Terminate password spraying run if `N` locked accounts
are observed.
Default: 10
HTTP Configuration:
--useragents USERAGENTS
File containing list of user agents for randomization.
--timeout TIMEOUT HTTP request timeout in seconds. Default: 25
--proxy PROXY HTTP/S proxy to pass traffic through
(e.g. http://127.0.0.1:8080).
--proxy-url PROXY_URL
FireProx API URL.
Output Configuration:
--output OUTPUT Output directory for results and test case files.
Default: current directory
Debug:
-v, --version Print the tool version.
--debug Enable debug output.
El módulo onedrive depende de que el(los) usuario(s) objetivo hayan iniciado sesión previamente en OneDrive. Si un usuario válido aún no ha usado OneDrive, su cuenta se mostrará como 'inválida'.
El módulo oAuth2 puede usarse para rociado federado, pero debe tenerse en cuenta que SOLO funcionará cuando el inquilino objetivo tenga habilitada la sincronización de contraseñas; de lo contrario, la autenticación siempre fallará. El mecanismo predeterminado es utilizar el módulo 'adfs' cuando se identifica federación.
Microsoft ha dificultado más la realización de rociado de contraseñas, por lo que el uso de herramientas como FireProx ayuda a evitar la limitación de velocidad basada en direcciones IP.
Para usar FireProx con o365spray, cree una URL proxy para el módulo o365spray dado según las tablas de URL base a continuación. Luego, la URL proxy se puede pasar mediante --proxy-url.
NOTA: Asegúrese de usar la bandera
--enum-moduleo--spray-modulecorrecta con la URL base utilizada para crear la URL de FireProx.
El valor 'tenant' en la URL de OneDrive es el valor del nombre de dominio que se proporciona mediante la bandera
--domain.
La aleatorización del User-Agent ahora es compatible y se puede lograr proporcionando un archivo de User-Agent a la bandera --useragents. o365spray incluye un archivo de ejemplo con más de 4.800 agentes a través de resc/user-agents.txt.
Los agentes en el conjunto de datos de ejemplo se recopilaron de las siguientes fuentes:
El marco de trabajo de o365spray se ha portado a una nueva herramienta: Omnispray. Esta herramienta está diseñada para modularizar el marco original de enumeración y rociado para permitir un direccionamiento genérico, no solo O365. Omnispray incluye módulos de plantilla para enumeración y rociado que pueden modificarse y aprovecharse para cualquier objetivo.
Si se encuentran errores/fallos, abra un Issue con los detalles (o un Pull Request con la solución propuesta). Consulte la sección a continuación para más información sobre el uso de versiones anteriores.
Si se encuentran problemas, intente verificar versiones anteriores antes de las reescrituras de código:
# v1.3.7
git checkout e235abdcebad61dbd2cde80974aca21ddb188704
# v2.0.4
git checkout a585432f269a8f527d61f064822bb08880c887ef
| Módulo | URL base |
|---|
| autodiscover | https://outlook.office365.com/ |
| autologon | https://autologon.microsoftazuread-sso.com/ |
| oauth2 | https://login.microsoftonline.com/ |
| office | https://login.microsoftonline.com/ |
| rst | https://login.microsoftonline.com/ |
| onedrive | https://<tenant>-my.sharepoint.com/ |
| Módulo | URL base |
|---|
| activesync | https://outlook.office365.com/ |
| adfs | Actualmente no implementado |
| autodiscover | https://autodiscover-s.outlook.com/ |
| autologon | https://autologon.microsoftazuread-sso.com/ |
| oauth2 | https://login.microsoftonline.com/ |
| reporting | https://reports.office365.com/ |
| rst | https://login.microsoftonline.com/ |
| Autor | Herramienta/Investigación | Enlace |
|---|
| gremwell | o365enum: Enumeración de usuarios vía office.com sin autenticación | o365enum |
| grimhacker | office365userenum: Investigación y descubrimiento de enumeración de usuarios por ActiveSync. | office365userenum / entrada de blog |
| Raikia | UhOh365: Enumeración de usuarios vía Autodiscover sin autenticación. | UhOh365 |
| dafthack | MSOLSpray: Rociado de contraseñas vía MSOL | MSOLSpray |
| byt3bl33d3r | MSOLSpray: Reimplementación en Python | Gist |
| nyxgeek | onedrive_user_enum: Enumeración de usuarios de OneDrive | onedrive_user_enum / entrada de blog |
| Mr-Un1k0d3r | adfs-spray: Rociado de contraseñas ADFS | adfs-spray |
| Nestori Syynimaa | AADInternals: Módulos oAuth2 y autologon | AADInternals |
| Daniel Chronlund / xFreed0m | Invoke-AzureAdPasswordSprayAttack / ADFSpray: Rociado de contraseñas de la API de informes de Office 365 | Invoke-AzureAdPasswordSprayAttack / ADFSpray |
| Optiv (Varios autores) | Go365: Módulo de enumeración de usuarios RST y rociado de contraseñas | Go365 |
| byt3bl33d3r | SprayingToolkit: Referencias de código | SprayingToolkit |
| sensepost | ruler: Referencias de código | Ruler |