Detection rules › Sigma
NetSYnc attack
NetSync allows an attacker to take the NTLM hash of a Domain Controller (DC) machine account ("usually" identified by ending in "$") and using it to obtain the NTLM machine account hash of another machine account through impersonation (similar to, but different from, DCSync). Where DCSync can obtain user account passwords, NetSync is limited to machine accounts. The other main differentiator between DCSync and NetSync is that DCSync will make use of Microsoft's Directory Replication Service (DRS) Remote Protocol, whereas NetSync uses the older Netlogon Remote Protocol (MS-NRPC)
Known false positives
- Exchange servers
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Telemetry coverage
Rule body
title: NetSYnc attack
description: NetSync allows an attacker to take the NTLM hash of a Domain Controller (DC) machine account ("usually" identified by ending in "$") and using it to obtain the NTLM machine account hash of another machine account through impersonation (similar to, but different from, DCSync). Where DCSync can obtain user account passwords, NetSync is limited to machine accounts. The other main differentiator between DCSync and NetSync is that DCSync will make use of Microsoft's Directory Replication Service (DRS) Remote Protocol, whereas NetSync uses the older Netlogon Remote Protocol (MS-NRPC)
correlation: ID 5145 SubjectLogonId 0x1f4a6c852 AND ID 4624 TargetLogonId 0x1f4a6c852
references:
- https://github.com/Neo23x0/sigma/blob/c56cd2dfff6343f3694ef4fd606a305415599737/rules-unsupported/win_dumping_ntdsdit_via_netsync.yml
- https://fr.slideshare.net/heirhabarov/hunting-for-credentials-dumping-in-windows-environment
- https://www.trustedsec.com/blog/the-tale-of-the-lost-but-not-forgotten-undocumented-netsync-part-1/
- https://www.trustedsec.com/blog/the-tale-of-the-lost-but-not-forgotten-undocumented-netsync-part-2/
tags:
- attack.credential_access
- attack.t1003.006
author: mdecrevoisier
status: experimental
logsource:
product: windows
service: security
detection: # lsadump::netsync /dc:<dc_fqdn> /user:dc1$ /ntlm:<ntlmhash> /account:srv02$
selection_login:
EventID: 4624
Computer: '%domain_controllers%'
TargetUserSid: S-1-5-21-
LogonType: 3
AuthenticationPackageName: Kerberos
selection_share:
EventID: 5145
Computer: '%domain_controllers%'
ShareName: \\*\IPC$
RelativeTargetName: NETLOGON
filter:
- SubjectUserName|endswith: $
- SubjectUserSid: S-1-5-7 # ANONYMOUS LOGON
- IpAddress:
- '%domain_controllers%'
- '%exchange_servers%'
condition: selection_login and selection_share and not filter
falsepositives:
- Exchange servers
level: high
Stages and Predicates
Stage 0: condition
selection_login and selection_share and not filterStage 1: selection_login
selection_login:
EventID: 4624
Computer: '%domain_controllers%'
TargetUserSid: S-1-5-21-
LogonType: 3
AuthenticationPackageName: Kerberos
Stage 2: selection_share
selection_share:
EventID: 5145
Computer: '%domain_controllers%'
ShareName: \\*\IPC$
RelativeTargetName: NETLOGON
Stage 3: not filter
filter:
- SubjectUserName|endswith: $
- SubjectUserSid: S-1-5-7
- IpAddress:
- '%domain_controllers%'
- '%exchange_servers%'
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
IpAddress | eq | %domain_controllers% | excludes:IpAddress field:"IpAddress" value:"%domain_controllers%" |
IpAddress | eq | %exchange_servers% | excludes:IpAddress field:"IpAddress" value:"%exchange_servers%" |
SubjectUserName | ends_with | $ | excludes:SubjectUserName field:"SubjectUserName" value:"$" |
SubjectUserSid | eq | S-1-5-7 | excludes:SubjectUserSid field:"SubjectUserSid" value:"S-1-5-7" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
AuthenticationPackageName | eq |
| field:"AuthenticationPackageName" kind:eq value:"Kerberos" |
Computer | eq |
| field:"Computer" kind:eq value:"%domain_controllers%" |
LogonType | eq |
| field:"LogonType" kind:eq value:"3" |
RelativeTargetName | eq |
| field:"RelativeTargetName" kind:eq value:"NETLOGON" |
ShareName | wildcard |
| field:"ShareName" kind:wildcard value:"\\*\IPC$" |
TargetUserSid | eq |
| field:"TargetUserSid" kind:eq value:"S-1-5-21-" |