温馨提示×

怎样用linux strings找密码

小樊
37
2026-09-02 10:42:02
栏目: 智能运维

strings 是 Linux 下一个常用命令,用来从二进制文件、内存镜像、固件、日志等中提取可打印的字符串。它本身不能直接“破解密码”,但常用于安全分析、CTF、逆向、取证中找疑似密码、密钥、配置信息等。

下面按常见场景给你讲清楚用法和思路。


一、基本用法

strings 文件名

示例:

strings app.bin

只看包含关键词的内容:

strings app.bin | grep -i pass

二、找“疑似密码”的常用方法

1️⃣ 搜关键词

strings file | grep -iE "pass|pwd|password|secret|key|token"

常见关键词:

  • password / passwd / pwd
  • secret
  • apikey / token
  • admin / root
  • user / login

2️⃣ 显示字符串偏移(定位用)

strings -t x file

strings -n 6 file

-n 表示最小长度)

配合:

strings -t x file | grep -i password

3️⃣ 从可执行文件中找硬编码密码

strings /usr/bin/xxx | grep -i pass

⚠️ 注意:

  • 真密码常是 加密/哈希后
  • 明文密码通常只出现在:
    • 测试程序
    • 配置工具
    • 恶意软件
    • CTF 题目

三、典型实战场景

✅ 场景 1:CTF / 逆向题

strings challenge | less

重点看:

  • 长的字符串
  • base64
  • 可疑 flag 格式(flag{…})

✅ 场景 2:分析恶意样本

strings malware.bin | grep -iE "http|ftp|pass|cmd"

✅ 场景 3:从内存/镜像中找密码

strings memory.dump | grep -i password

✅ 场景 4:从固件中找默认密码

strings firmware.bin | grep -i admin

四、进阶技巧

提取 base64 字符串

strings file | grep -E '^[A-Za-z0-9+/]{20,}={0,2}$'

配合 hexdump / objdump

objdump -s -j .rodata file

五、重要提醒(合法合规)

✅ 可用于:

  • 自己写的程序
  • 授权的安全测试
  • CTF
  • 取证分析

❌ 不可用于:

  • 未经授权的系统
  • 他人账号/密码窃取

如果你愿意,可以告诉我:

  • 你是 CTF / 逆向 / 取证 / 运维 哪个场景?
  • 文件类型是什么(ELF / exe / bin / dump)?

我可以直接给你针对性命令

0