我有两个 CentOS 5.10 机箱,我已经升级bash
到最新版本。但是,其中一个机箱bash
仍然容易受到攻击CVE-2014-7169
(我使用的是这个 ServerFault 答案)。
你知道为什么一台机器正常,而另一台机器不正常吗?我应该检查什么?
我已经检查过的内容:
1-确保两台机器运行相同的操作系统(两台机器的输出相同):
# cat /etc/redhat-release
CentOS release 5.10 (Final)
2-确保我拥有相同的版本bash
(两者的输出相同):
# rpm -qi bash
Name : bash Relocations: (not relocatable)
Version : 3.2 Vendor: CentOS
Release : 33.el5_10.4 Build Date: Thu 25 Sep 2014 08:58:19 PM UTC
Install Date: Sat 27 Sep 2014 02:07:07 PM UTC Build Host: sclbuild-c5.centos.org
Group : System Environment/Shells Source RPM: bash-3.2-33.el5_10.4.src.rpm
Size : 5235475 License: GPLv2+
Signature : DSA/SHA1, Fri 26 Sep 2014 02:11:39 AM UTC, Key ID a8a447dce8562897
3- 仔细检查二进制文件签名是否正确(两者的输出相同):
# rpm -V bash
(该命令没有输出,表明二进制签名已检查)
4-检查二进制文件是否确实是相同的版本(正如Cyrus在评论中所建议的那样):(两台机器上的输出相同)
# rpm -qf /bin/bash
bash-3.2-33.el5_10.4
5-检查二进制文件的大小
# ls -l /bin/bash (Good machine)
-rwxr-xr-x 1 root root 801816 Sep 25 20:55 /bin/bash
# ls -l /bin/bash (Bad/vulnerable machine)
-rwxr-xr-x 1 root root 768952 Sep 25 20:55 /bin/bash
请注意文件大小不同。
6- 实际测试漏洞
# ## on the good machine
# env X='() { (a)=>\' sh -c "echo date"; cat echo
date
cat: echo: No such file or directory
# ## on the bad/vulnerable machine
# env X='() { (a)=>\' sh -c "echo date"; cat echo
date
Sat Sep 27 13:44:36 UTC 2014
答案1
可能是误报 - 确保在故障机器上的早期测试中不存在“echo”文件,然后重新测试。
否则,也可能是假阴性——检查您是否可以在好的机器上触摸文件,然后重新测试。