US-CERT 意识到 Bash 存在一个安全的漏洞,该漏洞直接影响基于 Unix 的系统(如 Linux、OS X 等)。该漏洞将导致远程攻击者在受影响的系统上执行任意代码。
检测是否存在Bash漏洞
env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
如果存在漏洞,显示结果为:
vulnerable this is a test
Centos的修复方法:
yum update bash yum update bash-4.1.2-15.el6_5.1
此举只是更新了 bash 包,还需要重启系统才能生效。
Ubuntu的修复方法,无需重启:
apt-get update apt-get install bash
再测试Bash漏洞命令,出现以下结果,说明已经打补丁了
bash: warning: x: ignoring function definition attempt bash: error importing function definition for `x' this is a test
哪些情况下Bash漏洞会被利用
1、程序在某一时刻使用Bash作为脚本解释器处理环境变量赋值;
2、环境变量赋值字符串的提交取决于用户输入;
3、此漏洞需要环境GNU Bash≤4.3,可能会影响到使用ForceCommand功能的OpenSSH sshd、使用mod_cgi或mod_cgid的Apache服务器、DHCP客户端、其他使用Bash作为解释器的应用等;
4、在sshd配置中使用了ForceCommand用以限制远程用户执行命令,这个漏洞可以 绕过限制去执行任何命令。一些Git和Subversion部署环境的限制Shell也会出现类似情况,OpenSSH通常用法没有问题;
5、Apache服务器使用mod_cgi或者mod_cgid,如果CGI脚本在BASH或者运行在子 SHELL里都会受影响。子Shell中使用C的system/popen,Python中使用os.system/os.popen,PHP中使用system/exec(CGI模式)和Perl中使用 open/system的情况都会受此漏洞影响;
6、守护进程和SUID程序在环境变量设置的环境下执行SHELL脚本也可能受到影响;
参考资料:
https://www.us-cert.gov/ncas/current-activity/2014/09/24/Bourne-Again-Shell-Bash-Remote-Code-Execution-Vulnerability
https://raw.githubusercontent.com/citypw/DNFWAH/master/4/d4_0x07_DNFWAH_shellshock_bash_story_cve-2014-6271.txt
https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
原创文章,转载请注明:转载自Web开发笔记 | Bash 远程任意代码执行安全漏洞及其修复方法
Comments on this entry are closed.