Detection rules › Sigma
SharpHound host enumeration over Kerberos
Detect if a source host is requesting multiple Kerberos Service tickets (TGS) for different assets in a short period of time.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Discovery | T1069.002 Permission Groups Discovery: Domain Groups, T1087.002 Account Discovery: Domain Account |
Event coverage
| Provider | Event | Title |
|---|---|---|
| Security-Auditing | Event ID 4769 | A Kerberos service ticket was requested. |
Rule body yaml
title: SharpHound host enumeration over Kerberos
name: sharphound_enumeration_kerberos
description: Detect if a source host is requesting multiple Kerberos Service tickets (TGS) for different assets in a short period of time.
references:
- https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4769
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0007-Discovery/T1087-Account%20discovery
- https://www.splunk.com/en_us/blog/security/sharing-is-not-caring-hunting-for-file-share-discovery.html
tags:
- attack.discovery
- attack.t1069.002
- attack.t1087.002
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection:
selection:
EventID: 4769
ServiceName|endswith: "$"
Status: 0x0
filter:
- IpAddress:
- "::1"
- "%domain_controllers_ip%"
- TargetUserName|contains: "$@" # excludes computer accounts
condition: selection and not filter
falsepositives:
- Administrator activity, backup software
level: medium
---
title: SharpHound host enumeration over Kerberos Count
status: experimental
correlation:
type: value_count
rules:
- sharphound_enumeration_kerberos
group-by:
- ServiceName
timespan: 5m
condition:
gte: 20
field: IpAddress
level: high
Stages and Predicates
Stage 0: condition
selection and not filterStage 1: selection
selection:
EventID: 4769
ServiceName|endswith: "$"
Status: 0x0
Stage 2: not filter
filter:
- IpAddress:
- "::1"
- "%domain_controllers_ip%"
- TargetUserName|contains: "$@"
Exclusions
Top-level NOT(...) conjuncts: predicates this rule actively suppresses.
| Field | Kind | Excluded values |
|---|---|---|
IpAddress | eq | %domain_controllers_ip% |
IpAddress | eq | ::1 |
TargetUserName | match | $@ |
Indicators
Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.
| Field | Kind | Values |
|---|---|---|
ServiceName | ends_with |
|
Status | eq |
|