第7章-1_利用平台的漏洞
7.1 使用Exploit-DB利用Heartbleed 漏洞
Heartbleed 是2014 年发现的 OpenSSL库中的漏洞它允许攻击者从服务器读取部分内存,这些部分内存以明文形式包含客户端和服务器之间的通信中的一部分。cartblced 漏发布后,很多公共漏洞被曝光。Kalil.inux 的创建者,也主持 Exploit-DB (https://wwwexploit-db.com/),这是一个收集公开漏洞的网站,我们可以在那里找到 Heartbleed 漏洞的几种变体。
在本文中我们将使用 Kali中包的命来 KaliLinux 中 Exploit-DB的地本到我们需要的漏洞,最后我们将通过使用它从而在目标服务器中利用 Heartbleed。
环境准备
在这个章节,我们将使用易受攻击的虚拟机(https://sourceforgc.net/projccts/bwapp/fles/bee-box/),因为它的 OpenSSL 版本易受 IIcarthblced 的漏洞攻击(http://heartbleed.com/),Heartbleed 影响协议TLS 版本1.0和11的加通信并允许攻击者在服务器内存的一部分中提取包含未加密信息。
实战演练
易受攻击的靶机(蜜)虚拟机的IP 地址为192.168.135.133易受的服务在端口 8443 上运行。让我们首先确定服务器中的漏洞:
1.我们使用ssIsan机(上的TCP8443 如下面的图,我们会发现它很容易受到 Hcartblccd 的攻击:
2.通过利用 Hartbleed 我将从服中信息,然后续在其应用中进一些,如录bWAPP(https://192168.135.133:8443/bwapp/)以确保服务器内存中有一些数据。
3.现在要在Exploit-DB的本地副本中查漏洞请打开终端并键入 searchsploit heartbleed 命令结果显示在此处:
4我们将在列表中选择第一个。我们先查的内容并分析如使用它以及它的作用我们可以简单地使用 cat 命今来显示Python代码,如图所示
5.根据漏洞利用中的说明,我们应该将服务器地址作为第一个参数运行,然后使用-p 选项输入我们要测试的端口。因此,攻击命令应该是
Python /usr/share/exploitdb/platforms/multiple/remote/32764.py192.168.135.133 -p 8443
下一个屏幕截图显示了成功攻击的结果,我们能够找到用户名和密码:
原理剖析
Hcartbleed 是 0penSSL TLS 的缓冲区出读取漏洞,这意味看可以从内存中取比允许的数据更多的数据。通过利用此漏洞,攻击者可以以明文形式从 0penSSL 服务器内存中读取信息,这意味着我们无需解密甚至拦截客户端与服务器之间的任何通信。利用服务器和客户端交换的心跳消息,这些是客户端发送的短消息,由服务器应答以保持会话活动。在易受攻击的服务中,客户端可以声称发送大小为X 的消息,但发送较小量(Y)的字节。然后,服务器将以字节进行应,从存储接收到的心跳消息的存储空间相邻的存储空间中获取差值(X-Y)此内空间通常包含先前由其他客户端发送的请求(已解)。
一旦我们知道目标中易受此攻击,我们就会使用 earchsploit 它是安在 KaliLiux上的Exploit-DB本地副本的口,命令会在 cxpoit 的标题和述中找应的符并显示结果。
一旦我们了解了漏洞利用的工作原理并确定它是否可以安全使用,我们就会针对目标运行它并收集结果。在我们的示例中,我们能够从通过加密通道连接的客户端提取有效的用户名和密码。
拓展
在实时系统中我们使用它之前,检测漏洞利用的效果和影响非常重要。通常,Exploit-DB 中的漏洞利用是值得信赖的,即使它们经常需要一些调整才能在特定情况下工作,尽管有些时候可能不会按照他们的说法行事, 因此,我们需要检查源代码并在我们的实验中进行测试,然后才能在真实的测试中使用它们。
拓展
除了 Exploit-DB 之外,还有其他网站可以查找已知的漏洞: http://wwwseeurityfocus.com
http://wwwxssed.com/
Packet Storm.
Full Disclosure Mailing List
http://0daytoday/
7.2 通过利用Shellshock 执行命令
Shellshock(也叫 Bashdoor)是2014 年9月在 bash shell 中发现的一个 bug,它允许通过存储在环境变量值中的函数执行命令。
作为wweb渗透测试人员Shellshock与我们相关因为如果这些脚本使用系统环境变量开发人员有时会在 PHP 和CGI脚本中调用系统命(在CGI脚本中更为常见。)在此小节中我们将利用 bee-box虚拟机中的Shellshock 漏洞在服务器上获得命令执行。
实战演练
通过HTTP(http://192.168.135.129/bWAPP/)浏览到 bee-box,并登录开始这个练习
1.在下拉框中,选择 Shellshock 漏洞(CGI),点击 Hack:
在文本中,我们可以看到一些有趣的东西:当前用户:www-data。这可能意味着页面正在使用系统调用来获取用户名。这也给了我们一个攻击推荐人的暗示
2.后发生什么,使用 Burp Suite 记求并新加页面。让我们看看代理的历史:
我们可以看到有一个 iframe 调用 shell 脚本:/gi-bin/shellshock.sh,这可能是易受Shellshock漏洞影响的脚本。
3.我们关注这个提示,并尝试攻击 shellshock.sh。我们首先需要配置 BurpSuite 来拦截服务器响应。转到“代理”选项卡中的“选项”,并根选中带有文本截响应的复选框。
4.现在,设置BurpSuite 拦截并重新加载shellshockphp。
5.在Burp Suite中,单击Forward 直到看到get请求到/bWAPP/cgi-bin/shellshocksh。然后,将referer 替换为(){:;};echo“Vulnerable:”如下截图所示
6.再次单击 Forward,并再次在请求。然后我们需要从 shellshocksh 中获取响应。如下面的截图所示:
响应现在有一个新的标题参数称为 Vulmerable。这是因为它将 echo命的输出集成到我们提交的 HTML标头中,现在我们可以进一步执行更有趣的命令。
7.现在,尝试(){:;}; echo "Vulnerable:" $(/bin/sh -c "/sbin/ifconfig")命令。如结果所示,命令的结果包含在响应头中:
8.