|
| 1 | +[metadata] |
| 2 | +creation_date = "2024/07/24" |
| 3 | +integration = ["system", "windows"] |
| 4 | +maturity = "production" |
| 5 | +updated_date = "2024/07/24" |
| 6 | + |
| 7 | +[rule] |
| 8 | +author = ["Elastic"] |
| 9 | +description = """ |
| 10 | +Identifies potential relay attacks against a domain controller (DC) by identifying authentication events using the |
| 11 | +domain controller computer account coming from other hosts to the DC that owns the account. Attackers may relay the DC |
| 12 | +hash after capturing it using forced authentication. |
| 13 | +""" |
| 14 | +from = "now-9m" |
| 15 | +index = ["logs-system.security-*", "logs-windows.forwarded*"] |
| 16 | +language = "eql" |
| 17 | +license = "Elastic License v2" |
| 18 | +name = "Potential Relay Attack against a Domain Controller" |
| 19 | +references = [ |
| 20 | + "https://github.com/p0dalirius/windows-coerced-authentication-methods", |
| 21 | + "https://www.thehacker.recipes/a-d/movement/mitm-and-coerced-authentications", |
| 22 | + "https://attack.mitre.org/techniques/T1187/", |
| 23 | +] |
| 24 | +risk_score = 21 |
| 25 | +rule_id = "263481c8-1e9b-492e-912d-d1760707f810" |
| 26 | +severity = "low" |
| 27 | +tags = [ |
| 28 | + "Domain: Endpoint", |
| 29 | + "OS: Windows", |
| 30 | + "Use Case: Threat Detection", |
| 31 | + "Tactic: Credential Access", |
| 32 | + "Data Source: Elastic Defend", |
| 33 | + "Data Source: Active Directory", |
| 34 | + "Use Case: Active Directory Monitoring", |
| 35 | +] |
| 36 | +timestamp_override = "event.ingested" |
| 37 | +type = "eql" |
| 38 | + |
| 39 | +query = ''' |
| 40 | +authentication where host.os.type == "windows" and event.code in ("4624", "4625") and endswith~(user.name, "$") and |
| 41 | + winlog.event_data.AuthenticationPackageName : "NTLM" and winlog.logon.type : "network" and |
| 42 | +
|
| 43 | + /* Filter for a machine account that matches the hostname */ |
| 44 | + startswith~(host.name, substring(user.name, 0, -1)) and |
| 45 | + |
| 46 | + /* Verify if the Source IP belongs to the host */ |
| 47 | + not endswith(string(source.ip), string(host.ip)) and |
| 48 | + source.ip != null and source.ip != "::1" and source.ip != "127.0.0.1" |
| 49 | +''' |
| 50 | + |
| 51 | + |
| 52 | +[[rule.threat]] |
| 53 | +framework = "MITRE ATT&CK" |
| 54 | +[[rule.threat.technique]] |
| 55 | +id = "T1187" |
| 56 | +name = "Forced Authentication" |
| 57 | +reference = "https://attack.mitre.org/techniques/T1187/" |
| 58 | + |
| 59 | +[[rule.threat.technique]] |
| 60 | +id = "T1557" |
| 61 | +name = "Adversary-in-the-Middle" |
| 62 | +reference = "https://attack.mitre.org/techniques/T1557/" |
| 63 | +[[rule.threat.technique.subtechnique]] |
| 64 | +id = "T1557.001" |
| 65 | +name = "LLMNR/NBT-NS Poisoning and SMB Relay" |
| 66 | +reference = "https://attack.mitre.org/techniques/T1557/001/" |
| 67 | + |
| 68 | + |
| 69 | +[rule.threat.tactic] |
| 70 | +id = "TA0006" |
| 71 | +name = "Credential Access" |
| 72 | +reference = "https://attack.mitre.org/tactics/TA0006/" |
| 73 | + |
0 commit comments