L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

detecting-t1055-process-injection-with-sysmon

detecting-t1055-process-injection-with-sysmon

通过分析 Sysmon 事件中的跨进程内存操作、远程线程创建和异常 DLL 加载模式,检测进程注入技术(T1055),包括经典 DLL 注入、进程镂空和 APC 注入。

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: detecting-t1055-process-injection-with-sysmon description: 通过分析 Sysmon 事件中的跨进程内存操作、远程线程创建和异常 DLL 加载模式,检测进程注入技术(T1055),包括经典 DLL 注入、进程镂空和 APC 注入。 domain: cybersecurity subdomain: threat-hunting tags: [threat-hunting, process-injection, sysmon, mitre-t1055, defense-evasion, dll-injection, process-hollowing] version: "1.0" author: mahipal license: Apache-2.0

使用 Sysmon 检测 T1055 进程注入

适用场景

  • 狩猎将恶意代码隐藏在合法进程中的防御规避技术时
  • EDR 告警可疑的跨进程内存访问或远程线程创建后
  • 调查向 svchost.exe、explorer.exe 或其他系统进程注入的恶意软件时
  • 紫队演练测试进程注入变体检测时
  • 验证 Sysmon 配置的注入检测覆盖范围时

前置条件

  • 部署了捕获事件 1、7、8、10、25 的完整配置 Sysmon
  • 已启用事件 ID 8(CreateRemoteThread)用于远程线程检测
  • 已配置适当访问掩码过滤器的事件 ID 10(ProcessAccess)
  • 事件 ID 7(ImageLoaded)用于 DLL 注入检测
  • Sysmon 13+ 的事件 ID 25(ProcessTampering)用于进程镂空检测
  • 用于关联和告警的 SIEM 平台

工作流程

  1. 监控 CreateRemoteThread(事件 8):检测进程在另一个进程地址空间中创建线程的行为。这是经典 DLL 注入和 shellcode 注入的主要指标。
  2. 分析 ProcessAccess(事件 10):追踪带有 PROCESS_VM_WRITE(0x0020)、PROCESS_VM_OPERATION(0x0008)和 PROCESS_CREATE_THREAD(0x0002)访问权限的跨进程句柄请求。合法进程很少需要对其他进程使用这些权限。
  3. 检测异常 DLL 加载(事件 7):识别从非常规路径(用户临时目录、下载文件夹)加载到系统进程的 DLL。
  4. 狩猎进程镂空(事件 25):Sysmon 13+ 在内存中的可执行映像与磁盘映射文件不一致时生成 ProcessTampering 事件——这是进程镂空(T1055.012)的标志性特征。
  5. 与进程创建关联:将注入事件与原始进程创建(事件 1)相连接,构建从初始执行到注入的完整攻击链。
  6. 过滤已知合法的跨进程活动:排除执行跨进程操作的合法软件(调试器、AV 产品、辅助功能工具、RMM agent)。
  7. 映射到 ATT&CK 子技术:将检测到的注入分类为经典注入(T1055.001)、PE 注入(T1055.002)、线程执行劫持(T1055.003)、APC 注入(T1055.004)、线程本地存储(T1055.005)、进程镂空(T1055.012)或进程替身(T1055.013)。

核心概念

概念描述
T1055.001动态链接库注入(DLL 注入)
T1055.002可移植可执行文件注入(PE 注入)
T1055.003线程执行劫持
T1055.004异步过程调用(APC)注入
T1055.005线程本地存储
T1055.012进程镂空(Process Hollowing)
T1055.013进程替身(Process Doppelganging)
T1055.015ListPlanting
Sysmon 事件 8检测到 CreateRemoteThread
Sysmon 事件 10带内存写权限的 ProcessAccess
Sysmon 事件 25ProcessTampering(镜像不匹配)
访问掩码 0x1FFFFFPROCESS_ALL_ACCESS——完全跨进程控制

工具与系统

工具用途
Sysmon注入检测的主要遥测来源
Process Hacker手动检查进程内存区域
PE-sieve扫描运行中进程中的镂空/注入代码
Moneta检测进程中的异常内存区域
Splunk / ElasticSIEM 关联 Sysmon 事件
Volatility注入工件的内存取证
Hollows Hunter自动扫描被镂空的进程

检测查询

Splunk——远程线程创建

index=sysmon EventCode=8
| where SourceImage!=TargetImage
| where NOT match(SourceImage, "(?i)(csrss|lsass|services|svchost|MsMpEng|SecurityHealthService|vmtoolsd)\.exequot;)
| eval suspicious=if(match(TargetImage, "(?i)(svchost|explorer|lsass|winlogon|csrss|services)\.exequot;), "high_value_target", "normal_target")
| where suspicious="high_value_target"
| table _time Computer SourceImage SourceProcessId TargetImage TargetProcessId StartFunction NewThreadId

Splunk——可疑的 ProcessAccess 模式

index=sysmon EventCode=10
| where SourceImage!=TargetImage
| where match(GrantedAccess, "(0x1FFFFF|0x1F3FFF|0x143A|0x0040)")
| where match(TargetImage, "(?i)(lsass|svchost|explorer|winlogon)\.exequot;)
| where NOT match(SourceImage, "(?i)(MsMpEng|csrss|services|svchost|taskmgr|procexp)\.exequot;)
| table _time Computer SourceImage TargetImage GrantedAccess CallTrace

KQL——通过远程线程进行进程注入

DeviceEvents
| where Timestamp > ago(7d)
| where ActionType == "CreateRemoteThreadApiCall"
| where InitiatingProcessFileName !in~ ("csrss.exe", "lsass.exe", "services.exe", "svchost.exe")
| where FileName in~ ("svchost.exe", "explorer.exe", "lsass.exe", "winlogon.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
    FileName, ProcessCommandLine

Sigma 规则——进程注入检测

title: Process Injection via CreateRemoteThread into System Process
status: stable
logsource:
    product: windows
    category: create_remote_thread
detection:
    selection:
        TargetImage|endswith:
            - '\svchost.exe'
            - '\explorer.exe'
            - '\lsass.exe'
            - '\winlogon.exe'
    filter_legitimate:
        SourceImage|endswith:
            - '\csrss.exe'
            - '\lsass.exe'
            - '\services.exe'
            - '\MsMpEng.exe'
    condition: selection and not filter_legitimate
level: high
tags:
    - attack.defense_evasion
    - attack.t1055

常见场景

  1. 经典 DLL 注入:恶意软件使用 VirtualAllocEx + WriteProcessMemory + CreateRemoteThread 将恶意 DLL 加载到目标进程。通过 Sysmon 事件 8 检测。
  2. 进程镂空(RunPE):攻击者创建挂起进程,取消映射其镜像,写入恶意 PE 文件并恢复执行。通过 Sysmon 事件 25 检测。
  3. APC 注入:恶意软件使用 QueueUserAPC 向目标进程的线程排队异步过程调用。较难检测,需要事件 10 监控。
  4. 反射式 DLL 注入:DLL 直接从内存加载而不接触磁盘,绕过 ImageLoaded 检测。需要内存级分析。
  5. 进程替身(Process Doppelganging):利用 NTFS 事务替换合法进程映像。通过进程完整性检查检测。

输出格式

Hunt ID: TH-INJECT-[DATE]-[SEQ]
Host: [主机名]
Source Process: [注入进程路径]
Source PID: [进程 ID]
Target Process: [目标进程路径]
Target PID: [进程 ID]
Injection Type: [DLL/Shellcode/Hollowing/APC]
Sysmon Events: [触发的事件 ID]
Access Mask: [授予的访问值]
Risk Level: [Critical/High/Medium/Low]
ATT&CK Sub-Technique: [T1055.xxx]
Skills enregistrées