# Detecting Dll Sideloading Attacks

> 检测 DLL 侧加载攻击，攻击者将恶意 DLL 放置在合法应用程序旁以劫持执行流程，实现防御规避。

- Skill: `killvxk/detecting-dll-sideloading-attacks` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/detecting-dll-sideloading-attacks`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/detecting-dll-sideloading-attacks/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/detecting-dll-sideloading-attacks

---


# 检测 DLL 侧加载攻击

## 适用场景

- 调查企业环境中潜在的 DLL 劫持时
- EDR 告警显示已签名应用程序加载未签名 DLL 后
- 狩猎使用合法应用程序包装器进行 APT 持久化时
- 事件响应期间识别木马化应用程序时
- 威胁情报表明 DLL 侧加载活动针对特定软件时

## 前置条件

- 具备 DLL 加载监控功能的 EDR（CrowdStrike、MDE、SentinelOne）
- 带哈希验证的 Sysmon 事件 ID 7（镜像加载）
- 应用程序白名单或 DLL 完整性监控
- 合法应用程序及预期 DLL 路径的软件清单
- 代码签名验证能力

## 工作流程

1. **识别侧加载目标**：研究已知存在漏洞的、不使用完整路径限定加载 DLL 的应用程序（LOLBAS、DLL 侧加载数据库）。
2. **监控 DLL 加载事件**：查询 Sysmon 事件 ID 7，查找 DLL 路径与应用程序预期目录不同的 DLL 加载。
3. **检查 DLL 签名**：标记由已签名可执行文件加载的未签名或不受信任的 DLL。
4. **检测路径异常**：识别从异常位置（Temp、AppData、Public）运行的合法可执行文件，这些可能是诱饵包装器。
5. **哈希验证**：将加载的 DLL 哈希与已知良好版本和威胁情报 feeds 进行比对。
6. **与进程行为关联**：检查宿主进程在加载可疑 DLL 后是否表现出异常行为（网络连接、子进程）。
7. **记录与修复**：报告侧加载实例，隔离恶意 DLL，并更新检测规则。

## 核心概念

| 概念 | 描述 |
|------|------|
| T1574.002 | DLL 侧加载（DLL Side-Loading） |
| T1574.001 | DLL 搜索顺序劫持 |
| T1574.006 | 动态链接器劫持 |
| T1574.008 | 通过搜索顺序劫持进行路径拦截 |
| DLL 搜索顺序 | Windows DLL 加载优先级路径 |
| 侧加载 | 将恶意 DLL 放置在合法应用程序加载的位置 |
| 幻影 DLL | 合法应用程序尝试加载但不存在的 DLL |
| DLL 代理 | 恶意 DLL 将调用转发给合法 DLL |

## 工具与系统

| 工具 | 用途 |
|------|------|
| Sysmon | 事件 ID 7 DLL 加载监控 |
| CrowdStrike Falcon | 带进程上下文的 DLL 加载检测 |
| Microsoft Defender for Endpoint | DLL 加载异常检测 |
| Process Monitor | 实时 DLL 加载跟踪 |
| DLL Export Viewer | 验证 DLL 导出函数 |
| Sigcheck | 数字签名验证 |
| pe-sieve | 代理 DLL 的 PE 分析 |

## 常见场景

1. **合法应用程序包装器**：攻击者将已签名应用程序（如 OneDrive 更新程序）复制到临时文件夹，并在旁边放置与预期依赖项同名的恶意 DLL。
2. **幻影 DLL 利用**：恶意 DLL 被放置在 PATH 路径中，合法应用程序在此处搜索不存在的 DLL。
3. **DLL 代理加载**：恶意 version.dll 将所有导出代理到真实的 version.dll，同时在 DllMain 中执行恶意代码。
4. **软件更新劫持**：攻击者在合法更新程序加载之前，替换更新暂存目录中的 DLL。

## 输出格式

```
Hunt ID: TH-SIDELOAD-[DATE]-[SEQ]
Technique: T1574.002
Host Application: [合法已签名可执行文件]
Sideloaded DLL: [恶意 DLL 名称和路径]
Expected DLL Path: [DLL 应合法所在的位置]
DLL Signed: [是/否]
App Location: [预期/异常]
Host: [主机名]
Risk Level: [Critical/High/Medium/Low]
```

