mcpField
D
detecting-t1055-process-injection-with-sysmon

detecting-t1055-process-injection-with-sysmon

github.com/mukul975安全35.2k42 次安装8 周前更新
代码仓库

关于 detecting-t1055-process-injection-with-sysmon

面向 Windows 安全分析人员的 Sysmon 进程注入狩猎技能,涵盖多类注入行为的事件分析、关联与 ATT&CK 子技术分类。

主要功能

  1. 01分析 Sysmon 事件 8、10、7 和 25
  2. 02关联进程创建事件构建攻击链
  3. 03识别可疑 DLL 加载与跨进程访问
  4. 04分类多种 ATT&CK 注入子技术
  5. 05提供 Splunk 与 KQL 查询示例

适用场景

  1. 01调查可疑远程线程或内存访问告警
  2. 02排查注入到系统进程中的恶意代码
  3. 03验证 Sysmon 对进程注入的监测覆盖

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill detecting-t1055-process-injection-with-sysmon

安装后在 Claude Code 中输入/detecting-t1055-process-injection-with-sysmon确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
assets/
template.md
references/
api-reference.md
standards.md
workflows.md
scripts/
agent.py
process.py

详细介绍

使用 Sysmon 检测 T1055 进程注入

适用场景

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

前提条件

  • 已部署 Sysmon,并配置了可捕获事件 1、7、8、10、25 的全面配置
  • 已启用事件 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动态链接库注入
T1055.002可移植可执行文件注入
T1055.003线程执行劫持
T1055.004异步过程调用(APC)注入
T1055.005线程本地存储
T1055.012进程镂空
T1055.013进程双面伪装
T1055.015ListPlanting
Sysmon 事件 8检测到 CreateRemoteThread
Sysmon 事件 10具有内存写入权限的 ProcessAccess
Sysmon 事件 25ProcessTampering(映像不匹配)
访问掩码 0x1FFFFFPROCESS_ALL_ACCESS——完全的跨进程控制

工具与系统

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

检测查询

Splunk——远程线程创建
index=sysmon EventCode=8
| where SourceImage!=TargetImage
| where NOT match(SourceImage, "(?i)(csrss|lsass|services|svchost|MsMpEng|SecurityHealthService|vmtoolsd)\.exe$")
| eval suspicious=if(match(TargetImage, "(?i)(svchost|explorer|lsass|winlogon|csrss|services)\.exe$"), "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)\.exe$")
| where NOT match(SourceImage, "(?i)(MsMpEng|csrss|services|svchost|taskmgr|procexp)\.exe$")
| 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: [Hostname]
Source Process: [Injecting process path]
Source PID: [Process ID]
Target Process: [Target process path]
Target PID: [Process ID]
Injection Type: [DLL/Shellcode/Hollowing/APC]
Sysmon Events: [Event IDs triggered]
Access Mask: [Granted access value]
Risk Level: [Critical/High/Medium/Low]
ATT&CK Sub-Technique: [T1055.xxx]

评论

支持 Markdown