样本外联配置提取
恶意样本通常把 C2 地址、URI 模板、请求头与心跳间隔以明文或简单编码嵌在文件里。用 strings 这类静态方式先提取线索,再与流量日志比对确认,是最低成本的第一步,而且不需要运行样本,风险最小。
基本信息
| 提取对象 | 域名、IP、URI 模板、User-Agent、心跳间隔、硬编码密钥 |
|---|---|
| 主要方法 | strings 提取可打印字符串,再按结构特征筛选 |
| 辅助手段 | 十六进制视图、熵值判断是否加密或压缩 |
| 平台差异 | Linux 用 strings,Windows 用 strings.exe 或 PowerShell 等价手段 |
| 安全要求 | 全程静态分析,禁止执行样本 |
| 升级条件 | 候选指标必须在流量或日志中命中后才能升级为 IOC |
典型使用场景
- 快速取得样本的外联线索
- 在沙箱运行之前预判通信行为
- 为流量侧与代理侧检索提供关键词
- 判断样本是否使用域名生成算法
- 与同族样本比较配置差异
最小示例
最小示例
# Linux:提取可打印字符串并按特征筛选
strings -n 6 sample.bin | grep -iE 'https?://|/api/|user-agent|interval' | head -20
# Windows:strings.exe 用同样参数,配合 Select-String 筛选
# strings.exe -n 6 sample.bin | Select-String -Pattern 'https?://'
file sample.bin # 确认文件类型与架构
ent sample.bin 2>/dev/null || true # 已安装熵值工具时可判断是否加密
sha256sum sample.bin # 记录样本哈希,线索才能回溯提取对象与用途
| 对象 | 说明 | 后续动作 |
|---|---|---|
| 域名与 IP | 外联目标 | 与流量日志比对确认命中 |
| URI 模板 | 请求路径格式 | 用于检索历史访问记录 |
| User-Agent | 伪装标识字符串 | 在流量中作为检索特征 |
| 心跳间隔 | 通信周期 | 用于评估持续外联的时间窗 |
| 硬编码密钥 | 加解密或认证用途 | 报告中谨慎展示并按需脱敏 |
发现的候选域名必须先在流量、DNS 或代理日志中确认命中,再升级为可处置的指标,避免误封正常业务。
现代样本常把配置加密或分段存放,strings 直接看到的往往只是残片,此时要结合内存与流量证据一起判断。
提取结果要连同样本哈希与工具版本一并记录,否则无法说明某条线索来自哪个文件、由哪个版本的工具得出。
严禁在取证主机上运行样本;确需动态行为时应使用隔离环境,并单独记录网络出口与时间。