Password Policy Discovery T1201
Tactic: Discovery
Adversaries may attempt to access detailed information about the password policy used within an enterprise network or cloud environment. Password policies are a way to enforce complex passwords that are difficult to guess or crack through Brute Force. This information may help the adversary to create a list of common passwords and launch dictionary and/or brute force attacks which adheres to the policy (e.g. if the minimum password length should be 8, then not trying passwords such as 'pass123'; not checking for more than 3-4 passwords per account if the lockout is set to 6 as to not lock out accounts).
Events covered
12 catalog events are tagged with this technique by at least one rule.
| Provider | Event | Title |
|---|---|---|
| Sysmon | Event ID 1 | Process creation |
| Sysmon | Event ID 3 | Network connection |
| Security-Auditing | Event ID 4661 | A handle to an object was requested. |
| Security-Auditing | Event ID 4688 | A new process has been created. |
| Security-Auditing | Event ID 4799 | A security-enabled local group membership was enumerated. |
| Security-Auditing | Event ID 5156 | The Windows Filtering Platform has permitted a connection. |
| Defender-DeviceEvents | LdapSearch | LDAP search |
| Defender-DeviceNetworkEvents | any | Network activity (any) |
| Linux-Auditd | Event ID 1302 | PATH |
| Linux-Auditd | Event ID 1309 | EXECVE |
| LDAP-Client | Event ID 30 | LDAP search request |
| PowerShell | Event ID 4104 | Creating Scriptblock text (MessageNumber of MessageTotal). |
Authoring guide
Patterns shared across the 30 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.
Fields filtered most (39 distinct)
The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.
Top indicator values (296 distinct)
Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique. Click a value to expand the rules under this technique that use it.
Exclusions (34 distinct)
Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths. Click a value to expand the rules under this technique that exclude it.
Rules under this technique
Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.
Sigma 8 rules
- Cisco Discovery
- Domain password policy enumeration
- HackTool - CrackMapExec Execution
- Net.EXE Execution
- Password Policy Discovery - Linux
- Password policy discovery via commandline
- Password Policy Discovery With Get-AdDefaultDomainPasswordPolicy
- Password Policy Enumerated
Elastic 6 rules
- Deprecated - PowerShell Script with Discovery Capabilities
- Entra ID Sign-in BloodHound Suite User-Agent Detected
- Entra ID Sign-in TeamFiltration User-Agent Detected
- PowerShell Script with Password Policy Discovery Capabilities
- PowerShell Suspicious Discovery Related Windows API Functions
- Windows Account or Group Discovery
Splunk 11 rules
- AWS High Number Of Failed Authentications For User
- AWS Password Policy Changes
- Get ADDefaultDomainPasswordPolicy with Powershell
- Get ADDefaultDomainPasswordPolicy with Powershell Script Block
- Get ADUserResultantPasswordPolicy with Powershell
- Get ADUserResultantPasswordPolicy with Powershell Script Block
- Get DomainPolicy with Powershell
- Get DomainPolicy with Powershell Script Block
- SharpHound Enumeration (Windows Event Log)
- SharpHound Keywords (PowerShell)
- Windows Password Policy Discovery with Net