Heap Overflow
Last updated
Last updated
AWS ํดํน ํ์ต ๋ฐ ์ค์ต:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ํ์ต ๋ฐ ์ค์ต: HackTricks Training GCP Red Team Expert (GRTE)
ํ ์ค๋ฒํ๋ก์ฐ๋ ํ์์ ๋ฐ์ํ๋ ์คํ ์ค๋ฒํ๋ก์ฐ์ ์ ์ฌํฉ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๊ณต๊ฐ์ด ์์ฝ๋์์ง๋ง ์ ์ฅ๋ ๋ฐ์ดํฐ๊ฐ ์์ฝ๋ ๊ณต๊ฐ๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํฉ๋๋ค.
์คํ ์ค๋ฒํ๋ก์ฐ์์๋ ๋ช ๊ฐ์ง ๋ ์ง์คํฐ(๋ช ๋ น ํฌ์ธํฐ ๋๋ ์คํ ํ๋ ์๊ณผ ๊ฐ์)๊ฐ ์คํ์์ ๋ณต์๋ ๊ฒ์ด๋ฉฐ ์ด๋ฅผ ์ ์ฉํ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. ํ ์ค๋ฒํ๋ก์ฐ์ ๊ฒฝ์ฐ, ํ ์ฒญํฌ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฏผ๊ฐํ ์ ๋ณด๊ฐ ์ ์ฅ๋์ด ์์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ฏผ๊ฐํ ์ ๋ณด๋ ํฌ์ธํฐ๊ฐ ๋ ์ ์์ผ๋ฏ๋ก ์ด ์ทจ์ฝ์ ์ ์ค์์ฑ์ ๋ฌด์์ด ๋ฎ์ด์ฐ์ฌ์ง ์ ์๋์ง ๋ฐ ๊ณต๊ฒฉ์๊ฐ ์ด๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ ์ ์๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ค๋ฒํ๋ก์ฐ ์คํ์ ์ ์ฐพ๊ธฐ ์ํด ์คํ ์ค๋ฒํ๋ก์ฐ์์์ ๊ฐ์ ํจํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์คํ ์ค๋ฒํ๋ก์ฐ์์๋ ์ทจ์ฝ์ ์ด ํธ๋ฆฌ๊ฑฐ๋ ๋ ์คํ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ ๋ฐ ๋ฐฐ์ด์ด ์๋นํ ์ ๋ขฐํ ์ ์์ต๋๋ค. ์ด๋ ์คํ์ด ์ ํ์ด๋ฉฐ ์ถฉ๋ ๋ฉ๋ชจ๋ฆฌ์์ ํญ์ ์ฆ๊ฐํ๋ฉฐ, ํ๋ก๊ทธ๋จ ์คํ ์ค ์คํ ๋ฉ๋ชจ๋ฆฌ์ ํน์ ์์น์๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฌํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ฉฐ ๊ฐ ํจ์์์ ์ฌ์ฉํ๋ ์คํ ๋ถ๋ถ ๋์ ์ผ๋ถ ํฌ์ธํฐ๊ฐ ์๋ ํน์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๊ทธ๋ฌ๋ ํ ์ค๋ฒํ๋ก์ฐ์ ๊ฒฝ์ฐ, ์ฌ์ฉ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์ ํ์ด ์๋์ง๋ง ํ ๋น๋ ์ฒญํฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ๋ถ๋ฆฌ๋ ์์น(์๋ก ์์ ์์นํ์ง ์์)์ ์์ต๋๋ค. ์ด๋ ํฌ๊ธฐ์ ๋ฐ๋ผ ํ ๋น์ ๋ถ๋ฆฌํ๋ bins ๋ฐ zones๋ก ์ธํด ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ก์ด ์ฒญํฌ๋ฅผ ํ ๋นํ๊ธฐ ์ ์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด๋ค ๊ฐ์ฒด๊ฐ ์ค๋ฒํ๋ก์ฐ๋ ๊ฒ์ธ์ง ์์๋ด๋ ๊ฒ์ ๋ณต์กํฉ๋๋ค. ๋ฐ๋ผ์ ํ ์ค๋ฒํ๋ก์ฐ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ์ํ๋ ๊ฐ์ฒด๊ฐ ์ค๋ฒํ๋ก์ฐ๋ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋ค์์ ์์นํ๋๋ก ํ๋ ์ ๋ขฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผ ํฉ๋๋ค.
์ด๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๊ธฐ์ ์ค ํ๋๋ Heap Grooming์ ๋๋ค. ์ด ๊ธฐ์ ์ ์๋ฅผ ๋ค์ด ์ด ๊ฒ์๋ฌผ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ฒ์๋ฌผ์์๋ iOS ์ปค๋์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฅํ ๊ณต๊ฐ์ด ๋ถ์กฑํด์ง๋ฉด ์ปค๋ ํ์ด์ง๋ก ํ์ฅ๋๊ณ , ์ด ํ์ด์ง๋ ์์ ํฌ๊ธฐ์ ์ฒญํฌ๋ก ๋ถํ ๋์ด ์ฌ์ฉ๋ฉ๋๋ค(9.2 ๋ฒ์ ์ด์ ๊น์ง๋ ์ด๋ฌํ ์ฒญํฌ๊ฐ ์ด๋ฌํ ๊ณต๊ฒฉ์ ์ด๋ ค์์ ์ํด ๋ฌด์์๋ก ์ฌ์ฉ๋ฉ๋๋ค).
๋ฐ๋ผ์ ํ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ๋ ์ด์ ๊ฒ์๋ฌผ์์ ์ค๋ฒํ๋ก์ฐ๋ ๊ฐ์ฒด๊ฐ ํฌ์์ ์์์ ์ถฉ๋ํ๋๋ก ๊ฐ์ ํ๋ ค๋ฉด ์ฌ๋ฌ kallocs
๊ฐ ์ฌ๋ฌ ์ค๋ ๋์ ์ํด ๊ฐ์ ๋ก ์คํ๋์ด ๋ชจ๋ ๋น ์ฒญํฌ๊ฐ ์ฑ์์ง๊ณ ์ ํ์ด์ง๊ฐ ์์ฑ๋๋๋ก ํด์ผ ํฉ๋๋ค.
ํน์ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ก ์ด ์ฑ์์ ๊ฐ์ ํ๊ธฐ ์ํด iOS mach port์ ๊ด๋ จ๋ out-of-line ํ ๋น์ด ์ด์์ ์ธ ํ๋ณด์
๋๋ค. ๋ฉ์์ง ํฌ๊ธฐ๋ฅผ ์กฐ์ ํจ์ผ๋ก์จ kalloc
ํ ๋น์ ํฌ๊ธฐ๋ฅผ ์ ํํ ์ง์ ํ ์ ์์ผ๋ฉฐ ํด๋น mach port๊ฐ ํ๊ดด๋๋ฉด ํด๋น ํ ๋น์ ์ฆ์ kfree
๋ก ๋ฐํ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ์ด๋ฌํ ํ๋ ์ด์คํ๋ ์ค ์ผ๋ถ๋ฅผ ํด์ ํ ์ ์์ต๋๋ค. kalloc.4096
free list๋ ํ์
์ ์ถ ์์๋ก ์์๋ฅผ ํด์ ํ๋ฏ๋ก ์ผ๋ถ ํ๋ ์ด์คํ๋๊ฐ ํด์ ๋๊ณ ์
์ฉ์ด ๊ฐ๋ฅํ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ ค๋ ๋์ ์ค๋ฒํ๋ก์ฐ๋ ๊ฐ์ฒด๋ฅผ ํ ๋นํ๋ ค๋ ์๋๊ฐ ์์ผ๋ฉด ์ด ๊ฐ์ฒด๊ฐ ํฌ์์ ๊ฐ์ฒด ๋ค์ ๋ฐ๋ฅด๊ฒ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์ด ํ์ด์ง์์๋ ์ด์ ์ฒญํฌ์ prev in use ๋นํธ์ prev size์ ์์น๋ฅผ ๋ฎ์ด์ฐ๋ ๊ฒ์ผ๋ก ์ฌ์ฉ ์ค์ธ ์ฒญํฌ๋ฅผ ํตํฉํ ์ ์๊ณ , ๊ทธ๋ฐ ๋ค์ ๋ค์ ํ ๋นํ์ฌ ๋ค๋ฅธ ํฌ์ธํฐ์์ ์ฌ์ฉ ์ค์ธ ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ธ ์ ์๋ ๊ธฐ๋ณธ์ ์ธ ํ ์ค๋ฒํ๋ก์ฐ ์๋ฎฌ๋ ์ด์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
protostar heap 0์ ๋ค๋ฅธ ์์๋ ํ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์ ์ฉํ์ฌ ์น์ ํจ์๋ฅผ ํธ์ถํ์ฌ ํ๋๊ทธ๋ฅผ ํ๋ํ ์ ์๋ CTF์ ๋งค์ฐ ๊ธฐ๋ณธ์ ์ธ ์์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
protostar heap 1์ ์์์์๋ ๋ฒํผ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์ ์ฉํ์ฌ ์ฌ์ฉ์๋ก๋ถํฐ์ ์์ ๋ฐ์ดํฐ๊ฐ ์ฐ์ผ ์ฃผ์๋ฅผ ๊ฐ๊น์ด ์ฒญํฌ์ ๋ฎ์ด์ฐ๋ ๊ฒ์ด ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ๋ณผ ์ ์์ต๋๋ค.
https://8ksec.io/arm64-reversing-and-exploitation-part-1-arm-instruction-set-simple-heap-overflow/ ํ์ด์ง์์๋ ์คํ๋ ๋ช ๋ น์ด ์ค๋ฒํ๋ก์ฐ๋ ์ฒญํฌ์์ ์ ์ฅ๋๋ ํ ์ค๋ฒํ๋ก์ฐ ์์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฌ์ด ์ ์ฉ์ ํตํด ์คํ๋ ๋ช ๋ น์ ๋ฎ์ด์ฐ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์ ์ ์ค๋ฒํ๋ก ์ทจ์ฝ์ ์ ์ฌ์ฉํ์ฌ ํ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์ป์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ค๋ฒํ๋ก๋ ์ฒญํฌ์ struct
๋ด๋ถ์ ํจ์์ ๋ํ ํฌ์ธํฐ๋ฅผ ์์์์ผ system
๊ณผ ๊ฐ์ ํจ์๋ฅผ ์ค์ ํ๊ณ ์ฝ๋ ์คํ์ ์ป์ต๋๋ค.
AWS ํดํน ํ์ต ๋ฐ ์ค์ต:HackTricks Training AWS Red Team Expert (ARTE) GCP ํดํน ํ์ต ๋ฐ ์ค์ต: HackTricks Training GCP Red Team Expert (GRTE)