用 Yara 对红队工具 "打标"
字数 1014 2025-08-06 18:07:51
YARA规则编写:红队工具特征提取与扫描指南
1. YARA简介
YARA是一个强大的模式匹配工具,主要用于恶意软件研究和检测。它允许创建基于文本或二进制模式的描述规则,这些规则可以用来识别和分类恶意软件样本。
核心特点:
- 基于模式匹配的规则语言
- 支持字符串、十六进制和正则表达式模式
- 跨平台支持(Windows/Linux/macOS)
- 高性能扫描能力
2. 红队工具特征提取方法论
2.1 二进制特征提取
-
固定字符串识别:
- 查找工具中不变的字符串(如版权信息、错误消息、特定函数名)
- 示例:Cobalt Strike的默认证书"SecureNet Consulting"
-
二进制模式匹配:
- 识别独特的字节序列
- 查找PE文件头中的特定结构
-
资源段分析:
- 检查图标、版本信息等资源
- 提取独特的资源特征
2.2 行为特征提取
-
网络通信特征:
- C2服务器通信模式
- 特定HTTP头或URI结构
-
进程行为:
- 特定进程创建模式
- 注入技术特征
3. YARA规则编写实践
3.1 基本规则结构
rule RuleName {
meta:
description = "描述规则用途"
author = "作者"
date = "日期"
reference = "参考信息"
strings:
$string1 = "text string" nocase
$hex1 = { E2 34 A1 D3 }
$regex1 = /md5: [0-9a-fA-F]{32}/
condition:
(uint16(0) == 0x5A4D) and 2 of ($string1, $hex1, $regex1)
}
3.2 红队工具检测规则示例
Cobalt Strike检测规则:
rule CobaltStrike_Beacon {
meta:
description = "Detects Cobalt Strike Beacon payload"
author = "Your Name"
date = "2023-08-06"
strings:
$mz = "MZ"
$cobalt1 = "Beacon" wide
$cobalt2 = "ReflectiveLoader" wide
$cobalt3 = { 55 8B EC 83 EC 20 53 56 57 8B 7D 08 8B D9 }
condition:
uint16(0) == 0x5A4D and all of them
}
Mimikatz检测规则:
rule Mimikatz_Detection {
meta:
description = "Detects Mimikatz tool"
author = "Your Name"
date = "2023-08-06"
strings:
$s1 = "mimikatz" nocase wide
$s2 = "sekurlsa::logonpasswords" wide
$s3 = "kerberos::ptt" wide
$h1 = { 6B 65 72 62 65 72 6F 73 3A 3A 70 74 74 }
condition:
3 of ($s*)
}
4. 高级技巧与优化
4.1 规则优化策略
-
减少误报:
- 组合多个特征条件
- 使用更精确的字符串匹配
- 添加排除条件
-
提高性能:
- 将最独特的特征放在规则前面
- 使用
at限定字符串位置 - 避免过于宽泛的正则表达式
4.2 版本识别技术
rule CobaltStrike_Version {
meta:
description = "Detects Cobalt Strike version"
strings:
$v3 = "Beacon 3." wide
$v4 = "Beacon 4." wide
condition:
uint16(0) == 0x5A4D and ($v3 or $v4)
}
4.3 混淆检测技术
rule Packed_Executable {
meta:
description = "Detects potentially packed executables"
condition:
pe.entry_point < pe.sections[0].raw_data_offset or
pe.entry_point > pe.sections[0].raw_data_offset + pe.sections[0].raw_data_size
}
5. 实际应用场景
5.1 主机扫描
yara -r /path/to/rules /target/directory
5.2 内存扫描
yara -p 4 /path/to/rules <pid>
5.3 集成到SIEM系统
将YARA规则转换为SIEM系统可识别的格式,用于实时检测。
6. 维护与更新
-
规则库维护:
- 定期更新规则以适应新版本工具
- 建立误报反馈机制
- 分类存储规则
-
测试验证:
- 使用已知样本验证规则有效性
- 测试误报率
- 性能基准测试
7. 资源与参考
-
官方资源:
- YARA官方文档:https://yara.readthedocs.io/
- YARA规则仓库:https://github.com/Yara-Rules/rules
-
红队工具特征库:
- MITRE ATT&CK知识库
- 公开的恶意软件分析报告
-
分析工具:
- PE Explorer
- IDA Pro
- Ghidra
- Strings工具
通过以上方法,可以有效地创建和维护针对红队工具的YARA检测规则,提升对目标主机环境的可见性和安全监控能力。