
Ferramenta de enumeração de nomes de usuário e pulverização de senhas voltada para o Microsoft O365.
o365spray é uma ferramenta de enumeração de nomes de usuário e pulverização de senhas voltada para o Microsoft Office 365 (O365). Esta ferramenta reimplementa uma coleção de técnicas de enumeração e pulverização pesquisadas e identificadas por aqueles mencionados em Agradecimentos.
Apenas para fins educacionais, autorizados e/ou de pesquisa.
AVISO: Os módulos de enumeração de usuários Autologon, oAuth2 e RST funcionam enviando uma única tentativa de autenticação por usuário. Se os módulos forem executados em conjunto com a pulverização de senhas em uma única execução, o o365spray redefinirá automaticamente o temporizador de bloqueio antes de realizar a pulverização de senhas – se a enumeração for executada sozinha, o usuário deve estar ciente de quantas e quando cada tentativa de autenticação foi feita e redefinir manualmente o temporizador de bloqueio antes de realizar qualquer pulverização de senhas.
Validar se um domínio usa O365:
o365spray --validate --domain test.com
Realizar enumeração de nomes de usuário contra um domínio específico:
o365spray --enum -U usernames.txt --domain test.com
Realizar pulverização de senhas contra um domínio específico:
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.
O módulo onedrive depende de o(s) usuário(s) alvo já terem feito login no OneDrive. Se um usuário válido ainda não usou o OneDrive, sua conta será exibida como 'inválida'.
O módulo oAuth2 pode ser usado para pulverização federada, mas deve-se observar que isso só funcionará quando o locatário alvo tiver a sincronização de senhas habilitada – caso contrário, a autenticação sempre falhará. O mecanismo padrão é usar o módulo 'adfs' quando a federação for identificada.
A Microsoft tornou mais difícil realizar pulverização de senhas, portanto, o uso de ferramentas como FireProx ajuda a contornar a limitação de taxa baseada em endereços IP.
Para usar o FireProx com o o365spray, crie uma URL de proxy para o módulo o365spray específico com base nas tabelas de URL base abaixo. A URL do proxy pode então ser passada via --proxy-url.
NOTA: Certifique-se de usar a flag correta
--enum-moduleou--spray-modulecom a URL base usada para criar a URL do FireProx.
O valor 'tenant' na URL do OneDrive é o valor do nome de domínio fornecido via a flag
--domain.
| 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 | Atualmente não 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/ |
A randomização de User-Agent agora é suportada e pode ser realizada fornecendo um arquivo de User-Agent para a flag --useragents. O o365spray inclui um arquivo de exemplo com mais de 4.800 agentes via resc/user-agents.txt.