Skip to content

Commit be05bab

Browse files
committed
feat(rules): New .NET assembly loaded by unmanaged process rule
Identifies the loading of the .NET assembly by an unmanaged process. Adversaries can load the CLR runtime inside unmanaged process and execute the assembly via the ICLRRuntimeHost::ExecuteInDefaultAppDomain method.
1 parent 6a9a120 commit be05bab

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: .NET assembly loaded by unmanaged process
2+
id: 34be8bd1-1143-4fa8-bed4-ae2566b1394a
3+
version: 1.0.0
4+
description: |
5+
Identifies the loading of the .NET assembly by an unmanaged process. Adversaries can load the CLR runtime
6+
inside unmanaged process and execute the assembly via the ICLRRuntimeHost::ExecuteInDefaultAppDomain method.
7+
labels:
8+
tactic.id: TA0005
9+
tactic.name: Defense Evasion
10+
tactic.ref: https://attack.mitre.org/tactics/TA0005/
11+
technique.id: T1055
12+
technique.name: Process Injection
13+
technique.ref: https://attack.mitre.org/techniques/T1055/
14+
references:
15+
- https://detect.fyi/exploring-execute-assembly-a-deep-dive-into-in-memory-threat-execution-60adc61aef8
16+
- https://www.ired.team/offensive-security/code-injection-process-injection/injecting-and-executing-.net-assemblies-to-unmanaged-process
17+
18+
condition: >
19+
(load_unsigned_or_untrusted_module) and pe.is_dotnet = false
20+
and
21+
(image.is_dotnet or thread.callstack.modules imatches ('*clr.dll'))
22+
and
23+
not
24+
image.name imatches
25+
(
26+
'?:\\Windows\\assembly\\*\\*.ni.dll',
27+
'?:\\Program Files\\WindowsPowerShell\\Modules\\*\\*.dll',
28+
'?:\\Windows\\Microsoft.NET\\assembly\\*\\*.dll'
29+
)
30+
31+
output: >
32+
.NET assembly %image.name loaded by unmanaged process %ps.exe
33+
severity: high
34+
35+
min-engine-version: 2.3.0

0 commit comments

Comments
 (0)