spray
Thespray command performs password spraying across multiple protocols. It takes a credential (username and password or hash) and tests it against a list of target servers, supporting lockout awareness and configurable threading.
Usage
Persistent Flags
These flags apply to allspray subcommands:
Subcommands
spray kerberos
Spray credentials via the Kerberos protocol (AS-REQ). This is the most evasion-friendly method as it does not touch LDAP or SMB directly.
spray kerberos pwd
Kerberos password spraying — sends AS-REQs and checks for valid authentication responses.
spray kerberos enum
Kerberos user enumeration — determines whether usernames exist by analyzing AS-REQ error responses without attempting to authenticate. This does not cause lockouts.
spray smb
Password spraying via SMB authentication (port 445).
spray ldap
Password spraying via LDAP bind.
spray ssh
Password spraying via SSH.
spray ftp (planned)
FTP password spraying. Not yet implemented.
spray mssql (planned)
MSSQL password spraying. Not yet implemented.
spray winrm (planned)
WinRM password spraying. Not yet implemented.
spray tftp (planned)
TFTP spraying. Not yet implemented.
Target Specification
Targets can be specified in multiple ways:Spray Results Storage
All spray operations are recorded in thesprays table in SQLite:
Successful credentials are automatically added to the
credentials table.
Lockout Safety
R4t provides multiple layers of lockout protection:
Recommended for production engagements: Always use
--stop-on-lockout and check the domain password policy via r4t ldap get users before spraying.

