温馨提示×

怎样用linux strings查病毒

小樊
46
2026-09-29 14:49:50
栏目: 智能运维

在 Linux 下,strings 本身不是杀毒工具,而是一个分析工具:它从二进制文件(可执行文件、库、脚本、内存镜像等)中提取可读字符串(ASCII/Unicode),帮助你判断一个文件“像不像病毒/木马”。

下面按实用思路讲:怎么用 strings 来“查病毒/做初步研判”。


一、基本用法

strings 文件名

例如:

strings suspicious.bin

常见参数:

  • -n 8:只显示长度 ≥8 的字符串(减少噪音)
  • -e l / -e b:指定编码(little/big endian)
  • -a:扫描整个文件(默认可能跳过某些段)

示例:

strings -n 8 suspicious.bin

二、用 strings “发现可疑迹象”

1️⃣ 查找恶意行为相关字符串

strings suspicious.bin | grep -Ei "wget|curl|bash|/bin/sh|nc|python|perl|ssh|scp|ftp"

常见红旗:

  • /bin/sh
  • wget http://
  • curl http://
  • system(
  • execve
  • reverse shell
  • base64

2️⃣ 查找 C2 / 域名 / IP

strings suspicious.bin | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}"
strings suspicious.bin | grep -Ei "http|https|ftp|\.com|\.cn|\.ru|\.io"

注意:

  • 域名可能被 编码/加密
  • 真正高级样本 strings 里可能看不到

3️⃣ 查找可疑文件路径

strings suspicious.bin | grep -E "/etc/|/tmp/|/var/|/root/|crontab|systemd"

例如:

  • /etc/cron.d/
  • /tmp/.x
  • ~/.bashrc

4️⃣ 查找加密/混淆痕迹

strings suspicious.bin | grep -Ei "aes|rc4|base64|xor|encrypt|decrypt"

说明:

  • 有加密 ≠ 病毒
  • 但正常程序很少在二进制里藏大量 base64/XOR

三、对“正在运行的进程”用 strings(内存层面)

1️⃣ 找到 PID

ps aux | grep 可疑进程

2️⃣ dump 内存

cat /proc/PID/maps
gdb -p PID
(gdb) dump memory mem.bin 0x... 0x...

3️⃣ strings 分析

strings mem.bin | grep -Ei "http|/bin/sh|wget"

四、配合其他命令更高效

先确认文件类型

file suspicious.bin

查哈希(方便比对)

sha256sum suspicious.bin

查病毒库(真正杀毒)

clamscan suspicious.bin

五、strings 的局限(很重要)

❌ 不能:

  • 解密加密字符串
  • 检测无字符串的样本
  • 判断“是否一定有害”

✅ 只能:

  • 辅助研判
  • 发现线索
  • 配合逆向/沙箱

六、一个“实战式”检查脚本示例

file "$1"
strings -n 8 "$1" | grep -Ei "wget|curl|/bin/sh|bash|nc|python|perl|http|ftp|/tmp/|/etc/|base64|xor"

用法:

./check.sh suspicious.bin

如果你愿意,可以:

  • 发一个 strings 输出片段
  • 或说你是 服务器 / 嵌入式 / 桌面 Linux
  • 或想学 如何配合 objdump / radare2 / ghidra

我可以直接帮你“像安全分析师一样看”。

0 踩