[Hack The Box] Shoppy ํ์ด
๐ก Hack-The-Box Shoppy ํ์ด ์ ๋๋ค.
๋ฌธ์
Enumeration
โโโ(rootใฟkali)-[/home/kali/Desktop]
โโ nmap -sV -p - 10.129.227.233 -vv --min-rate 3000
Nmap scan report for 10.129.227.233
Host is up, received echo-reply ttl 63 (0.081s latency).
Scanned at 2023-02-11 09:24:39 EST for 122s
Not shown: 65532 closed tcp ports (reset)
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 63 OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
80/tcp open http syn-ack ttl 63 nginx 1.23.1
9093/tcp open copycat? syn-ack ttl 63
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 122.20 seconds
Raw packets sent: 65540 (2.884MB) | Rcvd: 65536 (2.621MB)
์ด 3๊ฐ์ ์๋น์ค๊ฐ ์ด๋ ค์์ต๋๋ค. http(80) ์๋น์ค์ , ์ด๋ค ์๋น์ค ์ธ์ง๋ ๋ชจ๋ฅด์ง๋ง 9093 ํฌํธ๋ก ์ ์์ ํด๋ด ๋๋ค.
์์๊ฐ์ ๋ฐ์ดํฐ๋ค์ด ๋์ค๊ณ , ์ผ๋ถ ํญ๋ชฉ๋ค์ ๊ตฌ๊ธ๋ง ํด๋ณด๋ฉด ํด๋น ํ์ด์ง๋ prometheus ๋ผ๋ ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ๋๋ ํ์ด์ง ์ ๋๋ค.
๋ฌธ์ ๋ฅผ ๋ค ํ์ด๋ณธ ๊ฒฐ๊ณผ ํด๋น ํ์ด์ง๋ ๋ฌธ์ ํ์ด์ ์ฐ๊ด์ด ์์๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ธ ์ค๋ช ์ ํ์ง ์๊ฒ ์ต๋๋ค.
๊ทธ ๋ค์์ ์น์๋น์ค ์ ๋๋ค.
/etc/hosts ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋๋ฉ์ธ์ ๋ฑ๋กํด ์ฃผ๊ณ ๋ค์ ์ ์์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
# /etc/hosts
10.129.227.233 shoppy.htb
์ฌ์ดํธ๋ฅผ ๋๋ฌ๋ด๋ ํน๋ณํ ๊ธฐ๋ฅ์ด ์กด์ฌํ์ง ์์ต๋๋ค.
subdomain / subdirectory ๋ฆฌ์คํ ์ ์ํํด ๋ด ๋๋ค.
# subdirectory
wfuzz -c --hc 404 -w /usr/share/wordlists/dirb/commont.txt 'http://shoppy.htb/FUZZ'
# subdomain
wfuzz -c -w /usr/share/seclists/Discovery/DNS/bitquark-subdomains-top100000.txt -u shoppy.htb -H "Host: FUZZ.shoppy.htb" --hc 301
๋จผ์ subdirectory์ ๊ฒฐ๊ณผ์ ๋๋ค.
admin
๊ฒฝ๋ก๋ก ์ ์์ ํด๋ด
๋๋ค.
SQL Injection
๊ณ์ ์ธ์ ์ ์ ์ํํด๋ณธ ๊ฒฐ๊ณผ, ๋ฐฑ์๋์์ MongoDB๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก ์ถ์ธก๋๊ณ ๊ณ์ ์ ๊ฒ์ฆ์ ์ฌ์ฉํ๋ ๋ถ๋ถ์ ๋ค์๊ณผ ๊ฐ์ ํํ์ผ ๊ฒ์ผ๋ก ์ถ์ธกํ์์ต๋๋ค.
db.user.find({$where: `this.username=='${req.query.username}'&&this.password=='${req.query.password}'`});
๋ฐ๋ผ์ ์ธ์ ์ ์ ๋ค์๊ณผ ๊ฐ์ด ์ํํ์์ต๋๋ค.
username='||1||'&password=123
๊ฒ์๊ธฐ๋ฅ ์ญ์ ์ธ์ ์ ์ด ๊ฐ๋ฅํ์ฌ ๋์ผํ ๋ฐฉ๋ฒ์ผ๋ก ์ธ์ ์ ์ ์ํํฉ๋๋ค.
admin
๊ณ์ ๊ณผ, josh
๊ณ์ ์ ๋น๋ฐ๋ฒํธ ํด์๊ฐ์ ์ป์ ์ ์์์ต๋๋ค.
Crack MD5
hash-identifier
๋ช
๋ น์ด๋ฅผ ํตํด ํ์ธํด๋ณธ ๊ฒฐ๊ณผ md5 ์ธ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๋ ๊ณ์ ๋ชจ๋ rockyou.txt ํ์ผ์ ์ด์ฉํ์ฌ ํฌ๋ํน์ ์๋ํด ๋ด ๋๋ค. ์๋ ๊ฒฐ๊ณผ admin ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ ์ป์ง ๋ชปํ์๊ณ , josh ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ ์ป์ ์ ์์์ต๋๋ค.
id : josh
pw : remembermethisway
์ด์ ์ ์คํํด๋์ wfuzz ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๋ฉด, subdomain์ผ๋ก mattermost ๊ฐ ์กด์ฌํจ์ ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ํ josh ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ์ ํฉ๋๋ค.
์ฑํ ๋ด์ญ์์ jaeger ๊ณ์ ์ ๋ณด๋ฅผ ํ๋ํฉ๋๋ค.
user ๊ณ์ ์ flag๋ฅผ ํ๋ํฉ๋๋ค.
/home ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ณด๋ฉด deploy ๊ณ์ ์ด ์กด์ฌํจ์ ์ ์์์ต๋๋ค.
ํด๋น ํ๋๋ ํฐ๋ฆฌ์ password-manager ํ์ผ์ด ์กด์ฌํฉ๋๋ค. ์คํ ๊ถํ์ ์๊ณ ์คํํ์ผ์ ์ฝ๊ธฐ ๊ถํ์ด ์๊ธฐ ๋๋ฌธ์ ํด๋น ํ์ผ์ ๋ณต์ฌํ์ฌ kali linux ๋ก์ปฌ์์ ๋ฆฌ๋ฒ์ฑ ํด๋ด ๋๋ค.
๋ฆฌ๋ฒ์ฑ์ ghidra๋ก ์ํํ์์ผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ์์๋ผ ์ ์์ต๋๋ค.
sudo -l
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด๋ณด๋ฉด, jaeger ๊ณ์ ์ผ๋ก deploy ๊ถํ์ผ๋ก password-manager ํ๋ก๊ทธ๋จ์ ์ํํ ์ ์์ต๋๋ค.
deploy ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์๋์ต๋๋ค.
Docker Breakout
deploy ๊ณ์ ์ docker ๊ทธ๋ฃน๊ถํ์ด ์ฃผ์ด์ ธ ์์ต๋๋ค. docker breakout ๊ธฐ์ ์ ์ด์ฉํด์ root ๊ถํ ํ์ทจ๋ฅผ ์๋ํฉ๋๋ค.
docker iamges ๋ช ๋ น์ด ์ํ๊ฒฐ๊ณผ alpine ์ด๋ฏธ์ง๊ฐ ์กด์ฌํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด --privileged
๊ถํ์ ์ค์ breakout์ด ๊ฐ๋ฅํ๋๋ก ๋์ปค ํ๊ฒฝ์ ์ํํฉ๋๋ค.
--privileged
๊ถํ์ด ์ฃผ์ด์ง๋ฉด, ํธ์คํธ ๋จธ์ ์ผ๋ก mount๊ฐ ๊ฐ๋ฅํด ์ง๋๋ค. host ๋จธ์ ์ ํ๋์ธ /dev/sda1 ๋ก ๋ค์ mount๋ฅผ ํ์ฌ ์ ์ฒด ํ์ผ์์คํ
์ ์ ๊ทผ๊ถํ์ ํ๋ํฉ๋๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ