Tcache Bin Attack
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
Basic Information
Tcache bin์ ๋ํ ์์ธํ ์ ๋ณด๋ ์ด ํ์ด์ง๋ฅผ ํ์ธํ์ธ์:
์ฐ์ , Tcache๋ Glibc ๋ฒ์ 2.26์์ ๋์ ๋์๋ค๋ ์ ์ ์ ์ํ์ธ์.
Tcache attack(๋๋ Tcache poisoning)์ guyinatuxido ํ์ด์ง์์ ์ ์๋ ๊ฒ์ผ๋ก, ๋ชฉํ๋ ํด์ ๋ ์ฒญํฌ ๋ด์ ๋น์์ ๋ค์ ์ฒญํฌ์ ๋ํ ํฌ์ธํฐ๋ฅผ ์์์ ์ฃผ์๋ก ๋ฎ์ด์ฐ๋ ๊ฒ์ผ๋ก, ์ดํ ํน์ ์ฃผ์๋ฅผ ํ ๋นํ๊ณ ํฌ์ธํฐ๋ฅผ ๋ฎ์ด์ธ ์ ์๊ฒ ํ๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํฉ๋๋ค.
ํ์ง๋ง ํ์ฌ๋ก์๋ ์ธ๊ธ๋ ์ฝ๋๋ฅผ ์คํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค: malloc(): unaligned tcache chunk detected. ๋ฐ๋ผ์ ์๋ก์ด ํฌ์ธํฐ์ ์ฃผ์๋ฅผ ์ธ ๋ ์ ๋ ฌ๋ ์ฃผ์๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค(๋๋ ์ด์ง ํ์ผ์ ์ถฉ๋ถํ ์คํํ์ฌ ์์ฑ๋ ์ฃผ์๊ฐ ์ค์ ๋ก ์ ๋ ฌ๋๋๋ก ํด์ผ ํฉ๋๋ค).
Tcache indexes attack
์ผ๋ฐ์ ์ผ๋ก ํ์ ์์ ๋ถ๋ถ์์ tcache ๋ด ์ธ๋ฑ์ค๋น ์ฒญํฌ ์์ ๊ฐ tcache ์ธ๋ฑ์ค์ ํค๋ ์ฒญํฌ ์ฃผ์๋ฅผ ํฌํจํ๋ ์ฒญํฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ์ด๋ค ์ด์ ๋ก ์ด ์ ๋ณด๋ฅผ ์์ ํ ์ ์๋ค๋ฉด, ์ด๋ค ์ธ๋ฑ์ค์ ํค๋ ์ฒญํฌ๋ฅผ ์ํ๋ ์ฃผ์(์: __malloc_hook)๋ฅผ ๊ฐ๋ฆฌํค๊ฒ ํ ์ ์์ผ๋ฉฐ, ์ดํ ์ธ๋ฑ์ค ํฌ๊ธฐ์ ์ฒญํฌ๋ฅผ ํ ๋นํ๊ณ ์ด ๊ฒฝ์ฐ __malloc_hook์ ๋ด์ฉ์ ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
Examples
- CTF https://guyinatuxedo.github.io/29-tcache/dcquals19_babyheap/index.html
- Libc info leak: tcaches๋ฅผ ์ฑ์ฐ๊ณ , ์ ๋ ฌ๋์ง ์์ ๋ฆฌ์คํธ์ ์ฒญํฌ๋ฅผ ์ถ๊ฐํ ํ, tcache๋ฅผ ๋น์ฐ๊ณ ์ ๋ ฌ๋์ง ์์ ๋น์์ ์ฒญํฌ๋ฅผ ๋ค์ ํ ๋นํ์ฌ ์ฒซ 8B๋ง ๋ฎ์ด์ฐ๊ณ , ์ฒญํฌ์ ๋ ๋ฒ์งธ ์ฃผ์๋ฅผ libc์์ ๊ทธ๋๋ก ๋์ด ์ฝ์ ์ ์๊ฒ ํฉ๋๋ค.
- Tcache attack: ์ด ์ด์ง ํ์ผ์ 1B ํ ์ค๋ฒํ๋ก์ฐ์ ์ทจ์ฝํฉ๋๋ค. ์ด๋ฅผ ์
์ฉํ์ฌ ํ ๋น๋ ์ฒญํฌ์ ํฌ๊ธฐ ํค๋๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋ ํฌ๊ฒ ๋ง๋ญ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด ์ฒญํฌ๋ฅผ ํด์ ํ๊ณ , ๊ฐ์ง ํฌ๊ธฐ์ ์ฒญํฌ tcache์ ์ถ๊ฐํฉ๋๋ค. ์ดํ ๊ฐ์ง ํฌ๊ธฐ๋ก ์ฒญํฌ๋ฅผ ํ ๋นํ๋ฉด ์ด์ ์ฒญํฌ๊ฐ ๋ฐํ๋๋ฉฐ ์ด ์ฒญํฌ๋ ์ค์ ๋ก ๋ ์์๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ ์ฒญํฌ๋ฅผ ๋ฎ์ด์ธ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ด๋ฅผ ์ ์ฉํ์ฌ ๋ค์ ์ฒญํฌ์ FD ํฌ์ธํฐ๋ฅผ **malloc_hook**๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๋ฎ์ด์๋๋ค. ๊ทธ๋ฌ๋ฉด ๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ํ ๋นํ ์ ์์ต๋๋ค: ์ฒซ ๋ฒ์งธ๋ ์ฐ๋ฆฌ๊ฐ ๋ฐฉ๊ธ ์์ ํ ์ ๋นํ ํฌ์ธํฐ์ด๊ณ , ๋ ๋ฒ์งธ ํ ๋น์ **malloc_hook**์ ์๋ ์ฒญํฌ๋ฅผ ๋ฐํํ์ฌ one gadget๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. - CTF https://guyinatuxedo.github.io/29-tcache/plaid19_cpp/index.html
- Libc info leak: ์ฌ์ฉ ํ ํด์ ์ ์ด์ค ํด์ ๊ฐ ์์ต๋๋ค. ์ด ๊ธ์์ ์ ์๋ ์์ ๋น์ ๋ฐฐ์น๋ ์ฒญํฌ์ ์ฃผ์๋ฅผ ์ฝ์ด libc์ ์ฃผ์๋ฅผ ์ ์ถํ์ต๋๋ค(์ ๋ ฌ๋์ง ์์ ๋น์์ ์ ์ถํ๋ ๊ฒ๊ณผ ๋น์ทํ์ง๋ง ์์ ๋น์์).
- Tcache attack: Tcache๋ ์ด์ค ํด์ ๋ฅผ ํตํด ์ํ๋ฉ๋๋ค. ๋์ผํ ์ฒญํฌ๊ฐ ๋ ๋ฒ ํด์ ๋๋ฏ๋ก Tcache ๋ด์์ ์ฒญํฌ๊ฐ ์๊ธฐ ์์ ์ ๊ฐ๋ฆฌํค๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ํ ๋น๋๊ณ , FD ํฌ์ธํฐ๊ฐ free hook์ ๊ฐ๋ฆฌํค๋๋ก ์์ ๋ ํ ๋ค์ ํ ๋น๋์ด ๋ฆฌ์คํธ์ ๋ค์ ์ฒญํฌ๊ฐ free hook์ ์๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๊ฒ๋ ํ ๋น๋์ด
system์ ์ฃผ์๋ฅผ ์ฌ๊ธฐ์ ์ธ ์ ์์ผ๋ฏ๋ก"/bin/sh"๋ฅผ ํฌํจํ๋ malloc์ด ํด์ ๋ ๋ ์ ธ์ ์ป์ต๋๋ค. - CTF https://guyinatuxedo.github.io/44-more_tcache/csaw19_popping_caps0/index.html
- ์ฌ๊ธฐ์ ์ฃผ์ ์ทจ์ฝ์ ์ ์คํ์
์ ์ง์ ํ์ฌ ํ์ **์ด๋ค ์ฃผ์๋
free**ํ ์ ์๋ ๋ฅ๋ ฅ์ ๋๋ค. - Tcache indexes attack: tcache ์ฒญํฌ(์ฒญํฌ ์ ๋ณด๊ฐ ํฌํจ๋ ์ฒญํฌ) ๋ด์ ์ ์ฅ๋ ๋ ๊ฐ์ด 0x100์ธ ์ฃผ์๋ฅผ ์์ฑํ๋ ํฌ๊ธฐ์ ์ฒญํฌ๋ฅผ ํ ๋นํ๊ณ ํด์ ํ ์ ์์ต๋๋ค. ์ด๋ tcache๊ฐ ๊ฐ ๋น์ ์ฒญํฌ ์๋ฅผ ์๋ก ๋ค๋ฅธ ๋ฐ์ดํธ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ด๋ฉฐ, ๋ฐ๋ผ์ ํน์ ์ธ๋ฑ์ค์ ์ฒญํฌ๊ฐ 0x100 ๊ฐ์ ์์ฑํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ์ด ๊ฐ์ 0x100 ํฌ๊ธฐ์ ์ฒญํฌ๊ฐ ์๋ ๊ฒ์ฒ๋ผ ๋ณด์
๋๋ค. ์ด๋ฅผ ํตํด ์ด ์ฃผ์๋ฅผ
freeํ์ฌ tcache์ 0x100 ํฌ๊ธฐ ์ฒญํฌ ์ธ๋ฑ์ค์ ํด๋น ์ฃผ์๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. - ๊ทธ๋ฐ ๋ค์ 0x100 ํฌ๊ธฐ์ ์ฒญํฌ๋ฅผ ํ ๋นํ๋ฉด, ์ด์ ์ฃผ์๊ฐ ์ฒญํฌ๋ก ๋ฐํ๋์ด ๋ค๋ฅธ tcache ์ธ๋ฑ์ค๋ฅผ ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ทธ ์ค ํ๋์ malloc hook์ ์ฃผ์๋ฅผ ๋ฃ๊ณ ํด๋น ์ธ๋ฑ์ค ํฌ๊ธฐ์ ์ฒญํฌ๋ฅผ ํ ๋นํ๋ฉด calloc hook์ ์ฒญํฌ๊ฐ ํ ๋น๋์ด one gadget๋ฅผ ์์ฑํ์ฌ ์ ธ์ ์ป์ ์ ์์ต๋๋ค. - CTF https://guyinatuxedo.github.io/44-more_tcache/csaw19_popping_caps1/index.html
- ์ด์ ๊ณผ ๋์ผํ ์ทจ์ฝ์ ์ ์ถ๊ฐ ์ ํ์ด ์์ต๋๋ค.
- Tcache indexes attack: ์ด์ ๊ณผ ์ ์ฌํ ๊ณต๊ฒฉ์ด์ง๋ง tcache ์ ๋ณด๋ฅผ ํฌํจํ๋ ์ฒญํฌ๋ฅผ ํด์ ํ์ฌ ๊ทธ ์ฃผ์๊ฐ ํด๋น ํฌ๊ธฐ์ tcache ์ธ๋ฑ์ค์ ์ถ๊ฐ๋๋๋ก ํ์ฌ ํด๋น ํฌ๊ธฐ๋ฅผ ํ ๋นํ๊ณ tcache ์ฒญํฌ ์ ๋ณด๋ฅผ ์ฒญํฌ๋ก ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด free hook์ ์ธ๋ฑ์ค์ ์ฃผ์๋ก ์ถ๊ฐํ๊ณ ํ ๋นํ์ฌ ๊ทธ ์์ one gadget๋ฅผ ์ธ ์ ์์ต๋๋ค.
- Math Door. HTB Cyber Apocalypse CTF 2023
fdํฌ์ธํฐ์ ์ซ์๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํ Write After Free.- ์ด ๋์ ๊ณผ์ ์์๋ ๋ง์ heap feng-shui๊ฐ ํ์ํฉ๋๋ค. ์ด ๊ธ์์๋ Tcache์ ํค๋๋ฅผ ์ ์ดํ๋ ๊ฒ์ด ๋งค์ฐ ์ ์ฉํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค.
stdout๋ฅผ ํตํ Glibc leak (FSOP).- ์์์ ์ฐ๊ธฐ ์์๋ฅผ ์ป๊ธฐ ์ํ Tcache poisoning.
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


