首页/安全/取证与溯源速查/关键二进制哈希核对
Linux 取证135 条

关键二进制哈希核对

对 shell、sshd、sudo 等关键程序计算哈希并与包管理器校验结果交叉,可发现被替换的木马化二进制。

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

关键程序哈希核对

入侵者替换系统命令(如 ps、ss、sshd)之后,这些命令的输出本身就不再可信。哈希核对的作用是把可疑程序与安装来源做比对:一边用包管理器校验文件是否被改动,一边与同版本干净主机或安装介质的哈希对照,两种方式互相补充。

基本信息

哈希命令sha256sum、md5sum
包校验rpm -Vf <文件>、dpkg -V <包名>、debsums
比对基准安装介质、同版本干净主机、官方仓库包
优先对象登录、提权、网络与审计相关程序,以及关键库文件
记录要点哈希、文件大小、mtime 与 ctime 一并保存
权限要求读取系统目录通常需要 root

典型使用场景

  • 判断关键程序是否被替换
  • 确认包管理器记录的文件是否被改动
  • 为内存与磁盘取证结论提供支撑
  • 评估 rootkit 的影响范围
  • 与 AIDE 基线结果交叉印证

最小示例

最小示例
sha256sum /usr/sbin/sshd /bin/bash /usr/bin/sudo /usr/bin/ssh   # 关键程序哈希
rpm -Vf /usr/sbin/sshd 2>/dev/null || dpkg -V openssh-server 2>/dev/null
rpm -V openssh-server 2>/dev/null | head            # 整包校验输出
dpkg -V openssh-server 2>/dev/null | head           # Debian 系对应写法
ls -l --time-style=long-iso /usr/sbin/sshd          # 时间戳与大小一并记录
cmp -s /usr/bin/ps /mnt/clean/usr/bin/ps; echo $?   # 与干净副本逐字节比较

输出与异常

输出含义异常信号
sha256 值文件内容指纹与基准不一致即为被替换
rpm -V 输出包校验结果出现 5 或 S 标记表示内容或大小差异
dpkg -V 输出包内文件校验结果列出自安装后被修改的文件
文件大小字节数与官方包不同
时间戳mtime 与 ctime晚于包安装时间说明被改动过
与包管理器比对只能证明文件是否与安装包一致,无法证明安装包本身来自官方仓库;这两个层面在报告中都要交代清楚。
校验的价值取决于基准是否可信:优先使用安装介质或同版本干净主机的哈希作为对照,而不是本机自证。
校验时不要为了取版本信息而执行可疑程序:任何执行都可能触发载荷;使用 sha256sum 这类只读工具即可。

易错点

  • 只用单机自证:没有可信基准,本机哈希只能说明前后一致,说明不了是否被替换
  • 校验范围过窄:只查少数命令会漏掉库文件与动态链接器这类更高收益的目标
  • 为取版本执行可疑程序:可能触发载荷,也会留下新的痕迹
  • 忽略时间戳:哈希一致但时间戳异常同样值得追查,可能是覆盖恢复的结果

数据来源与参考

  • NIST SP 800-86(取证中的完整性校验)
  • rpm 手册(rpm(8) -V)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌