温馨提示×

怎样用linux strings做取证

小樊
52
2026-09-17 15:35:00
栏目: 智能运维

在 Linux 取证(Forensics)中,strings 是一个非常基础但非常有用的命令,用来从二进制文件、内存镜像、磁盘镜像或日志中提取可读字符串,从而发现线索(如路径、用户名、密码、URL、命令、恶意代码特征等)。

下面从 基本用法 → 取证场景 → 实战技巧 → 注意事项 讲清楚。


一、strings 是什么

strings 会扫描文件,提取长度大于等于某阈值的 printable 字符序列(默认通常是 4)。

strings file

二、常见取证场景

1️⃣ 分析可疑二进制文件(木马 / 后门)

strings malware.bin

重点看:

  • /bin/sh
  • wget, curl
  • IP 地址、域名
  • 密码、key、token
  • 系统路径(/etc/, /tmp/

2️⃣ 从磁盘镜像中提取信息

strings disk.img | less

或只搜关键字:

strings disk.img | grep -i "password"

3️⃣ 内存取证(配合 volatility 前处理)

strings memory.dmp | grep -i "cmd.exe"

常用于:

  • 提取命令行历史
  • 查找聊天内容
  • 明文密码

4️⃣ 日志 / 配置文件取证

strings /var/log/auth.log

三、常用参数(取证必会)

✅ 最小字符串长度

strings -n 8 file

减少噪音,只显示 ≥8 字符


✅ 显示字符串偏移(非常重要)

strings -t x file

或十进制:

strings -t d file

作用:

  • 定位字符串在文件中的位置
  • 方便用 hexdump / dd 进一步分析

✅ 指定字符编码

strings -e l file   # 16-bit little endian
strings -e b file   # 16-bit big endian

常用于:

  • Windows 内存
  • UTF-16 字符串

✅ 结合 grep(核心用法)

strings file | grep -E "http|ftp|password|key"

✅ 输出到文件

strings -n 6 disk.img > strings.txt

四、实战示例

示例 1:查找隐藏 C2 域名

strings malware | grep -E "\.[a-z]{2,}$"

示例2:从镜像找用户密码

strings disk.img | grep -i "password"

示例3:定位 webshell

strings webapp | grep -i "eval("

五、配合其他工具(取证组合拳)

strings file | grep -i ip
strings file | awk '{print $1}' | sort | uniq -c

结合:

  • grep
  • xxd
  • hexdump
  • binwalk
  • foremost

六、注意事项(很重要)

✅ strings 不能解密,只能看明文
✅ 压缩 / 加密内容看不到
✅ 只是线索,不是结论
✅ 取证时注意 写保护 / 哈希校验


七、简单总结

strings 是 Linux 取证的第一把“放大镜”

流程通常是:

文件 → strings → 关键字 → 偏移 → 深入分析

如果你愿意,我可以:

  • 给你一个 真实 CTF / 取证题示例
  • 或针对 磁盘 / 内存 / 恶意样本 给专门方案

0