使用:yum -y update bash
重启后输入env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
显示
o this is a test"
this is a test
这样代表成功了吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个命令序列是在检查你的系统是否受到ShellShock漏洞的影响。ShellShock是一个在2014年发现的Bash shell的重大安全漏洞(CVE-2014-6271和相关变种),它允许攻击者通过特制的环境变量执行任意代码。
当你运行了yum -y update bash
之后,你尝试更新Bash到一个没有ShellShock漏洞的安全版本。然后,你使用了特定的命令来测试系统是否仍然易受攻击:
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
这个命令的工作原理是设置一个包含恶意代码的环境变量(x='() { :;}; echo vulnerable'
),然后尝试执行一个简单的bash命令(echo this is a test
)。如果Bash存在ShellShock漏洞,它会首先执行环境变量中的恶意代码(即打印出vulnerable
),然后再执行后面的正常命令。
根据你的描述,输出结果为:
o this is a test"
this is a test
这里的结果可能有些误导,因为预期如果系统已经修复了ShellShock漏洞,你应该只看到“this is a test”这一行,而不应该有“o this is a test"”这样的输出。通常,如果修复成功,直接输出"this is a test"表明没有额外的、由恶意代码产生的输出,即系统不再受ShellShock影响。
但是,由于你的输出中出现了额外的字符,这可能意味着更新bash后,系统仍以某种方式反映了输入或处理上的异常,或者测试方法本身需要更精确的理解。为了确认是否真正修复了ShellShock漏洞,建议采用官方推荐的检测方法或工具进行验证,并且确保bash更新确实应用了正确的补丁版本。
此外,如果你正在使用的是阿里云的ECS实例,可以考虑利用阿里云的安全产品和服务,如云安全中心,来帮助检测和修复系统中的安全漏洞,包括ShellShock这类高危漏洞,以及获取最新的安全更新和建议。