Bash破壳漏洞(CVE-2014-6271)

漏洞范围:

GNU Bash 版本小于等于4.3

漏洞成因:

bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。核心的原因在于在输入的过滤中没有严格限制边界,没有做合法化的参数判断。

漏洞危害:

Apache充当媒介用CGI组件满足远程访问并调用Bash的env命令
绕过ssh的ForceCommand功能
.......

漏洞自查:

在命令行下执行命令,输出vulnerable则说明存在该漏洞:

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

在命令行下执行命令,GNU Bash 版本小于等于4.3也存在该漏洞:

bash --version

漏洞复现:

环境:本次环境使用 bee-box虚拟机(已集成该漏洞环境)进行测试。

Bash破壳漏洞(CVE-2014-6271)_第1张图片

1.查看源代码,可以发现调用了/cgi-bin/shellshock.sh,这一步我们也可以通过目录扫描,主要是扫出/cgi-bin/目录下的文件。

Bash破壳漏洞(CVE-2014-6271)_第2张图片

2.进入msfconsole,搜索shellshock

Bash破壳漏洞(CVE-2014-6271)_第3张图片

3.选择红色框中的选项,查看需要设置什么东东。

Bash破壳漏洞(CVE-2014-6271)_第4张图片

4.设置RHOST为192.168.224.131,TARGETURI为/bWAPP/cgi-bin/shellshock.sh

5.exploit,即可获得一个meterpreter。

Bash破壳漏洞(CVE-2014-6271)_第5张图片

6.至此演示结束,获得meterpreter后可以进行其他操作,相关内容请自行查阅资料。

你可能感兴趣的:(Bash破壳漏洞(CVE-2014-6271))