detecting-t1055-process-injection-with-sysmon
通过分析 Sysmon 事件中的跨进程内存操作、远程线程创建和异常 DLL 加载模式,检测进程注入技术(T1055),包括经典 DLL 注入、进程镂空和 APC 注入。
Best use case
detecting-t1055-process-injection-with-sysmon is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
通过分析 Sysmon 事件中的跨进程内存操作、远程线程创建和异常 DLL 加载模式,检测进程注入技术(T1055),包括经典 DLL 注入、进程镂空和 APC 注入。
Teams using detecting-t1055-process-injection-with-sysmon should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/detecting-t1055-process-injection-with-sysmon/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How detecting-t1055-process-injection-with-sysmon Compares
| Feature / Agent | detecting-t1055-process-injection-with-sysmon | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
通过分析 Sysmon 事件中的跨进程内存操作、远程线程创建和异常 DLL 加载模式,检测进程注入技术(T1055),包括经典 DLL 注入、进程镂空和 APC 注入。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 使用 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.015 | ListPlanting |
| Sysmon 事件 8 | 检测到 CreateRemoteThread |
| Sysmon 事件 10 | 带内存写权限的 ProcessAccess |
| Sysmon 事件 25 | ProcessTampering(镜像不匹配) |
| 访问掩码 0x1FFFFF | PROCESS_ALL_ACCESS——完全跨进程控制 |
## 工具与系统
| 工具 | 用途 |
|------|------|
| Sysmon | 注入检测的主要遥测来源 |
| Process Hacker | 手动检查进程内存区域 |
| PE-sieve | 扫描运行中进程中的镂空/注入代码 |
| Moneta | 检测进程中的异常内存区域 |
| Splunk / Elastic | SIEM 关联 Sysmon 事件 |
| Volatility | 注入工件的内存取证 |
| Hollows Hunter | 自动扫描被镂空的进程 |
## 检测查询
### Splunk——远程线程创建
```spl
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 模式
```spl
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——通过远程线程进行进程注入
```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 规则——进程注入检测
```yaml
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]
```Related Skills
testing-for-xxe-injection-vulnerabilities
在授权的渗透测试中发现和利用 XML 外部实体(XXE)注入漏洞,以读取服务器文件、执行 SSRF 并外泄数据。
testing-for-xml-injection-vulnerabilities
测试 Web 应用程序中的 XML 注入漏洞,包括 XXE(XML 外部实体注入)、XPath 注入和 XML 实体攻击,以识别数据泄露和服务器端请求伪造(SSRF)风险。
testing-for-host-header-injection
测试 Web 应用程序的 HTTP Host 头部注入漏洞,以识别密码重置中毒、Web 缓存投毒、SSRF 以及虚拟主机路由操控风险。
testing-for-email-header-injection
测试 Web 应用程序邮件功能中的 SMTP 头部注入漏洞,这些漏洞允许攻击者注入额外的邮件头部、修改收件人,并通过联系表单实施垃圾邮件中继。
processing-stix-taxii-feeds
处理通过 TAXII 2.1 服务器分发的 STIX 2.1 威胁情报包,将对象规范化为平台原生模式并路由到相应消费系统。适用于接入新的 TAXII 集合端点、自动化与 ISAC 的双向情报共享,或为格式错误的 STIX 包构建管道验证。当涉及 OASIS STIX、TAXII 服务器配置、MISP TAXII 或 Cortex XSOAR 情报源集成时激活。
performing-packet-injection-attack
在授权安全评估中使用 Scapy、hping3 和 Nemesis 构造并注入自定义网络数据包, 测试防火墙规则、IDS 检测、协议处理能力以及网络协议栈对畸形和伪造流量的抵御能力。
hunting-for-process-injection-techniques
通过 Sysmon 事件 ID 8 和 10 以及 EDR 进程遥测,检测进程注入技术(T1055),包括 CreateRemoteThread、进程空洞化和 DLL 注入。
exploiting-template-injection-vulnerabilities
检测并利用 Jinja2、Twig、Freemarker 等模板引擎中的服务器端模板注入(SSTI)漏洞,实现远程代码执行。
exploiting-sql-injection-with-sqlmap
在授权渗透测试中使用 sqlmap 检测并利用 SQL 注入漏洞以提取数据库内容。
exploiting-sql-injection-vulnerabilities
在授权渗透测试中,使用手动技术和 sqlmap 等自动化工具识别并利用 Web 应用程序中的 SQL 注入漏洞。测试人员通过基于错误、基于联合、布尔盲注和时间盲注技术,在所有主要数据库引擎(MySQL、PostgreSQL、MSSQL、Oracle)中检测注入点,以演示数据提取、认证绕过和潜在的远程代码执行。
exploiting-nosql-injection-vulnerabilities
检测并利用 MongoDB、CouchDB 和其他 NoSQL 数据库中的 NoSQL 注入漏洞,以演示身份验证绕过、数据提取和未授权访问风险。
exploiting-api-injection-vulnerabilities
通过 API 参数、请求头和请求体,测试 API 的注入漏洞,包括 SQL 注入、NoSQL 注入、操作系统命令注入、LDAP 注入和服务端请求伪造(SSRF)。测试人员针对不同的后端技术和注入上下文构造恶意载荷,以提取数据、执行命令或访问内部服务。对应 OWASP API8:2023 安全错误配置和 API7:2023 SSRF。适用于 API 注入测试、API 中的 SQL 注入、NoSQL 注入、SSRF 测试或 API 输入验证评估等请求场景。