
Outil d'énumération de noms d'utilisateur et de pulvérisation de mots de passe ciblant Microsoft O365.
o365spray est un outil d'énumération d'utilisateurs et de pulvérisation de mots de passe ciblant Microsoft Office 365 (O365). Cet outil réimplémente une série de techniques d'énumération et de pulvérisation recherchées et identifiées par les personnes mentionnées dans Remerciements.
À des fins éducatives, autorisées et/ou de recherche uniquement.
ATTENTION : Les modules d'énumération d'utilisateurs Autologon, oAuth2 et RST fonctionnent en soumettant une seule tentative d'authentification par utilisateur. Si les modules sont exécutés conjointement avec la pulvérisation de mots de passe en une seule exécution, o365spray réinitialisera automatiquement le minuteur de verrouillage avant d'effectuer la pulvérisation -- si l'énumération est exécutée seule, l'utilisateur doit être conscient du nombre et du moment de chaque tentative d'authentification et réinitialiser manuellement le minuteur de verrouillage avant d'effectuer toute pulvérisation de mots de passe.
Valider qu'un domaine utilise O365 :
o365spray --validate --domain test.com
Effectuer une énumération d'utilisateurs pour un domaine donné :
o365spray --enum -U usernames.txt --domain test.com
Effectuer une pulvérisation de mots de passe pour un domaine donné :
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 validation 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.
Le module onedrive dépend du fait que le(s) utilisateur(s) cible(s) se sont déjà connectés à OneDrive. Si un utilisateur valide n'a pas encore utilisé OneDrive, son compte sera considéré comme 'invalide'.
Le module oAuth2 peut être utilisé pour la pulvérisation fédérée, mais il convient de noter que cela fonctionnera UNIQUEMENT si le locataire cible a activé la synchronisation des mots de passe - sinon l'authentification échouera toujours. Le mécanisme par défaut consiste à utiliser le module 'adfs' lorsque la fédération est identifiée.
Microsoft a rendu plus difficile la pulvérisation de mots de passe, donc l'utilisation d'outils comme FireProx aide à contourner les limitations de débit basées sur les adresses IP.
Pour utiliser FireProx avec o365spray, créez une URL proxy pour le module o365spray donné en vous basant sur les tableaux d'URL de base ci-dessous. L'URL proxy peut ensuite être transmise via --proxy-url.
REMARQUE : Assurez-vous d'utiliser le bon indicateur
--enum-moduleou--spray-moduleavec l'URL de base utilisée pour créer l'URL FireProx.
La valeur 'tenant' dans l'URL OneDrive est la valeur du nom de domaine fournie via l'indicateur
--domain.
| Module | URL de 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/ |
| Module | URL de base |
|---|---|
| activesync | https://outlook.office365.com/ |
| adfs | Actuellement non implémenté |
| 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/ |