下载地址:https://download.vulnhub.com/mytomcathost/MyTomcatHost.ova
1.配置环境
kali:NAT
吧唧:NAT
2.主机发现
经过粗略的扫描,我们大概可以确定我们吧唧的ip为192.168.139.145
我们可以看到他开启了22ssh服务和8080http服务
3.访问服务
典中典是一个Tomcat的服务器,经过一番测试我们不难发现右上角的三个按钮都需要我们输入密码
我们发现部分目录访问的时候需要我们填写账号密码,另一部分能够进行访问的就是一些官网文档之类的,我们这里首先猜测弱密码admin:admin,admin:passwd,tomcat:tomcat
很幸运的是我们成功猜到密码为tomcat:tomcat,然后我们就可以在网站里面挖呀挖呀挖
在点进manager app后,我们可以看到有一个地方可以上传文件,但经过我一番尝试,我发现他只能上传war文件(一只用于部署java web应用程序的文件格式),我决定进行沉淀
经过一番沉淀我了解到了一个新的工具——msfvenom。这里我们了解到Apache Tomcat是一个JavaServer Pages(JSP)容器,这里我们使用-p选择的有效载荷类型正是java/jspshellreverse_tcp,他将会基于JSP生成一个反向shell,lhost和lport正如你所见他们指定的是kali的ip和我们要弹的端口号,-f正是指定输出格式,这里正好是war类型的,最后>shell.war将输出重定向到一个名为shell.war的文件,刚刚我们生成的所有war文件将被保存为shell.war
这里我们已经成功把他上传上去啦
这里我们在终端输入msfconsole进入Metasploit的交互式命令模式,msfconsole和msfvenon都是为Metasploit(开源渗透测试框架)效力的
这里我们在msfconsole交互式命令模式开启监听并设置ip和端口,启动监听
我们已经成功拿到了一个shell
4.信息搜集
经过一番基本的信息搜集,我们知道当前用户可以无密码执行java,我们翻一下有没有什么可以利用的
经过一番沉淀我又悟了, 我们刚刚拿shell的时候就是用msfvenom生成了一个war的攻击载荷,现在我们当前用户可以无密码使用java,那么我们也可以用msfvenom生成一个jar的攻击载荷。这条命令中-platform java 是让生成的payload适用于java平台,-f 指定输出格式为jar,-p java/shellreversetcp是生成一个反向shell的java payload,即在目标主机上创建一个反向连接,将shell返回给攻击者,lhost和lport指定接受反向shell的主机,这里我们用于接受反向shell的主机为kali
我们使用kali开启http服务,吧唧wget下载的方式成功把我们构造的payload.jar下载到了吧唧
最后成功拿到我们的root,
总结:我们使用msfvenom命令生成了一个war的木马文件,上传到吧唧后在本地使用msfconsole开启监听拿到了吧唧弹回来的shell,然后在吧唧里面经过一番探索我们发现当前用户可以无密码运行java,然后我们在本地使用msfvenom命令生成了一个jar的木马文件,利用python搭建http服务吧唧wget下载这个木马文件,然后我们在吧唧sudo运行这个jar木马文件,同时监听相对端口,成功拿到root权限。虽然有点绕,好歹是绕出来了。后续需要加强msfvenom和msfconsole两个命令的练习,熟练使用文件传输(http、nc等等)
新手上路,请多指教