ํ ์ค๋ฒํ๋ก์ฐ
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๊ธฐ๋ณธ ์ ๋ณด
ํ ์ค๋ฒํ๋ก์ฐ๋ ์คํ ์ค๋ฒํ๋ก์ฐ์ ๋น์ทํ์ง๋ง ํ์์ ๋ฐ์ํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ์์ฝ๋ ๊ณต๊ฐ์ด ์๊ณ ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์์ฝ๋ ๊ณต๊ฐ๋ณด๋ค ํฌ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์คํ ์ค๋ฒํ๋ก์ฐ์์๋ ๋ช ๋ น ํฌ์ธํฐ๋ ์คํ ํ๋ ์๊ณผ ๊ฐ์ ์ผ๋ถ ๋ ์ง์คํฐ๊ฐ ์คํ์์ ๋ณต์๋ ๊ฒ์ด๋ฉฐ ์ด๋ฅผ ์ ์ฉํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ํ ์ค๋ฒํ๋ก์ฐ์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก ํ ์ฒญํฌ์ ์ ์ฅ๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ ํฌ์ธํฐ์ผ ์ ์์ผ๋ฏ๋ก, ์ด ์ทจ์ฝ์ ์ ์ค์์ฑ์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ๋ฎ์ด์์์ง ์ ์๋์ง์ ๊ณต๊ฒฉ์๊ฐ ์ด๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ ์ ์๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
Tip
์ค๋ฒํ๋ก์ฐ ์คํ์ ์ ์ฐพ๊ธฐ ์ํด ์คํ ์ค๋ฒํ๋ก์ฐ์ ๋์ผํ ํจํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์คํ ์ค๋ฒํ๋ก์ฐ vs ํ ์ค๋ฒํ๋ก์ฐ
์คํ ์ค๋ฒํ๋ก์ฐ์์๋ ์ทจ์ฝ์ ์ด ๋ฐ์ํ ๋ ์คํ์ ์กด์ฌํ ๋ฐ์ดํฐ์ ๋ฐฐ์ด์ด ์๋นํ ์ ๋ขฐํ ์ ์์ต๋๋ค. ์ด๋ ์คํ์ด ์ ํ์ ์ด๋ฉฐ, ํญ์ ์ถฉ๋ํ๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ฆ๊ฐํ๊ณ , ํ๋ก๊ทธ๋จ ์คํ์ ํน์ ์์น์์ ์คํ ๋ฉ๋ชจ๋ฆฌ๋ ๋ณดํต ์ ์ฌํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉฐ ๊ฐ ํจ์์์ ์ฌ์ฉ๋๋ ์คํ ๋ถ๋ถ์ ๋์ ํน์ ๊ตฌ์กฐ์ ํฌ์ธํฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๋ ํ ์ค๋ฒํ๋ก์ฐ์ ๊ฒฝ์ฐ, ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ์ ์ด์ง ์์ผ๋ฉฐ ํ ๋น๋ ์ฒญํฌ๋ ๋ณดํต ๋ฉ๋ชจ๋ฆฌ์ ๋ถ๋ฆฌ๋ ์์น์ ์์ต๋๋ค (์๋ก ์ธ์ ํ์ง ์์) ํฌ๊ธฐ๋ณ๋ก ํ ๋น์ ๊ตฌ๋ถํ๋ ๋น๊ณผ ์กด ๋๋ฌธ์ ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ก์ด ์ฒญํฌ๋ฅผ ํ ๋นํ๊ธฐ ์ ์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ ์ค๋ฒํ๋ก์ฐ์ ์ทจ์ฝํ ๊ฐ์ฒด์ ์ถฉ๋ํ ๊ฐ์ฒด๋ฅผ ์๋ ๊ฒ์ ๋ณต์กํฉ๋๋ค. ๋ฐ๋ผ์ ํ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ๊ฒฌ๋๋ฉด, ์ค๋ฒํ๋ก์ฐ๋ ์ ์๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ์์ ๋ค์์ ์ฌ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํฉ๋๋ค.
์ด๋ฌํ ๋ฐฉ๋ฒ ์ค ํ๋๋ ํ ๊ทธ๋ฃจ๋ฐ์ผ๋ก, ์๋ฅผ ๋ค์ด ์ด ํฌ์คํธ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํฌ์คํธ์์๋ iOS ์ปค๋์์ ๋ฉ๋ชจ๋ฆฌ ์ฒญํฌ๋ฅผ ์ ์ฅํ ๊ณต๊ฐ์ด ๋ถ์กฑํ ๋, ์ปค๋ ํ์ด์ง๋ก ํ์ฅํ๊ณ ์ด ํ์ด์ง๋ฅผ ์์ ํฌ๊ธฐ์ ์ฒญํฌ๋ก ๋๋์ด ์์๋๋ก ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค (iOS ๋ฒ์ 9.2๊น์ง, ์ดํ์๋ ์ด๋ฌํ ์ฒญํฌ๊ฐ ๋ฌด์์๋ก ์ฌ์ฉ๋์ด ๊ณต๊ฒฉ์ ์ ์ฉ์ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค).
๋ฐ๋ผ์ ํ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ ์ด์ ํฌ์คํธ์์๋, ์ค๋ฒํ๋ก์ฐ๋ ๊ฐ์ฒด๊ฐ ํผํด์ ๊ฐ์ฒด์ ์ถฉ๋ํ๋๋ก ๊ฐ์ ํ๊ธฐ ์ํด ์ฌ๋ฌ kalloc์ด ์ฌ๋ฌ ์ค๋ ๋์ ์ํด ๊ฐ์ ๋์ด ๋ชจ๋ ๋ฌด๋ฃ ์ฒญํฌ๊ฐ ์ฑ์์ง๊ณ ์๋ก์ด ํ์ด์ง๊ฐ ์์ฑ๋๋๋ก ์๋ํฉ๋๋ค.
ํน์ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ก ์ด ์ฑ์ฐ๊ธฐ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด, iOS ๋งฅ ํฌํธ์ ๊ด๋ จ๋ ์์ ์ค๋ธ ๋ผ์ธ ํ ๋น์ด ์ด์์ ์ธ ํ๋ณด์
๋๋ค. ๋ฉ์์ง์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํจ์ผ๋ก์จ kalloc ํ ๋น์ ํฌ๊ธฐ๋ฅผ ์ ํํ ์ง์ ํ ์ ์์ผ๋ฉฐ, ํด๋น ๋งฅ ํฌํธ๊ฐ ํ๊ดด๋๋ฉด ํด๋น ํ ๋น์ด ์ฆ์ kfree๋ก ๋ฐํ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ์๋ฆฌ ํ์์ ์ค ์ผ๋ถ๋ฅผ ํด์ ํ ์ ์์ต๋๋ค. kalloc.4096 ๋ฌด๋ฃ ๋ชฉ๋ก์ ํ์
์ ์ถ ๋ฐฉ์์ผ๋ก ์์๋ฅผ ํด์ ํฉ๋๋ค, ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ผ๋ถ ์๋ฆฌ ํ์์๊ฐ ํด์ ๋๊ณ ์ต์คํ๋ก์์ด ์ค๋ฒํ๋ก์ฐ์ ์ทจ์ฝํ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ ค๊ณ ํ ๋, ์ด ๊ฐ์ฒด๊ฐ ํผํด์ ๊ฐ์ฒด ๋ค์ ์ฌ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์์ libc
์ด ํ์ด์ง์์๋ ๋ค์ ์ฒญํฌ์ prev in use ๋นํธ์ prev size์ ์์น๋ฅผ ๋ฎ์ด์ฐ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๊ธฐ๋ณธ ํ ์ค๋ฒํ๋ก์ฐ ์๋ฎฌ๋ ์ด์ ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ ์ค์ธ ์ฒญํฌ๋ฅผ ํตํฉ(์ฌ์ฉ๋์ง ์๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ฒ ํจ)ํ๊ณ ๋ค์ ํ ๋นํ์ฌ ๋ค๋ฅธ ํฌ์ธํฐ์์ ์ฌ์ฉ ์ค์ธ ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
protostar heap 0์์์ ๋ ๋ค๋ฅธ ์์ ๋ ํ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์ ์ฉํ์ฌ ์น๋ฆฌ ํจ์ ํธ์ถ์ ํตํด ํ๋๊ทธ๋ฅผ ์ป๋ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ CTF ์์ ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
protostar heap 1 ์์ ์์๋ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์ ์ฉํ์ฌ ๊ทผ์ฒ ์ฒญํฌ์ ์ฃผ์๋ฅผ ๋ฎ์ด์ธ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ฌ๊ธฐ์ ์ฌ์ฉ์์ ์์ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋ ๊ฒ์ ๋๋ค.
์์ ARM64
ํ์ด์ง https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/์์๋ ์ค๋ฒํ๋ก์ฐ๋ ์ฒญํฌ์ ๋ค์ ์ฒญํฌ์ ์คํ๋ ๋ช ๋ น์ด ์ ์ฅ๋ ํ ์ค๋ฒํ๋ก์ฐ ์์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋จํ ์ต์คํ๋ก์์ผ๋ก ์ด๋ฅผ ๋ฎ์ด์จ์ ์คํ๋ ๋ช ๋ น์ ์์ ํ ์ ์์ต๋๋ค:
python3 -c 'print("/"*0x400+"/bin/ls\x00")' > hax.txt
๋ค๋ฅธ ์์
- Auth-or-out. Hack The Box
- ์ฐ๋ฆฌ๋ Integer Overflow ์ทจ์ฝ์ ์ ์ฌ์ฉํ์ฌ Heap Overflow๋ฅผ ๋ฐ์์ํต๋๋ค.
- ์ฐ๋ฆฌ๋ ์ค๋ฒํ๋ก์ฐ๋ ์ฒญํฌ์
struct๋ด๋ถ์ ์๋ ํจ์์ ๋ํ ํฌ์ธํฐ๋ฅผ ์์์์ผsystem๊ณผ ๊ฐ์ ํจ์๋ฅผ ์ค์ ํ๊ณ ์ฝ๋ ์คํ์ ์ป์ต๋๋ค.
์ค์ ์ฌ๋ก: CVE-2025-40597 โ __sprintf_chk์ ์ค์ฉ
SonicWall SMA100 ํ์จ์ด 10.2.1.15์์ ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋ชจ๋ mod_httprp.so๋ 0x80-byte ํ ์ฒญํฌ๋ฅผ ํ ๋นํ ๋ค์ __sprintf_chk๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ฌธ์์ด์ ์ฐ๊ฒฐํฉ๋๋ค:
char *buf = calloc(0x80, 1);
/* โฆ */
__sprintf_chk(buf, /* destination (0x80-byte chunk) */
-1, /* <-- size argument !!! */
0, /* flags */
"%s%s%s%s", /* format */
"/", "https://", path, host);
__sprintf_chk๋ _FORTIFY_SOURCE์ ์ผ๋ถ์
๋๋ค. ์์ size ๋งค๊ฐ๋ณ์๋ฅผ ๋ฐ์ผ๋ฉด ๊ฒฐ๊ณผ ๋ฌธ์์ด์ด ๋์ ๋ฒํผ์ ๋ง๋์ง ํ์ธํฉ๋๋ค. **-1 (0xFFFFFFFFFFFFFFFF)**์ ์ ๋ฌํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ค์ ํจ๊ณผ์ ์ผ๋ก ๊ฒฝ๊ณ ๊ฒ์ฌ๋ฅผ ๋นํ์ฑํํ์ฌ ๊ฐํ๋ ํธ์ถ์ ๋ค์ ๊ณ ์ ์ ์ธ, ์์ ํ์ง ์์ sprintf๋ก ๋๋๋ ธ์ต๋๋ค.
๋ฐ๋ผ์ ์ง๋์น๊ฒ ๊ธด Host: ํค๋๋ฅผ ์ ๊ณตํ๋ฉด ๊ณต๊ฒฉ์๊ฐ 0x80 ๋ฐ์ดํธ ์ฒญํฌ๋ฅผ ์ค๋ฒํ๋ก์ฐํ๊ณ ๋ค์ ํ ์ฒญํฌ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ธ ์ ์์ต๋๋ค (ํ ๋น์์ ๋ฐ๋ผ tcache / fast-bin / small-bin). ์ถฉ๋์ ๋ค์๊ณผ ๊ฐ์ด ์ฌํํ ์ ์์ต๋๋ค:
import requests, warnings
warnings.filterwarnings('ignore')
requests.get(
'https://TARGET/__api__/',
headers={'Host': 'A'*750},
verify=False
)
์ค์ฉ์ ์ธ ์ ์ฉ์ heap grooming์ ์๊ตฌํ์ฌ ์ทจ์ฝํ ์ฒญํฌ ๋ฐ๋ก ๋ค์ ์ ์ด ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ๋ฐฐ์นํด์ผ ํ์ง๋ง, ๊ทผ๋ณธ ์์ธ์ ๋ ๊ฐ์ง ์ค์ํ ๊ตํ์ ๊ฐ์กฐํฉ๋๋ค:
- _FORTIFY_SOURCE๋ ๋ง๋ฅ ํด๊ฒฐ์ฑ ์ด ์๋๋๋ค โ ์ค์ฉํ๋ฉด ๋ณดํธ ๊ธฐ๋ฅ์ด ๋ฌดํจํ๋ ์ ์์ต๋๋ค.
- ํญ์ ์ฌ๋ฐ๋ฅธ ๋ฒํผ ํฌ๊ธฐ๋ฅผ
_chk๊ณ์ด์ ์ ๋ฌํด์ผ ํฉ๋๋ค (๋๋, ๋ ๋์ ๋ฐฉ๋ฒ์snprintf๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค).
References
Tip
AWS ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:HackTricks Training GCP Red Team Expert (GRTE)
Azure ํดํน ๋ฐฐ์ฐ๊ธฐ ๋ฐ ์ฐ์ตํ๊ธฐ:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


