Detection rules › Elastic
Suspicious Executable Memory Mapping
Identifies attempts to map the whole content of a file in a memory region with execute permissions. This may indicate an attempt to allocate and write malicious code via memory mapping.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Stealth |
Rule body
[rule]
description = """
Identifies attempts to map the whole content of a file in a memory region with execute permissions. This may indicate an
attempt to allocate and write malicious code via memory mapping.
"""
id = "20a1f655-498a-4a73-8793-9f7ed14b9601"
license = "Elastic License v2"
name = "Suspicious Executable Memory Mapping"
os_list = ["windows"]
reference = [
"https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-mapviewoffile2",
"https://www.elastic.co/security-labs/dissecting-remcos-rat-part-four",
"https://www.elastic.co/security-labs/doubling-down-etw-callstacks",
]
version = "1.0.5"
query = '''
api where process.Ext.api.name in ("MapViewOfFile", "MapViewOfFile2") and
/* map the whole file to an executable memory region */
process.Ext.api.parameters.size == 0 and process.Ext.api.behaviors == "allocate_shellcode" and
_arraysearch(process.thread.Ext.call_stack_final_user_module.code_signature, $entry, $entry.exists == false or $entry.status == "errorBadDigest") and
not process.thread.Ext.call_stack_final_user_module.protection_provenance in ("Kernel", "Unknown", "Undetermined") and
not process.thread.Ext.call_stack_final_user_module.name in ("Kernel", "Unknown") and
not process.thread.Ext.call_stack_final_user_module.hash.sha256 in
("a79bfb466cabfef1a4faaf2eedbf0e823bf372f2a1f6f33e803702ff080f72f3",
"9d3b9a942d4f7573f9f2f8197f3ca9254d483bd12226975476befe1c203544bb",
"69c45175ecfd25af023f96ac0bb2c45e6a95e3ba8a5a50ee7969ccab14825c44",
"2faef17891b413fd63fc34c019a22401cce33e11da3a788de787dccaed1238ec",
"dc98b14cbb25ef1937217da4fde5e2cc13f4702b31a6bc481d8de2bd87ac0525",
"1b5d9cec668335295c8e575bcedf4afcedbc445d8ccf8374c9380188965e78e3",
"18d1bae077da62bb5cf5bfa6a6c5c38ac9ade57f098ea2b357fab477e85f1c25",
"d842b440338e59201a4e2d32779768d0f892cd131eeca904e155bd063158f71a",
"9a0c65932e4f71dd850e16c5e2830463745e65c4b25f0d0731fe3fc5b94104f6",
"72d2010ee14567e9d0c68c3411ba1bfee8b875ddbda6b5a467c28c9e83ebf557",
"6ec60215507d4e671f743164a247362da212acd65f9e0cfb676abb0f9a428dfa",
"f11e2c3e87d9f4531fb68664cfea76f7691f26986921f6b83b13d8a0531e673c",
"9709ff9eb1e712145214525d692bd46380099959597cb85bf9716c71385d6446",
"9176d1c98c87da7f22ef6e88b04669b84a952a506745e854bfabe56642ead659",
"c8b1026e1c6dbeab082c587a796e5deffb0e0d04d9be52ff6e445a5d69a4e790",
"a43a04d10b713edbc053a286a329c958b345d713153e52beeac73c99cb44a2c4",
"6016f8944c4f2a47420474792ea88b4c49584529e8b257509249a5b7cb011a78",
"e4494c9e346ab2c96feb4933521a1cbcc8e802b93c379aed2f7d5b2f82fc35f8",
"983b1815934cdcca7fc2af14ba6b199bc1bd591e60e2550c98702efa454b26e5",
"05e6e9c54e4da2adb0482b97bb4bbf1930ec229ea9266df0cbcc0d1847311ace",
"905830b92cb86d3fa457f8f6f9c839aa85f05cc76daaeb0ab1b44b86b2455a85",
"ff225f43ea5fef79d7565533e3e40c78d92c7547ce9c948a817f237ebef96ea3",
"533b27ac86fd52e44fa98b86cd96b65c60a3c0873eacc0a51a0e748df32131b6",
"017978d00b820a0cd38cfa904408e4271b0cacd56cfdee0bb7945cf875a2fb1e",
"59652dc55748c18aba7c575a2b41cd4128d0ab06809deaf553b725bacf13f60f",
"796494dcea0b9e1b1de25be0a8f6d6e7b1b87401ba606b269443898007a703fe",
"8b07e35fbd5831d66fe7f424cda4953acd3446917ac58f8469c511e77f0df40e",
"be8c2d187ebef266f75475c85125a7877acc19e70f4a45dfe14c31bfc349296f",
"a7d279cbfa959b5621b453c4d84e48033a79aa7da2cb85bb1f436ed2afd156ec",
"25477c0dad4e07def9d4a693fb410e9bf0b70531883b2dbbcfa7d5d6383deff9",
"a7d279cbfa959b5621b453c4d84e48033a79aa7da2cb85bb1f436ed2afd156ec",
"6c53d38e6caa9e1dfb08f2eb52659080611e45949b46627f47ab60fc4fb3a52e",
"ff20e643e1de23efaad7c274ffb68fa489e896151ec5b21064cfa6500ea62cc2",
"62dfa53f3ff9247583b48c9d1f431faaa8bceeed5bdf23558f7ce4a39039f5a4",
"ac36cd643420ab05628f3622de55a23291f77081c50e6ef1337487baea3360d1",
"df13445949901d9f43575ad8fd5005a490e9a2fa68e27e26e6ea6d4014b83635",
"7f015c5673eec28b83637794b24199fe3b630ac94e49085994435787bac995c4",
"07c69656044fb6ac4f57f0847be8230727f5258235b2106cbb0c15af86ffa444",
"1bba7ad14b8b976dcaf39a004b4c6cf677032648fdf98e4aae9bddc2ccd69c6f",
"afe907b872bbaa92da07b7cfe203763892061fca683637fe4df25666b28e97ee",
"9becd39f90077a5ab064681c0a1be139d15be9ce434bacd48cd1dc894d3911cb",
"7acaa0e07d37cdd814408145b1d0f2137eaf068ff716eee09f39c8e4625550fb",
"e7bedb6d2b70d4685d2cb084f23ac10b44aa2ce112d458f2d8134061a68f0bd9",
"1d1cfd19249c06adefa0ff104d3f5db7f48568993c540576ef1930210793c975") and
not process.thread.Ext.call_stack_final_user_module.path like ("?:\\program files (x86)\\*", "c:\\windows\\assembly\\nativeimages_*.ni.dll", "?:\\program files\\*")
'''
min_endpoint_version = "8.10.0"
optional_actions = []
[[actions]]
action = "kill_process"
field = "process.entity_id"
state = 0
[[threat]]
framework = "MITRE ATT&CK"
[[threat.technique]]
id = "T1055"
name = "Process Injection"
reference = "https://attack.mitre.org/techniques/T1055/"
[threat.tactic]
id = "TA0005"
name = "Defense Evasion"
reference = "https://attack.mitre.org/tactics/TA0005/"
[internal]
min_endpoint_version = "8.10.0"
Stages and Predicates
Stage 1: api
api where process.Ext.api.name in ("MapViewOfFile", "MapViewOfFile2") and
process.Ext.api.parameters.size == 0 and process.Ext.api.behaviors == "allocate_shellcode" and
_arraysearch(process.thread.Ext.call_stack_final_user_module.code_signature, $entry, $entry.exists == false or $entry.status == "errorBadDigest") and
not process.thread.Ext.call_stack_final_user_module.protection_provenance in ("Kernel", "Unknown", "Undetermined") and
not process.thread.Ext.call_stack_final_user_module.name in ("Kernel", "Unknown") and
not process.thread.Ext.call_stack_final_user_module.hash.sha256 in
("a79bfb466cabfef1a4faaf2eedbf0e823bf372f2a1f6f33e803702ff080f72f3",
"9d3b9a942d4f7573f9f2f8197f3ca9254d483bd12226975476befe1c203544bb",
"69c45175ecfd25af023f96ac0bb2c45e6a95e3ba8a5a50ee7969ccab14825c44",
"2faef17891b413fd63fc34c019a22401cce33e11da3a788de787dccaed1238ec",
"dc98b14cbb25ef1937217da4fde5e2cc13f4702b31a6bc481d8de2bd87ac0525",
"1b5d9cec668335295c8e575bcedf4afcedbc445d8ccf8374c9380188965e78e3",
"18d1bae077da62bb5cf5bfa6a6c5c38ac9ade57f098ea2b357fab477e85f1c25",
"d842b440338e59201a4e2d32779768d0f892cd131eeca904e155bd063158f71a",
"9a0c65932e4f71dd850e16c5e2830463745e65c4b25f0d0731fe3fc5b94104f6",
"72d2010ee14567e9d0c68c3411ba1bfee8b875ddbda6b5a467c28c9e83ebf557",
"6ec60215507d4e671f743164a247362da212acd65f9e0cfb676abb0f9a428dfa",
"f11e2c3e87d9f4531fb68664cfea76f7691f26986921f6b83b13d8a0531e673c",
"9709ff9eb1e712145214525d692bd46380099959597cb85bf9716c71385d6446",
"9176d1c98c87da7f22ef6e88b04669b84a952a506745e854bfabe56642ead659",
"c8b1026e1c6dbeab082c587a796e5deffb0e0d04d9be52ff6e445a5d69a4e790",
"a43a04d10b713edbc053a286a329c958b345d713153e52beeac73c99cb44a2c4",
"6016f8944c4f2a47420474792ea88b4c49584529e8b257509249a5b7cb011a78",
"e4494c9e346ab2c96feb4933521a1cbcc8e802b93c379aed2f7d5b2f82fc35f8",
"983b1815934cdcca7fc2af14ba6b199bc1bd591e60e2550c98702efa454b26e5",
"05e6e9c54e4da2adb0482b97bb4bbf1930ec229ea9266df0cbcc0d1847311ace",
"905830b92cb86d3fa457f8f6f9c839aa85f05cc76daaeb0ab1b44b86b2455a85",
"ff225f43ea5fef79d7565533e3e40c78d92c7547ce9c948a817f237ebef96ea3",
"533b27ac86fd52e44fa98b86cd96b65c60a3c0873eacc0a51a0e748df32131b6",
"017978d00b820a0cd38cfa904408e4271b0cacd56cfdee0bb7945cf875a2fb1e",
"59652dc55748c18aba7c575a2b41cd4128d0ab06809deaf553b725bacf13f60f",
"796494dcea0b9e1b1de25be0a8f6d6e7b1b87401ba606b269443898007a703fe",
"8b07e35fbd5831d66fe7f424cda4953acd3446917ac58f8469c511e77f0df40e",
"be8c2d187ebef266f75475c85125a7877acc19e70f4a45dfe14c31bfc349296f",
"a7d279cbfa959b5621b453c4d84e48033a79aa7da2cb85bb1f436ed2afd156ec",
"25477c0dad4e07def9d4a693fb410e9bf0b70531883b2dbbcfa7d5d6383deff9",
"a7d279cbfa959b5621b453c4d84e48033a79aa7da2cb85bb1f436ed2afd156ec",
"6c53d38e6caa9e1dfb08f2eb52659080611e45949b46627f47ab60fc4fb3a52e",
"ff20e643e1de23efaad7c274ffb68fa489e896151ec5b21064cfa6500ea62cc2",
"62dfa53f3ff9247583b48c9d1f431faaa8bceeed5bdf23558f7ce4a39039f5a4",
"ac36cd643420ab05628f3622de55a23291f77081c50e6ef1337487baea3360d1",
"df13445949901d9f43575ad8fd5005a490e9a2fa68e27e26e6ea6d4014b83635",
"7f015c5673eec28b83637794b24199fe3b630ac94e49085994435787bac995c4",
"07c69656044fb6ac4f57f0847be8230727f5258235b2106cbb0c15af86ffa444",
"1bba7ad14b8b976dcaf39a004b4c6cf677032648fdf98e4aae9bddc2ccd69c6f",
"afe907b872bbaa92da07b7cfe203763892061fca683637fe4df25666b28e97ee",
"9becd39f90077a5ab064681c0a1be139d15be9ce434bacd48cd1dc894d3911cb",
"7acaa0e07d37cdd814408145b1d0f2137eaf068ff716eee09f39c8e4625550fb",
"e7bedb6d2b70d4685d2cb084f23ac10b44aa2ce112d458f2d8134061a68f0bd9",
"1d1cfd19249c06adefa0ff104d3f5db7f48568993c540576ef1930210793c975") and
not process.thread.Ext.call_stack_final_user_module.path like ("?:\\program files (x86)\\*", "c:\\windows\\assembly\\nativeimages_*.ni.dll", "?:\\program files\\*")
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
process.thread.Ext.call_stack_final_user_module.hash.sha256 | in | 017978d00b820a0cd38cfa904408e4271b0cacd56cfdee0bb7945cf875a2fb1e, 05e6e9c54e4da2adb0482b97bb4bbf1930ec229ea9266df0cbcc0d1847311ace, 07c69656044fb6ac4f57f0847be8230727f5258235b2106cbb0c15af86ffa444, 18d1bae077da62bb5cf5bfa6a6c5c38ac9ade57f098ea2b357fab477e85f1c25, 1b5d9cec668335295c8e575bcedf4afcedbc445d8ccf8374c9380188965e78e3, 1bba7ad14b8b976dcaf39a004b4c6cf677032648fdf98e4aae9bddc2ccd69c6f, 1d1cfd19249c06adefa0ff104d3f5db7f48568993c540576ef1930210793c975, 25477c0dad4e07def9d4a693fb410e9bf0b70531883b2dbbcfa7d5d6383deff9, 2faef17891b413fd63fc34c019a22401cce33e11da3a788de787dccaed1238ec, 533b27ac86fd52e44fa98b86cd96b65c60a3c0873eacc0a51a0e748df32131b6, 59652dc55748c18aba7c575a2b41cd4128d0ab06809deaf553b725bacf13f60f, 6016f8944c4f2a47420474792ea88b4c49584529e8b257509249a5b7cb011a78, 62dfa53f3ff9247583b48c9d1f431faaa8bceeed5bdf23558f7ce4a39039f5a4, 69c45175ecfd25af023f96ac0bb2c45e6a95e3ba8a5a50ee7969ccab14825c44, 6c53d38e6caa9e1dfb08f2eb52659080611e45949b46627f47ab60fc4fb3a52e, 6ec60215507d4e671f743164a247362da212acd65f9e0cfb676abb0f9a428dfa, 72d2010ee14567e9d0c68c3411ba1bfee8b875ddbda6b5a467c28c9e83ebf557, 796494dcea0b9e1b1de25be0a8f6d6e7b1b87401ba606b269443898007a703fe, 7acaa0e07d37cdd814408145b1d0f2137eaf068ff716eee09f39c8e4625550fb, 7f015c5673eec28b83637794b24199fe3b630ac94e49085994435787bac995c4, 8b07e35fbd5831d66fe7f424cda4953acd3446917ac58f8469c511e77f0df40e, 905830b92cb86d3fa457f8f6f9c839aa85f05cc76daaeb0ab1b44b86b2455a85, 9176d1c98c87da7f22ef6e88b04669b84a952a506745e854bfabe56642ead659, 9709ff9eb1e712145214525d692bd46380099959597cb85bf9716c71385d6446, 983b1815934cdcca7fc2af14ba6b199bc1bd591e60e2550c98702efa454b26e5, 9a0c65932e4f71dd850e16c5e2830463745e65c4b25f0d0731fe3fc5b94104f6, 9becd39f90077a5ab064681c0a1be139d15be9ce434bacd48cd1dc894d3911cb, 9d3b9a942d4f7573f9f2f8197f3ca9254d483bd12226975476befe1c203544bb, a43a04d10b713edbc053a286a329c958b345d713153e52beeac73c99cb44a2c4, a79bfb466cabfef1a4faaf2eedbf0e823bf372f2a1f6f33e803702ff080f72f3, a7d279cbfa959b5621b453c4d84e48033a79aa7da2cb85bb1f436ed2afd156ec, ac36cd643420ab05628f3622de55a23291f77081c50e6ef1337487baea3360d1, afe907b872bbaa92da07b7cfe203763892061fca683637fe4df25666b28e97ee, be8c2d187ebef266f75475c85125a7877acc19e70f4a45dfe14c31bfc349296f, c8b1026e1c6dbeab082c587a796e5deffb0e0d04d9be52ff6e445a5d69a4e790, d842b440338e59201a4e2d32779768d0f892cd131eeca904e155bd063158f71a, dc98b14cbb25ef1937217da4fde5e2cc13f4702b31a6bc481d8de2bd87ac0525, df13445949901d9f43575ad8fd5005a490e9a2fa68e27e26e6ea6d4014b83635, e4494c9e346ab2c96feb4933521a1cbcc8e802b93c379aed2f7d5b2f82fc35f8, e7bedb6d2b70d4685d2cb084f23ac10b44aa2ce112d458f2d8134061a68f0bd9, f11e2c3e87d9f4531fb68664cfea76f7691f26986921f6b83b13d8a0531e673c, ff20e643e1de23efaad7c274ffb68fa489e896151ec5b21064cfa6500ea62cc2, ff225f43ea5fef79d7565533e3e40c78d92c7547ce9c948a817f237ebef96ea3 | excludes:process.thread.Ext.call_stack_final_user_module.hash.sha256 |
process.thread.Ext.call_stack_final_user_module.name | in | Kernel, Unknown | excludes:process.thread.Ext.call_stack_final_user_module.name field:"process.thread.Ext.call_stack_final_user_module.name" value:"Kernel" field:"process.thread.Ext.call_stack_final_user_module.name" value:"Unknown" |
process.thread.Ext.call_stack_final_user_module.path | wildcard | ?:\program files (x86)\*, c:\windows\assembly\nativeimages_*.ni.dll, ?:\program files\* | excludes:process.thread.Ext.call_stack_final_user_module.path field:"process.thread.Ext.call_stack_final_user_module.path" value:"?:\program files (x86)\*" field:"process.thread.Ext.call_stack_final_user_module.path" value:"c:\windows\assembly\nativeimages_*.ni.dll" field:"process.thread.Ext.call_stack_final_user_module.path" value:"?:\program files\*" |
process.thread.Ext.call_stack_final_user_module.protection_provenance | in | Kernel, Undetermined, Unknown | excludes:process.thread.Ext.call_stack_final_user_module.protection_provenance field:"process.thread.Ext.call_stack_final_user_module.protection_provenance" value:"Kernel" field:"process.thread.Ext.call_stack_final_user_module.protection_provenance" value:"Undetermined" field:"process.thread.Ext.call_stack_final_user_module.protection_provenance" value:"Unknown" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
process.Ext.api.behaviors | eq |
| field:"process.Ext.api.behaviors" kind:eq value:"allocate_shellcode" |
process.Ext.api.name | in |
| field:"process.Ext.api.name" kind:in |
process.Ext.api.parameters.size | eq |
| field:"process.Ext.api.parameters.size" kind:eq value:"0" |