Detection rules › Elastic
Potential AutoConfigURL Settings Hijack
Identifies registry modification to modify the system internet proxy settings by an unusual process. This may indicate an attempt to hijack user internet traffic to certain websites.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Persistence | |
| Defense Impairment |
Rule body
[rule]
description = """
Identifies registry modification to modify the system internet proxy settings by an unusual process. This may indicate
an attempt to hijack user internet traffic to certain websites.
"""
id = "6dd16a01-b779-4a39-b436-deed75f2c355"
license = "Elastic License v2"
name = "Potential AutoConfigURL Settings Hijack"
os_list = ["windows"]
version = "1.0.9"
query = '''
registry where
registry.path : "HKEY_USERS\\*\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\AutoConfigURL" and
registry.data.strings : "*http*" and not registry.data.strings : "*127.0.0.1*" and process.executable != null and
(
process.code_signature.trusted == false or
process.code_signature.exists == false or
process.name : ("powershell.exe", "wscript.exe", "cscript.exe")
) and
not process.executable : ("?:\\Program Files\\*", "?:\\Program Files (x86)\\*", "C:\\LexisNexis\\Shared\\RwEasyMAPI64.exe")
'''
min_endpoint_version = "8.4.0"
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0
[[optional_actions]]
action = "rollback"
field = "process.entity_id"
state = 0
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1112"
name = "Modify Registry"
reference = "https://attack.mitre.org/techniques/T1112/"
[threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[internal]
min_endpoint_version = "8.4.0"
Stages and Predicates
Stage 1: registry
registry where
registry.path : "HKEY_USERS\\*\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\AutoConfigURL" and
registry.data.strings : "*http*" and not registry.data.strings : "*127.0.0.1*" and process.executable != null and
(
process.code_signature.trusted == false or
process.code_signature.exists == false or
process.name : ("powershell.exe", "wscript.exe", "cscript.exe")
) and
not process.executable : ("?:\\Program Files\\*", "?:\\Program Files (x86)\\*", "C:\\LexisNexis\\Shared\\RwEasyMAPI64.exe")
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.executable | wildcard | ?:\Program Files\*, ?:\Program Files (x86)\*, C:\LexisNexis\Shared\RwEasyMAPI64.exe | excludes:process.executable field:"process.executable" value:"?:\Program Files\*" field:"process.executable" value:"?:\Program Files (x86)\*" field:"process.executable" value:"C:\LexisNexis\Shared\RwEasyMAPI64.exe" |
registry.data.strings | match | 127.0.0.1 | excludes:registry.data.strings field:"registry.data.strings" value:"127.0.0.1" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
process.code_signature.exists | eq |
| field:"process.code_signature.exists" kind:eq value:"false" |
process.code_signature.trusted | eq |
| field:"process.code_signature.trusted" kind:eq value:"false" |
process.executable | is_not_null | field:"Image" kind:is_not_null | |
process.name | wildcard |
| field:"process_name" kind:wildcard |
registry.data.strings | wildcard |
| field:"Details" kind:wildcard value:"*http*" |
registry.path | wildcard |
| field:"TargetObject" kind:wildcard value:"HKEY_USERS\*\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL" |