发布于 2014-09-26 01:45:58 | 1937 次阅读 | 评论: 1 | 来源: 网友投递

这里有新鲜出炉的Linux常用命令,程序狗速度看过来!

Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。


本文为大家提供了一篇关于bash远程代码执行漏洞的攻击原理分析和漏洞的利用方法,感兴趣的同学参考下。

传送门:Bash 远程任意代码执行安全漏洞(最严重漏洞)

详情可围观上面的链接。因为我们的服务器都是私有网环境,即使要修复也得等到下次安全加固的时候进行。对于这个BUG我比较感兴趣的是:

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

这个测试代码是怎么执行的?于是,拿到terminal中执行结果如下:

vulnerable
this is a test

#注:vulnerable是“易受攻击”的意思,老外出于warning特地用这个单词。

从上述结果来看,"echo vulnerable" 和 "echo this is a test",都被执行了。"echo this is a test"自不用说,bash -c 就是用来执行string-commands(命令字符串),也就说不管后面的字符串里是什么都会被当做shellcode来执行。这个当然算不上 BUG,毕竟受执行权限约束。那么问题的重点就是"echo vulnerable"怎么会被执行的?

我们先来看 env x='() { :;}; echo vulnerable' env命令大家一般都了解(不了解的跟随传送门去看)。env为接下来的执行命令提供环境变量,拿测试代码解释来说就是:

bash -c "echo this is a test"在执行的时候存在一个环境变量x,而x呢等于 () { :;}; echo vulnerable ,我们都知道环境变量在使用前都会被初始化,那么 () { :;}; echo vulnerable 就自然而然的被执行了。() { :;};定义了一个函数(function)并且它什么也不做,而后的echo vulnerable被解析后得到了执行权。那么echo vulnerable换成其他更具破坏性的代码后果就不堪设想了。(没错,env还支持function作为环境变量,不信执行:env FUNC='() { echo OK;};' bash -c "FUNC")

#注:如果想以env xxx='zzz' bash -c 'yyy'这种形式的渗入式攻击,zzz就必须写成这样: () { :;}; BAD-CODE-HERE

其详细过程还可参考国外友人的解释:

http://seclists.org/oss-sec/2014/q3/650

http://www.reddit.com/r/netsec/comments/2hbxtc/cve20146271_remote_code_execution_through_bash/

http://www.reddit.com/r/programming/comments/2hc1w3/cve20146271_remote_code_execution_through_bash/

 

上述连接中就有人举例说明了其应用场景:

假设:

你的server(apache/nginx)上部署了/var/www/cgi-bin/hi这样一个cgi程序,hi的源码类似如下:

#!/bin/bash
echo "Content-type: text/html"
echo ""
echo "hai"

那么,通过curl构造http-header并访问curl -k -H 'User-Agent: () { :;}; echo aa>/tmp/aa'  https://localhost/cgi-bin/hi

执行后会发现,/tmp/aa这个文件竟然产生了,所以到这里你应该明白了这个bash-remote-code-execution的执行过程及危害了吧。

针对此BUG解决方案也很简单,那就是赶快升级你的bash,目前相应的patch已经出来了(bash-4.1.2-15.el6_5.1)。

漏洞修复方案见:Bash 远程任意代码执行安全漏洞(最严重漏洞)



最新网友评论  共有(1)条评论 发布评论 返回顶部
PHPERZ网友 发布于2014-10-08 04:48:09
这么说来只有在cgi程序上才有。看来影响也没那么大嘛。
支持(0)  反对(0)  回复

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务