
Benutzernamen-Enumeration und Password-Spraying-Tool für Microsoft O365.
o365spray ist ein Tool zur Benutzernamenerkennung und zum Passwort-Spraying, das auf Microsoft Office 365 (O365) abzielt. Dieses Tool implementiert eine Sammlung von Enumeration- und Spray-Techniken, die von den in Danksagungen genannten Personen erforscht und identifiziert wurden.
Nur für Bildungszwecke, autorisierte und/oder Forschungszwecke.
WARNUNG: Die Module Autologon, oAuth2 und RST zur Benutzernamenerkennung funktionieren, indem sie einen einzelnen Authentifizierungsversuch pro Benutzer durchführen. Wenn die Module zusammen mit dem Passwort-Spraying in einer einzigen Ausführung verwendet werden, setzt o365spray automatisch den Lockout-Timer zurück, bevor das Passwort-Spraying durchgeführt wird – wenn die Enumeration allein ausgeführt wird, sollte sich der Benutzer darüber im Klaren sein, wie viele und wann jeder Authentifizierungsversuch durchgeführt wurde, und den Lockout-Timer manuell zurücksetzen, bevor er ein Passwort-Spraying durchführt.
Bestätigen, dass eine Domain O365 verwendet:
o365spray --validate --domain test.com
Benutzernamenerkennung gegen eine angegebene Domain durchführen:
o365spray --enum -U usernames.txt --domain test.com
Passwort-Spraying gegen eine angegebene Domain durchführen:
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.
Das OneDrive-Modul ist darauf angewiesen, dass der/die Zielbenutzer sich zuvor bei OneDrive angemeldet haben. Wenn ein gültiger Benutzer OneDrive noch nicht genutzt hat, wird sein Konto als 'ungültig' angezeigt.
Das oAuth2-Modul kann für föderiertes Spraying verwendet werden, aber es ist zu beachten, dass dies NUR funktioniert, wenn der Ziel-Mandant die Kennwortsynchronisation aktiviert hat – andernfalls schlägt die Authentifizierung immer fehl. Der Standardmechanismus besteht darin, auf das 'adfs'-Modul zurückzugreifen, wenn eine Föderation identifiziert wird.
Microsoft hat es schwieriger gemacht, Passwort-Spraying durchzuführen, daher helfen Tools wie FireProx dabei, die Ratenbegrenzung basierend auf IP-Adressen zu umgehen.
Um FireProx mit o365spray zu verwenden, erstellen Sie eine Proxy-URL für das angegebene o365spray-Modul basierend auf den Basistabellen unten. Die Proxy-URL kann dann über --proxy-url übergeben werden.
HINWEIS: Stellen Sie sicher, dass Sie das korrekte Flag
--enum-moduleoder--spray-modulemit der Basis-URL verwenden, die zur Erstellung der FireProx-URL verwendet wurde.
Der 'tenant'-Wert in der OneDrive-URL ist der Domainname, der über das Flag
--domainbereitgestellt wird.
| Modul | Basis-URL |
|---|---|
| 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/ |
| Modul | Basis-URL |
|---|---|
| activesync | https://outlook.office365.com/ |
| adfs | Derzeit nicht implementiert |
| 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/ |