DLL Sideloading 攻击检测实战指南:基于 Sysmon 与 MITRE T1574 的威胁狩猎方法论 📅 发布时间:2026/9/13 2:05:48 👁 浏览次数: DLL Sideloading 攻击检测实战指南基于 Sysmon 与 MITRE T1574 的威胁狩猎方法论【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills导读DLL Side-LoadingDLL 侧加载MITRE ATTCK T1574.002是 APT 组织在 Windows 环境中实现持久化、权限提升与防御规避的高频技术攻击者将恶意 DLL 植入到可信签名应用如 OneDrive、Teams、WerFault的加载路径中让合法进程替自己执行恶意代码。本文以 Anthropic-Cybersecurity-Skills 仓库中 DLL 侧加载检测技能 及其配套的狩猎模板、查询参考与检测脚本为核心完整讲解从 Sysmon Event ID 7 事件采集、Splunk/KQL 狩猎查询、签名与哈希校验到风险评分、Sigma 规则落地与结果归档的端到端威胁狩猎流程。读完本文你将掌握一套可复制、可运行的 DLL 侧加载检测与应急排查方案并理解其背后的 Windows DLL 搜索顺序原理与源码级实现细节。一、威胁背景为什么 DLL 侧加载如此隐蔽DLL Side-Loading 属于 T1574.002 Hijack Execution Flow: DLL Side-Loading攻击者并不需要破解任何签名——他们只是把恶意 DLL 放进合法程序本应去查找 DLL 的目录让签名应用的加载机制替自己完成执行。与之相关的技术还包括Technique名称说明T1574.001DLL Search Order Hijacking利用 DLL 搜索顺序植入恶意 DLLT1574.002DLL Side-Loading恶意 DLL 被合法签名应用加载T1574.006Dynamic Linker Hijacking动态链接器劫持T1574.008Path Interception by Search Order通过搜索顺序进行路径拦截T1574.009Path Interception by Unquoted Service Path未加引号服务路径劫持T1574.011Services Registry Permissions Weakness服务注册表权限弱点T1574.012COR_PROFILER通过 .NET 剖析器劫持从 MITRE ATTCK 战术角度看T1574.002 同时服务于Persistence (TA0003)、Privilege Escalation (TA0004)与Defense Evasion (TA0005)三大战术目标其平台为 Windows可用的数据源包括文件监控、DLL 监控与进程监控。仓库中的 MITRE 映射文档 也将其与启动器/根套件样本分析场景一并纳入技能矩阵。四种典型攻击场景结合 SKILL.md 的 Common Scenarios 与 standards.md 的已知易受攻击应用表实战中常见的利用方式有四种合法应用伪装Legitimate App Wrapper攻击者将签名应用如 OneDrive 更新器复制到临时目录并放置一个与预期依赖同名的恶意 DLL 放在旁边让合法外壳加载恶意代码Phantom DLL 利用Phantom DLL Exploitation合法应用会去搜索某个实际不存在的 DLLphantom DLL攻击者在该搜索路径中放置恶意 DLL 使其被需要DLL 代理加载DLL Proxy Loading恶意version.dll在DllMain中执行恶意代码的同时将所有导出函数转发给真正的version.dll保持功能兼容、行为隐蔽软件更新劫持Software Update Hijack在合法更新器加载之前先替换更新暂存目录中的 DLL。二、检测前提先建立监控基线在开始狩猎之前需要确认以下能力已就绪见 SKILL.md Prerequisites具备 DLL 加载监控能力的 EDRCrowdStrike Falcon、Microsoft Defender for Endpoint、SentinelOne 等Sysmon Event ID 7Image Loaded需开启哈希校验最好同时记录签名状态应用白名单或 DLL 完整性监控作为对比基线合法软件清单记录各应用及其 DLL 的预期路径代码签名验证能力如 Sysinternals Sigcheck。从数据源角度standards.md Detection Data Sources可用的关键事件包括数据源事件用途Sysmon Event 7Image Loaded带哈希与签名的 DLL 加载Sysmon Event 1Process Create应用启动位置Windows Security 4688Process Create命令行监控ETWDLL Load Events内核级 DLL 跟踪MDEDeviceImageLoadEventsDLL 加载遥测理解 Windows DLL 搜索顺序DLL 侧加载之所以成立根因在于 Windows 的 DLL 搜索顺序可执行文件所在目录或SetDllDirectory指定的目录System32 目录16 位系统目录Windows 目录当前工作目录PATH 环境变量中的目录。也就是说只要攻击者能把恶意 DLL 放到应用所在目录第一优先级或 PATH 中的任一位置就能比 System32 里的正版 DLL 更早被加载。这就是检测的核心抓手检查 DLL 实际加载路径是否偏离预期目录。三、狩猎模板从假设到结论的结构化产出仓库在 assets/template.md 中提供了一份可直接复用的狩猎模板它将一次完整的 DLL 侧加载狩猎组织为四个部分3.1 狩猎元数据Hunt Metadata字段值Hunt IDTH-SIDELOAD-YYYY-MM-DD-NNNAnalyst填写分析师Date填写日期Hunt ID 采用TH-SIDELOAD-日期-序号的命名约定与 SKILL.md 输出格式 中的TH-SIDELOAD-[DATE]-[SEQ]一致便于狩猎结果的归档与追溯。3.2 假设Hypothesis狩猎不是漫无目的地翻日志而是先提出可证伪的假设例如攻击者正在利用合法签名应用进行 DLL 侧加载以在不被发现的情况下执行恶意载荷。后续所有查询都应围绕验证或推翻该假设展开。3.3 发现清单Findings#HostApplicationSideloaded DLLDLL PathSignedRiskVerdict1逐条记录每个可疑 DLL 加载事件Verdict 列标记为 Confirmed / Suspicious / Benign。3.4 处置建议Recommendations模板给出三条标准建议方向Block隔离恶意 DLLHarden收紧应用目录权限、启用 DLL Safe Search ModeHKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchModeDetect为已知目标应用编写 Sysmon Event ID 7 检测规则。同时SKILL.md 输出格式 提供了一条结构化的摘要输出规范便于将单条发现固化为可复用的情报Hunt ID: TH-SIDELOAD-[DATE]-[SEQ] Technique: T1574.002 Host Application: [Legitimate signed executable] Sideloaded DLL: [Malicious DLL name and path] Expected DLL Path: [Where DLL should legitimately be] DLL Signed: [Yes/No] App Location: [Expected/Anomalous] Host: [Hostname] Risk Level: [Critical/High/Medium/Low]四、七步狩猎工作流SKILL.md 的 Workflow 定义了从情报研究到闭环处置的七个步骤这是整条检测链的主干识别侧加载目标研究已知的不带完整路径加载 DLL的易受攻击应用LOLBAS 项目、DLL sideload 数据库监控 DLL 加载事件查询 Sysmon Event ID 7关注 DLL 路径偏离应用预期目录的事件校验 DLL 签名标记签名可执行文件加载了未签名/不受信任的 DLL发现路径异常识别从非常规位置Temp、AppData、Public运行的合法可执行文件——它们可能是诱饵外壳哈希校验将加载的 DLL 哈希与已知良性版本、威胁情报源比对关联进程行为检查可疑 DLL 加载后宿主进程是否出现异常行为外联、子进程记录与处置报告侧加载实例、隔离恶意 DLL、更新检测规则。下面分阶段给出具体可执行的查询与命令。4.1 Phase 1Sysmon DLL 加载分析步骤 1.1 —— 签名应用加载未签名 DLL使用 workflows.md 提供的 Splunk SPLindexsysmon EventCode7 Signedfalse | where match(Image, (?i)\\(Program Files|Windows)\\) | where NOT match(ImageLoaded, (?i)\\(Windows|Program Files)\\) | stats count by Image ImageLoaded Signature Computer | sort -count这条查询的本质宿主进程Image位于可信目录而加载的 DLLImageLoaded却不在可信目录——正是侧加载的特征组合。步骤 1.2 —— DLL 从异常目录加载indexsysmon EventCode7 | where match(ImageLoaded, (?i)(\\temp\\|\\appdata\\|\\public\\|\\downloads\\)) | where Signedfalse OR Signature? | stats count by Image ImageLoaded Computer User | sort -countTemp、AppData、Public、Downloads是恶意 DLL 的典型藏身处一旦与未签名/签名状态未知组合出现优先级应立刻提高。步骤 1.3 —— MDE KQL 查询针对 Microsoft Defender for Endpoint 的 KQL 查询直接对已知高危进程名进行筛选DeviceImageLoadEvents | where Timestamp ago(7d) | where InitiatingProcessFileName in~ (OneDriveUpdater.exe,DismHost.exe,WerFault.exe) | where not(FolderPath startswith C:\\Windows or FolderPath startswith C:\\Program Files) | project Timestamp, DeviceName, InitiatingProcessFileName, FolderPath, FileName, SHA256注意这里同时使用了进程名白名单式聚焦已知被滥用的更新器/错误处理进程与路径排除排除标准目录两层过滤。4.2 Phase 2合法应用运行在错误位置用 Sysmon Event 1进程创建找出从非标准路径启动的可信二进制workflows.md 步骤 2.1indexsysmon EventCode1 | where NOT match(Image, (?i)^(C:\\Windows|C:\\Program Files)) | where match(Image, (?i)(svchost|explorer|rundll32|dllhost|OneDrive|Teams)\.exe$) | table _time Computer User Image CommandLine ParentImage Hashessvchost、explorer、rundll32、dllhost、OneDrive、Teams这类耳熟能详的进程名若从 Temp、Public 等目录启动大概率是被复制的诱饵外壳——这一步恰好印证了 Phase 1 中路径异常的进程侧视角。4.3 Phase 3基于哈希的已知恶意检测将加载的 DLL 哈希与威胁情报比对workflows.md 步骤 3.1indexsysmon EventCode7 | rex fieldHashes SHA256(?sha256[A-Fa-f0-9]{64}) | lookup threat_intel_hashes sha256 OUTPUT malware_family confidence | where isnotnull(malware_family) | table _time Computer Image ImageLoaded sha256 malware_family4.4 Phase 4行为关联DLL 加载之后发生了什么才是判定恶意与否的关键。将未签名 DLL 加载事件与其后 的网络外联Event Code 3关联workflows.md 步骤 4.1indexsysmon EventCode7 Signedfalse | rename Image as proc_image | join proc_image Computer [ search indexsysmon EventCode3 | rename Image as proc_image | where NOT match(DestinationIp, ^(10\.|172\.|192\.168\.)) ] | table _time Computer proc_image ImageLoaded DestinationIp DestinationPort过滤掉 RFC1918 私网地址后剩余的外联目的地即具备明显的高风险信号。五、Sysmon Event ID 7 数据结构与日志解析5.1 关键字段api-reference.md 给出了 Event ID 7 事件的核心 XML 结构EventID7/EventID Data NameImageC:\Users\victim\app\signed.exe/Data Data NameImageLoadedC:\Users\victim\app\malicious.dll/Data Data NameSignedfalse/Data Data NameSignatureStatusUnavailable/Data Data NameHashesSHA256abc123.../Data字段含义字段含义检测价值Image发起加载的进程路径判断宿主进程是否可信ImageLoaded被加载的 DLL 路径判断 DLL 是否来自异常目录SignedDLL 是否签名未签名 签名宿主 核心告警SignatureStatus签名验证状态如 Unavailable、Valid补充可信度判断Hashes文件哈希SHA256 等与情报库/已知良性版本比对5.2 用 python-evtx 离线解析 EVTX 日志当无法直接查询 EDR/SIEM 时可离线解析 Sysmon 的.evtx文件api-reference.mdimport Evtx.Evtx as evtx with evtx.Evtx(Sysmon.evtx) as log: for record in log.records(): xml record.xml() # Filter EventID 7, check Signedfalse, non-standard path依赖安装pip install python-evtx。5.3 Sigma 检测规则字段面向 SIEM 的 Sigma 规则 骨架如下logsource: product: windows category: image_load detection: selection: EventID: 7 Signed: false filter: ImageLoaded|startswith: - C:\\Windows\\System32\\ - C:\\Program Files\\其逻辑与 Phase 1 的 SPL 完全一致selection未签名 DLL 加载命中、filter标准目录排除最终条件为命中选择且不在过滤集合内。六、源码级实现仓库检测脚本深度解析仓库为这套方法论提供了两个可直接运行的 Python 检测脚本是理解整套检测逻辑底层实现的最佳注脚。6.1 agent.pySysmon 事件解析器与规则生成器scripts/agent.py 的核心能力有三块1内置已知侧加载目标对KNOWN_SIDELOAD_TARGETSKNOWN_SIDELOAD_TARGETS { vmwaretray.exe: [vmtools.dll], colorcpl.exe: [colorui.dll], searchprotocolhost.exe: [msfte.dll], consent.exe: [comctl32.dll], dxcap.exe: [d3d9.dll], eventvwr.exe: [mmc.dll], msdeploy.exe: [microsoft.web.deployment.dll], bginfo.exe: [version.dll], winword.exe: [wwlib.dll], teams.exe: [version.dll], }这份映射正是 Phase 0识别侧加载目标情报的代码化落地。2标准 DLL 目录白名单STANDARD_DLL_DIRSSTANDARD_DLL_DIRS { rc:\windows\system32, rc:\windows\syswow64, rc:\windows\winsxs, rc:\program files, rc:\program files (x86), }3风险判定逻辑parse_sysmon_dll_loads对每条 Event ID 7 事件提取Image、ImageLoaded、Signed、SignatureStatus、Hashes与SystemTime当Signed false且 DLL 目录不在标准目录时判定为发现并给出分级若宿主进程 DLL 命中已知侧加载目标对 →CRITICAL否则 →HIGH。同时还会输出known_sideload_target、non_standard_path等标记字段与 MITRE 技术编号T1574.002便于后续格式化输出。scan_directory_for_sideloading则面向磁盘目录扫描在指定目录内同时存在已知目标 EXE 与对应 DLL如bginfo.exeversion.dll时直接标记为 CRITICAL 的已知侧加载对。这非常适合对可疑目录如感染机的 Downloads做快速静态排查。generate_sigma_rule会程序化生成一条 Sigma 规则其内容与 5.3 节的骨架对应detection: { selection: {EventID: 7, Signed: false}, filter_standard: {ImageLoaded|startswith: [ C:\\Windows\\System32\\, C:\\Windows\\SysWOW64\\, C:\\Program Files\\, C:\\Program Files (x86)\\ ]}, condition: selection and not filter_standard }命令行用法api-reference.md CLI Usagepython agent.py --sysmon-log Sysmon.evtx python agent.py --scan-dir C:\Users\victim\Downloads\app\ python agent.py --generate-sigma三个参数对应三种模式解析 EVTX 日志、扫描目录、生成 Sigma 规则结果以 JSON 输出。6.2 process.py多源日志归一化与风险评分引擎scripts/process.py 是更通用的狩猎引擎设计上兼容不同来源的日志多格式输入parse_logs支持 JSON 与 CSV 两种日志格式字段归一化normalize_event把不同来源的字段名如EventCode/EventID、ImageLoaded/FileName/FolderPath、Computer/DeviceName统一映射为内部标准字段这正是跨 EDR、跨 SIEM 复用的关键设计风险评分detect_sideloading采用累加式风险计分检测信号加分DLL 命中已知侧加载目标且位于非标准路径40加载未签名 DLL20DLL 位于可疑路径Temp/Public/Downloads/Desktop 等25宿主应用本身位于可疑路径20风险分级阈值risk 70 → CRITICAL 50 → HIGH 30 → MEDIUM否则LOW。run_hunt会输出sideload_findings.json包含hunt_id格式即TH-SIDELOAD-日期、total_events与按风险分数降序排列的 findings 列表。CLI 提供了hunt子命令--input/-i与--output/-o输出目录默认为./sideload_output以及queries子命令用于快速打印 Sysmon 查询语句python process.py hunt -i sysmon_events.json -o ./hunt_results python process.py queries6.3 两个脚本的分工从源码结构看agent.py 偏单点解析——直接读取 EVTX 原始日志并按规则标记process.py 偏批量狩猎——归一化多源日志、累加评分、按风险排序归档。两者共用同一套已知目标 标准路径 签名/哈希检测哲学分别适用于实时监控告警和事后批量狩猎两个场景。七、已知侧加载目标与高频滥用应用清单7.1 经典侧加载目标EXE 易被劫持 DLLapi-reference.md 已知目标表Legitimate ExecutableVulnerable DLLvmwaretray.exevmtools.dllcolorcpl.execolorui.dllconsent.execomctl32.dllbginfo.exeversion.dllteams.exeversion.dllwinword.exewwlib.dll7.2 被 APT 高频滥用的应用standards.md 已知易受攻击应用表ApplicationVulnerable DLLVendorNotesOneDriveUpdater.exeversion.dllMicrosoft被 APT 频繁滥用Teams.exeCRYPTSP.dllMicrosoft侧加载目标DismHost.exedismcore.dllMicrosoft签名二进制侧加载MpCmdRun.exempclient.dllMicrosoft杀软二进制滥用WerFault.exedbgcore.dllMicrosoft错误处理器滥用GrammarlyVariousGrammarly用户态应用ZoomVariousZoom会议应用process.py 的KNOWN_SIDELOAD_TARGETS如version.dll → OneDriveUpdater.exe/Grammarly.exe、cryptsp.dll → Teams.exe、dismcore.dll → DismHost.exe、mpclient.dll → MpCmdRun.exe、dbgcore.dll → WerFault.exe正是以DLL 名 → 滥用它的应用的反向视角组织的与 agent.py 的正向视角应用 → DLL互补可交叉验证。八、工具链速查SKILL.md Tools Systems 归纳了整套检测工具链工具用途SysmonEvent ID 7 DLL 加载监控CrowdStrike Falcon带进程上下文的 DLL 加载检测Microsoft Defender for EndpointDLL 加载异常检测Process Monitor实时 DLL 加载追踪DLL Export Viewer校验 DLL 导出函数Sigcheck数字签名验证pe-sieve代理型 DLL 的 PE 分析工具分工清晰采集靠 Sysmon/MDE 遥测验证靠 Sigcheck/DLL Export Viewer深度分析靠 Process Monitor 与 pe-sieve平台化检测则落在 CrowdStrike/MDE/SentinelOne 等 EDR 上。九、将狩猎闭环固化为持续检测一次成功的狩猎不应止步于报告几条发现。从模板的 Recommendations 出发建议按以下顺序闭环阻断Block对确认的恶意 DLL 做哈希与路径级隔离联动 EDR 快速处置加固Harden收紧应用安装目录的写权限对目录权限异常如 Everyone/Users 可写的应用目录优先整改评估启用 DLL Safe Search Mode检测Detect把本次狩猎验证有效的查询固化为持续规则——Splunk 保存为告警搜索MDE 保存为自定义检测Sigma 规则可转换为各 SIEM 平台原语反馈Feedback将新发现的应用 DLL组合回填到已知目标清单对应 agent.py 的 KNOWN_SIDELOAD_TARGETS 与 process.py 的 KNOWN_SIDELOAD_TARGETS让检测知识库随狩猎持续生长。十、局限性与适用前提本方案的核心假设是Sysmon Event ID 7 已开启且哈希/签名数据完整若未部署 Sysmon需依赖 EDR 的等效 DLL 加载遥测如 MDEDeviceImageLoadEvents未签名 DLL 由签名应用加载并非 100% 恶意——部分第三方插件、驱动也可能触发误报需要结合应用清单与行为关联Phase 4综合研判高级攻击者会通过 DLL 代理Proxy保持导出函数完整静态签名与导出检查可能失效此时行为侧网络外联、进程注入的信号更为关键本文引用的目标应用清单OneDrive、Teams 等来源于仓库技能文档属于公开已知的常见目标实际检测时应结合本企业软件资产清单动态维护而非视为穷尽列表。整套检测技能遵循 Apache-2.0 许可见 技能目录 LICENSE可在遵守许可的前提下直接复用模板、查询与脚本。通过模板化产出 查询驱动狩猎 脚本化评分 规则固化的组合DLL 侧加载检测不再是依赖个别人经验的手工作坊而是一套可审计、可演进、可自动化的防御工程能力。【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATTCK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI 20 platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考