首页/安全/取证与溯源速查/strings 提取 IOC 的注意点

strings 提取 IOC 的注意点

字符串里能捡到 URL、IP、互斥体与路径:提取后要按类型规范化并标注样本出处,防止 IOC 张冠李戴。

取证与溯源速查安全更新于 2026-10-13

strings 提取 IOC 的用法

strings 把二进制中的可打印字符序列提取出来,能快速捡到 URL、IP、互斥体名、文件路径与注册表键等线索。它成本极低,适合作为样本分析的起点。真正的要点在提取之后:把结果按类型规范化(域名、IP、路径、注册表键分开),标注每条线索来自哪个样本(哈希)与哪条命令,最后再进入情报比对。缺了标注,多份样本的 IOC 混在一起就会出现张冠李戴,报告引用时无法追溯。

基本信息

适用平台Linux(binutils 的 strings)、Windows(sysinternals 或分析套件中同名工具)
关键参数-n 设定最小长度、-a 扫描整个文件、-el 提取 16 位小端编码字符串
输出内容类型化 IOC 清单 + 样本哈希 + 提取命令与参数
规范化要求去重、去掉明显噪声、保留原始形态不做补全
配套手段按编码类型分别提取(ASCII 与 UTF-16),避免漏掉 Windows 程序中的宽字符串

典型使用场景

  • 快速获取样本的通信目标,用于情报比对与封禁参考
  • 发现互斥体名,用于跨样本关联同一程序家族
  • 提取文件路径与注册表键,判断持久化与落地位置
  • 为沙箱分析设定监控点:提前知道要观察哪些进程与网络行为
  • 在报告中提供可复核的提取过程与原始字符串片段

提取与规范化

提取与规范化
# 提取 URL 并去重
strings -n 6 sample.bin | grep -Eo 'https?://[^" ]+' | sort -u | head -20
# 提取 IPv4 地址
strings -n 6 sample.bin | grep -Eo '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' | sort -u | head -20
# Windows 程序常含 16 位小端宽字符串,需要单独提取
strings -el -n 6 sample.bin | grep -Ei 'http|\\.exe|Software\\' | head -20
# 提取互斥体与注册表路径线索
strings -n 8 sample.bin | grep -Ei 'mutex|Global\\\\|CurrentVersion\\\\Run' | head -20
# 结果按类型分文件保存,并在文件名中标注样本哈希前缀

IOC 类型与处理要求

类型提取方式规范化要求
URL / 域名正则匹配 http(s) 前缀字符串保留原始形态,不做补全或猜测路径
IPv4 / IPv6正则匹配地址格式区分公网与内网地址,分别登记
文件路径匹配盘符与目录结构保留大小写与完整层级,注意转义
注册表键匹配常见配置分支保留完整键路径,注明 32/64 位视图
互斥体名匹配唯一命名的字符串作为家族关联线索,需与样本哈希绑定
含变量拼接的 URL 可能只留下片段(例如主机名与路径分开存放),保留原样不要自行补全;补全后的地址若不存在,会在报告中形成错误结论。
短域名、公共库路径与常见单词容易混入噪声:提取结果需要人工过一遍,结合上下文判断哪几条值得登记为线索。

易错点

  • 只做 ASCII 提取:Windows 程序大量字符串是 16 位编码,不加对应参数会漏掉关键线索
  • 把不同样本的 IOC 混在一张表里:缺少样本哈希标注,后续无法追溯来源,也无法判断是否重复
  • 自行补全残缺 URL:变量拼接的片段被拼成完整地址后往往并不存在,会造成误封与错误结论
  • 不记录提取命令与最小长度参数:不同参数得到的结果差异很大,复核者无法重现
  • 把字符串命中当作执行证据:字符串只说明文件里存在该内容,是否使用需要动态或代码层面确认

数据来源与参考

  • strings 手册(binutils)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌