
๐ฆ Pluck CMS 4.7.18 - ์ธ์ฆ๋ RCE ์ต์คํ๋ก์ (CVE-2023-50564). ์ ๋ก๋ ์ ํ ์ฐํ ๋ฐ ์๊ฒฉ ์คํ. ๐ฏ
exploit.py ๐๐ฅ
โ ๏ธ ๋ฒ์ /์ค๋ฆฌ์ ๊ฒฝ๊ณ : ์ด ์คํฌ๋ฆฝํธ๋ ์น์ธ๋ ํ๊ฒฝ(CTF, ๋ฉ, ํ๊ฐ๋ ํํ ์คํ )์์๋ง ์ฌ์ฉํ์ธ์ โ . ํ๊ฐ ์์ด ์์คํ ์ ์ฌ์ฉํ์ง ๋ง์ธ์ โ.
๐งพ ์ด ์คํฌ๋ฆฝํธ๋ ๋ฌด์์ ํ๋์?
exploit_greenhorn.py๋ ์น ํจ๋์์ ์ผ๋ฐ์ ์ธ ์ต์คํ๋ก์ ์ฒด์ธ์ ์๋ํํฉ๋๋ค:
โ ํจ๋์ ๋ก๊ทธ์ธ (์ ํจํ ๋น๋ฐ๋ฒํธ ํ์) โ ๋ฉ๋ชจ๋ฆฌ์์ ZIP ์์ฑ (๋ก์ปฌ ํ์ผ ์ฐ์ง ์์) ๐ฆ โ ๋ด๋ถ์ ๋ฆฌ๋ฒ์ค ์ ธ์ด ์๋ rev.php ํฌํจ ๐๐ โ ZIP์ "๋ชจ๋"๋ก ํจ๋์ ์ ๋ก๋ ๐งฉโฌ๏ธ โ ์ ๋ก๋๋ PHP์ URL์ ์ด์ด ํ์ด๋ก๋ "ํญ๋ฐ" ๐
๐ ๋ชจ๋ ์ด๋ฆ์ ์ถฉ๋์ ํผํ๊ธฐ ์ํด ๋ฌด์์๋ก ์์ฑ๋ฉ๋๋ค (์: abcdefg, xqpmzui ๋ฑ) ๐ฒ
๐งฐ ์๊ตฌ ์ฌํญ
Python 3.8+ ๐
์์กด์ฑ: requests ๐
์ค์น: pip๋ก requests ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น (pip install requests) โ
โ๏ธ ์ค์ (์ค์ ๐ง)
์คํฌ๋ฆฝํธ ๋ด์ '๋น์ ์ ๋ฐ์ดํฐ' ์น์ ์ด ์์ผ๋ฉฐ ์กฐ์ ํด์ผ ํฉ๋๋ค:
RHOST_DOMAIN ๐ โ ๋์ URL (http:// ๋๋ https:// ํฌํจ)
LHOST_IP ๐งญ โ ์ ธ์ ๋ฐ์ ์์ ์ IP (์ผ๋ฐ์ ์ผ๋ก VPN/tun0)
LHOST_PORT ๐ โ ์์ ํ ํฌํธ
PASSWORD ๐ โ ํจ๋ ๋น๋ฐ๋ฒํธ (์คํฌ๋ฆฝํธ๋ ๋ฌด์ฐจ๋ณ ๋์ ์ ํ์ง ์์)
โ ํ: ๊ฐ์ฅ ํํ ์คํจํ๋ ๋ถ๋ถ์ LHOST_IP์ ๋๋ค (VPN ์ธํฐํ์ด์ค์ ์ฌ๋ฐ๋ฅธ IP๋ฅผ ์ ๋ ฅํ์ธ์) ๐
๐ง ๋ฆฌ์ค๋ (์คํ ์ )
์ต์คํ๋ก์์ ์คํํ๊ธฐ ์ ์ ๋ฆฌ๋ฒ์ค ์ ธ์ ๋ฐ์ ๋ฆฌ์ค๋๋ฅผ ์ฌ์ธ์ ๐๐
์: netcat์ LHOST_PORT์ ์ค์ ํ ํฌํธ(์: 4444)์์ ๋ฃ๊ธฐ. ๋ฃ๊ณ ์์ง ์์ผ๋ฉด ์๋ฌด๊ฒ๋ ๋์ฐฉํ์ง ์์ต๋๋ค ๐ญ.
โถ๏ธ ์ฌ์ฉ๋ฒ
RHOST_DOMAIN, LHOST_IP, LHOST_PORT ๋ฐ PASSWORD๋ฅผ ์ค์ ํ์ธ์ โ
๋ฆฌ์ค๋๋ฅผ ์ฌ์ธ์ ๐ง
Python์ผ๋ก ์คํฌ๋ฆฝํธ ์คํ ๐
์ผ๋ฐ์ ์ผ๋ก ๋ณผ ์ ์๋ ์ถ๋ ฅ:
[] Objetivo: http://greenhorn.htb
[] Creando modulo limpio: xqpmzui [] Logueando... [+] Login OK. [] Subiendo payload... [*] Detonando en: http://greenhorn.htb/data/modules/xqpmzui/rev.php
[+] ยกTimeout! (Buena seรฑal, revisa tu netcat)
๐ ์ฐธ๊ณ : 'Timeout! (์ข์ ์ ํธ)'๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์์ ๋๋ค โ PHP๊ฐ ๋ฆฌ๋ฒ์ค ์ ธ์ ์ด๋ฉด ์น ์์ฒญ์ด ๋ํํ ์ธ์ ์ด ์ด์์๋ ๋์ '๋ฉ์ถฐ' ์์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค ๐
๐ง ๋ด๋ถ์ ์ผ๋ก ์ด๋ป๊ฒ ์๋ํ๋์? (์ฝ๊ฒ ์ค๋ช )
๋ฌด์์ ๋ชจ๋ ์ด๋ฆ ์์ฑ ๐ฒ
๋ฉ๋ชจ๋ฆฌ์์ ZIP ์์ฑ ๐ฆ (ํ๋ซ ๊ตฌ์กฐ, ๋ด๋ถ ํด๋ ์์)
๋ด๋ถ์ LHOST_IP:LHOST_PORT๋ก ์ฐ๊ฒฐ๋๋ ๋ฆฌ๋ฒ์ค ์ ธ์ด ์๋ rev.php ํฌํจ ๐ก
/login.php์ ๋ก๊ทธ์ธ ๐ (ํธํ์ฑ์ ์ํด Referer ํฌํจ)
/admin.php?action=installmodule์ ZIP ์ ๋ก๋ โฌ๏ธ๐งฉ
/data/modules/<module_name>/rev.php์ ์ ๊ทผํ์ฌ ํ์ด๋ก๋ ์คํ ๐๐
๐งช ๋ฌธ์ ํด๊ฒฐ (๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ)
โ ๋ก๊ทธ์ธ ์คํจ
PASSWORD ํ์ธ ๐
์๋ํฌ์ธํธ๊ฐ /login.php์ธ์ง ํ์ธ
๋ฉ์์๋ ๊ฐ๋ ๋จธ์ /์๋น์ค๋ฅผ ์ฌ์์ํด์ผ ํจ ๐
โ ์ ธ์ด ๋์ฐฉํ์ง ์์
LHOST_IP ํ์ธ ๐งญ (์ฌ๋ฐ๋ฅธ IP, ์ผ๋ฐ์ ์ผ๋ก tun0)
์ฌ๋ฐ๋ฅธ ํฌํธ์์ ์์ ์ค์ธ์ง ํ์ธ ๐๐ง
ํํฐ๋ง์ด ์๋ ๊ฒฝ์ฐ ๋ค๋ฅธ ํฌํธ ์๋ (์: 443 ๋๋ 9001) ๐ง
โ ์คํ ์ 404
๋ชจ๋์ด ์ค์น๋์ง ์์์ ์ ์์ ๐งฉ
์ผ๋ถ ์ค์น์์๋ ๊ฒฝ๋ก๊ฐ ๋ณ๊ฒฝ๋จ; /data/modules/ ๊ตฌ์กฐ ํ์ธ ๐
๐ก๏ธ ์ฐธ๊ณ ์ฌํญ
๋ก์ปฌ ๋์คํฌ์ ZIP์ ๋จ๊ธฐ์ง ์์ (๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ฒ๋ฆฌ) โ
sys๋ฅผ import ํ์ง๋ง ์ฌ์ฉํ์ง ์์ (์ํ๋ค๋ฉด ์ ๋ฆฌ ๊ฐ๋ฅ) ๐งน
์ ์คํ๊ฒ ์ฌ์ฉํ์ธ์ ๐ง ๐
โ ์ต์ข ๋ฉด์ฑ ์กฐํญ
๋ณด์ฆ ์์. ๊ต์ก ๋ฐ ์น์ธ๋ ์ฉ๋๋ก๋ง ์ฌ์ฉํ์ธ์. ํ๊ฐ ์์ด ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ณธ์ธ ์ฑ ์์ ๋๋ค ๐ซโ๏ธ