From cb83f27f87dce50e92b1b824eb3704d1638f123d Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Tue, 18 Oct 2016 17:46:46 +0800 Subject: [PATCH] 7.1~2 --- ch7.md | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 ch7.md diff --git a/ch7.md b/ch7.md new file mode 100644 index 0000000..78a69cf --- /dev/null +++ b/ch7.md @@ -0,0 +1,147 @@ +# 第七章 高级利用 + +> 作者:Gilberto Najera-Gutierrez + +> 译者:[飞龙](https://github.com/) + +> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) + +## 简介 + +在获得一些便利来发现和利用漏洞之后,我们现在转向可能需要更多努力的其他问题上。 + +这一章中,我们会搜索利用,编译程序,建立服务器以及破解密码,这可以让我们访问敏感信息,并执行服务器和应用中的特权功能。 + +## 7.1 在 Exploit-DB 中搜索 Web 服务器的漏洞 + +我们偶尔会在操作系统中, Web 应用所使用的库中,以及活动服务中发现服务器漏洞,或者可以在浏览器或 Web 代理中不能利用的安全问题。对于这些情况,我们可以使用 Metasploit 的利用集合,或者如果我们要找的不在 Metasploit 里面,我们可以在 Exploit-DB 中搜索它。 + +Kali 包含了 Exploit-DB 中的利用的离线副本。这个秘籍中,我们会使用 Kali 自带的命令来探索这个数据库并找到我们需要的利用。 + +### 操作步骤 + +1. 打开终端。 + +2. 输入下列命令: + + ``` + searchsploit heartbleed + ``` + + ![](img/7-1-1.jpg) + +3. 下一步是将利用复制到一个可以修改的地方,并编译它,像这样: + + ``` + mkdir heartbleed + cd heartbleed + cp /usr/share/exploitdb/platforms/multiple/remote/32998.c + ``` + +4. 通常,利用在第一行包含一些自身信息,以及如何使用它们,像这样: + + ``` + head -n 30 32998.c + ``` + + ![](img/7-1-2.jpg) + +5. 这里,利用使用 C 编写,所以我们需要将它编译来使用。编译命令在文件中显示(`cc -lssl -lssl3 -lcrypto heartbleed.c -o heartbleed`),它在 Kali 中不起作用,所以我们需要下面这个: + + ``` + gcc 32998.c -o heartbleed -Wl,-Bstatic -lssl -Wl,-Bdynamic -lssl3 -lcrypto + ``` + + ![](img/7-1-3.jpg) + +### 工作原理 + +`searchsploit `命令是安装在 Kali 中的 Exploit-DB 本地副本的接口。它用于在利用的标题和描述中搜索字符串,并显示结果。 + +利用存在于`/usr/share/exploitdb/platforms `目录中。`searchsploit `所展示的利用目录是它的相对路径,这就是我们在复制文件的时候使用完整路径的原因。利用文件以利用编号命名,在它们被提交到Exploit-DB 时分配。 + +编译步骤和在源代码中的推荐有些不同,因为 OpenSSL 库在基于 Debian 的发行版中,由于它们从源代码中构建的方式而缺少一些功能。 + +### 更多 + +监控利用的影响和效果极其重要,因为我们在实时系统中使用它。通常,Exploit-DB 中的利用都值得相信,即使它们通常需要一些调整来工作在特定的环境中,但是它们中有一些不像他们所说的那样。出于这个原因,在真实世界的渗透测试中使用之前,我们需要检查源代码并在我们的实验环境中测试它们。 + +### 另见 + +除了 Exploit-DB(`www.exploit-db.com`),也有一些其他站点可以用于搜索目标系统中的已知漏洞和利用: + ++ http://www.securityfocus.com ++ http://www.xssed.com/ ++ https://packetstormsecurity.com/ ++ http://seclists.org/fulldisclosure/ ++ http://0day.today/ + +## 7.2 利用 Heartbleed 漏洞 + +这个秘籍中,我们会使用之前编译的 Heartbleed 利用来提取关于存在漏洞的 Bee-box 服务器的信息(`https://192.168.56.103:8443/ `)。 + +Bee-box 虚拟机可以从`https://www.vulnhub.com/ entry/bwapp-bee-box-v16,53/ `下载,那里也有安装指南。 + +### 准备 + +在上一个秘籍中,我们生成了 Heartbleed 利用的可执行文件。我们现在使用它来利用服务器的漏洞。 + +Heartbleed 是能够从服务器内存中提取信息的漏洞。在尝试利用来获得一些要提取的信息之前,可能需要浏览并向服务器的 8443 端口上的 HTTPS 页面发送数据。 + +### 操作步骤 + +1. 如果我们检查Bee-Box 的 8443 端口,我们会发现它存在 Heartbleed 漏洞。 + + ``` + sslscan 192.168.56.103:8443 + ``` + + ![](img/7-2-1.jpg) + +2. 现在,让我们开始利用漏洞。手心,我们访问包含可执行利用的文件夹: + + ``` + cd heartbleed + ``` + +3. 之后我们检查程序的选项,像这样: + + ``` + ./heartbleed --help + ``` + + ![](img/7-2-2.jpg) + +4. 我们要尝试利用`192.168.56.103 `的 443 端口,获得最大的泄露并保存输出到文本文件`hb_test.txt`。 + + ``` + ./heartbleed -s 192.168.56.103 -p 8443 -f hb_test.txt -t 1 + ``` + + ![](img/7-2-3.jpg) + +5. 现在,如果我们检查`hb_test.txt`的内容: + + ``` + cat hb_test.txt + ``` + + ![](img/7-2-4.jpg) + + 我们的利用从 HTTPS 服务器中提取了信息,从这里我们可以看到会话 OD 甚至还有完整的登录请求,包括纯文本用户名和密码。 + +6. 如果我们想要跳过所有的二进制数据,只查看文件中的可读文本,使用`strings`命令: + + ``` + strings hb_test.txt + ``` + + ![](img/7-2-5.jpg) + +### 工作原理 + +我们在第四章中提到过,Heartbleed 漏洞允许攻击者从 OpenSSL 服务器内存中以纯文本读取信息,这意味着我们不需要解密甚至是解释任何客户端和服务端之间的通信,我们只需简单地向服务器请求内存中的东西,它会回应未加密的信息。 + +这个秘籍中,我们使用了可公共访问的利用来执行攻击,并获取到至少一个有效的会话 ID。有的时候还可能在 Heartbleed 的转储中找到密码或其它敏感信息。 + +最后,`strings`命令只展示文件中的字符串,跳过所有特殊字符,使其更加易读。 -- GitLab