๊ธ€ ์ž‘์„ฑ์ž: heogi

Root ME

 

Task 1 - Reconnaissance

๋จผ์ € ์ •๋ณด ์ˆ˜์ง‘์„ ์ง„ํ–‰ํ•œ๋‹ค.

nmap์„ ํ†ตํ•ด open๋œ Port ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.

COPY
nmap -sV -T4 -F --version-light targetIP

ํ•ด๋‹น ์˜ต์…˜์„ ์ด์šฉํ•˜๋ฉด ์„œ๋น„์Šค์˜ ๋ฒ„์ „ ์ •๋ณด๋„ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

http ์„œ๋น„์Šค๊ฐ€ ๋™์ž‘ ์ค‘์ด๋‹ˆ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ†ตํ•ด ์ ‘์†ํ•˜๋ฉด ์›น ํŽ˜์ด์ง€๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค.

ํ•ด๋‹น ํŽ˜์ด์ง€์—์žˆ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๊ธฐ์œ„ํ•ด gobuster ํˆด์„ ์ด์šฉํ•ด ๋””๋ ‰ํ† ๋ฆฌ ์Šค์บ๋‹์„ ์ง„ํ–‰ํ•œ๋‹ค.

COPY
gobuster -u targetIP -w common.txt

โ€ปwordlist : https://github.com/kkrypt0nn/wordlists

/panel, /uploads ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ  ์—…๋กœ๋“œ ๋‚ด์—ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€๊ฐ€ ํ™•์ธ๋œ๋‹ค.

/panel

wapplalyzer๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๋‹ˆ ํ•ด๋‹น ํŽ˜์ด์ง€๋Š” PHP๋กœ ์ž‘์„ฑ๋œ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

Task 2 - Getting a Shell

์•„๋ž˜ PHP ๊ธฐ๋ฐ˜ ๋ฆฌ๋ฒ„์Šค ์‰˜ ์ฝ”๋“œ๋ฅผ ์ด์šฉํ•œ๋‹ค. PHP ๋ฆฌ๋ฒ„์Šค ์‰˜ ์ฝ”๋“œ๋Š” ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์—ฐ๊ฒฐํ•  ์„œ๋ฒ„ ์ฃผ์†Œ ๋ฐ ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

โ€ป https://github.com/pentestmonkey/php-reverse-shell

 

ํ•ด๋‹น ํŒŒ์ผ์„ /panel ํŽ˜์ด์ง€์— ์—…๋กœ๋“œ ์‹œ๋„ํ•ด๋ณด๋ฉด ์—…๋กœ๋“œ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

๋‚ด๋ถ€์ ์œผ๋กœ ํ™•์žฅ์ž ํ•„ํ„ฐ๋ง์„ ๊ฑฐ์น˜๋Š”๊ฒƒ์œผ๋กœ ๋ณด์ธ๋‹ค.

 

ํ™•์žฅ์ž๋ฅผ php5 ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ php ํ™•์žฅ์ž๋ฅผ ์šฐํšŒํ•˜์—ฌ ์—…๋กœ๋“œํ•˜๋ฉด ์ •์ƒ์ ์œผ๋กœ ์—…๋กœ๋“œ๊ฐ€ ๋œ๋‹ค.

์—…๋กœ๋“œ ์™„๋ฃŒ ํ›„ /uploads ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ํŒŒ์ผ์ด ์ •์ƒ์ ์œผ๋กœ ์—…๋กœ๋“œ๋œ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ด์ œ nc๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ ๋Œ€๊ธฐ ์‹œํ‚จ ํ›„ uploads ํŽ˜์ด์ง€์—์„œ ์‹คํ–‰ํ•œ๋‹ค.

COPY
nc -nvlp 8080

์„ฑ๊ณต์ ์œผ๋กœ ๋ฆฌ๋ฒ„์Šค ์‰˜์ด ์ƒ์„ฑ๋œ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Task 3 - Privilege Escalation

id ๋ฅผ ํ™•์ธํ•ด๋ณด๋‹ˆ ์›น ํŽ˜์ด์ง€๊ฐ€ ๋™์ž‘ํ•˜๊ณ ์žˆ๋Š” ๊ถŒํ•œ(www-data)๋กœ ์‰˜์ด ์ƒ์„ฑ๋˜์—ˆ๋‹ค.

ํ•ด๋‹น ๊ถŒํ•œ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์€ ์ œํ•œ์ ์ด๋ผ root ๊ถŒํ•œ์œผ๋กœ ๊ถŒํ•œ ์ƒ์Šน์„ ์‹œ๋„ํ•œ๋‹ค.

 

root ๊ถŒํ•œ์œผ๋กœ ์ƒ์Šนํ•˜๊ธฐ ์œ„ํ•ด SetUID๊ฐ€ ์„ค์ •๋œ ํŒŒ์ผ์„ ์ฐพ์•„๋ณธ๋‹ค.

COPY
find / -user root -perm 4000\

์—ฌ๋Ÿฌ ํŒŒ์ผ ์ค‘ ํŠน์ดํ•˜๊ฒŒ python์— ์†Œ์œ ์ž๋Š” root, SetUID๊ฐ€ ์„ค์ •๋˜์–ด์žˆ๋‹ค.

ํ•˜์—ฌ python์„ ํ†ตํ•ด ์‹คํ–‰ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ root ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰์ด ๋œ๋‹ค.

์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ root ๊ถŒํ•œ์˜ ์‰˜์„ ํš๋“ํ•œ๋‹ค.

COPY
python -c 'import os; os.execl("/bin/sh","sh","-p")'

์ฐธ๊ณ (bypass restricted shell)  : https://gtfobins.github.io/

 

ํš๋“ํ•œ ์‰˜์˜ ๊ถŒํ•œ์„ ํ™•์ธํ•ด๋ณด๋ฉด euid(effective uid)๊ฐ€ root์ธ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


๋ฌธ์ œ์—์„œ ์ œ์‹œํ•œ /root/root.txt ํŒŒ์ผ์„ ํ™•์ธํ•ด์„œ flag๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.