Detection rules › Sigma
Brutforce enumeration with non existing users (login)
Detects scenarios where an attacker attempts to enumerate potential existing users, resulting in failed logins with unexisting or invalid accounts.
Known false positives
- Missconfigured application
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Telemetry coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4625: An account failed to log on. |
Rule body
title: Brutforce enumeration with non existing users (login)
name: login_non_existing_user
description: Detects scenarios where an attacker attempts to enumerate potential existing users, resulting in failed logins with unexisting or invalid accounts.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0006-Credential%20Access/T1110.xxx-Brut%20force
- https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4625
tags:
- attack.credential_access
- attack.t1110
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection:
selection:
EventID: 4625
SubStatus: "0xc0000064" # user not found | Failure code can be defined in "Status" or "Substatus" fields. Usually, if Substatus == 0x0, refers to Status.
filter:
IpAddress: "%domain_controllers_ips%" # reduce amount of false positives
condition: selection and not filter
falsepositives:
- Missconfigured application
level: high
---
title: Brutforce enumeration with non existing users (login) Count
status: experimental
correlation:
type: value_count
rules:
- login_non_existing_user # Referenced here
group-by:
- Computer
timespan: 30m
condition:
gte: 20
field: TargetUserName
level: high
Stages and Predicates
Stage 0: condition
selection and not filterStage 1: selection
selection:
EventID: 4625
SubStatus: "0xc0000064"
Stage 2: not filter
filter:
IpAddress: "%domain_controllers_ips%"
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
IpAddress | eq | %domain_controllers_ips% | excludes:IpAddress field:"IpAddress" value:"%domain_controllers_ips%" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
SubStatus | eq |
| field:"SubStatus" kind:eq value:"0xc0000064" |