- Name:Tabby
- IP: 10.10.10.194
实际上是很久之前做的了,一直没发。。很有意思的靶机,枚举多一点。
0x01 信息收集
NMAP
开放的端口:22,80,8080
访问网站的话,就会留意到一个链接有域名,并且看起来很像是文件包含。
在/etc/hosts中添加进去。再次访问。输入file=/etc/passwd探测的时候返回空白页面,然后使用../files/statement也能返回页面,所以尝试目录遍历的方式包含的话就可以了file=../../../../etc/passwd
成功返回/etc/passwd内容(我这边图糊了,就不放图了。。
之后接下来的思路是:包含tomcat的用户页面(因为有tomcat的服务,并且在/etc/passwd看到了tomcat的路径),然后登录tomcat的管理面板,最后上传恶意war脚本,反弹shell。
tomcat
但是接下来无论如何我都读不到/opt/tomcat下面的配置文件,猜测为以下原因
- 权限不够
- tomcat的文件路径不在tomcat家目录下。尝试读取tomcat.service后发现。tomcat指定的家路径为/opt/tomcat/latest/
但是之后我尝试读/opt/tomcat/latest/conf/tomcat-users.xml也不行,我猜测可能不是编译安装所以找不到网络上的所说的配置文件,有可能是包管理的形式安装的tomcat。所以去搜索了一下包管理方式安装tomcat的配置文件的默认路径。最后成功读到用户名和密码
但是结果显然是让我失望的,因为该tomcat用户并不属于manager-gui组。所以并不能通过直接登陆面板的方式来部署恶意脚本。host-manager虽然有个弹shell的方法,但是只适用与windows的服务器。
最后通过查阅tomcat的文档,发现其实manager-script角色组也能上传部署war,和管理这个的,只是没有GUI的窗口。
1 | curl -u 'tomcat':'$3cureP4s5w0rd123!' 'http://10.10.10.194:8080/manager/text/list # 获取已经部署的应用 |
上传之后本地监听设置的端口,访问部署后的路径即可。
0x02 提权
获取到tomcat用户的shell后,搜索一番,发现/var/www/html/files下有一个zip文件,下载下来解压但是需要密码,我使用tomcat用户的密码和尝试一些简单的密码,都不行。使用zip2john导出zip的hash,使用john爆破。
解压出来的东西没用,但是解压密码能登陆ash用户。
接下来正常照lxd的提权流程进行就好了,需要注意的是导入镜像需要在用户的家目录下导入,否则一直会提示找不到文件。还有一点需要注意的是靶机上面没有lxc storage
,所以一开始导入好了接着往下执行的话就会提示失败,需要先lxd init
创建一个storage spool
才可以。提权步骤如下
1 | # 攻击机器上执行 |
最后只要cd到/mnt/root下就是靶机的文件了