
[System Hacking] 2์ฃผ์ฐจ dreamhack stage 12 - (2)
2022. 4. 30. 19:30
DreamHack/SystemHacking
Tcache poisoning โท ์ค๋ณต์ผ๋ก ์ฐ๊ฒฐ๋ ์ฒญํฌ๋ฅผ ์ฌํ ๋นํ๋ฉด, ๊ทธ ์ฒญํฌ๊ฐ ํด์ ๋ ์ฒญํฌ์ธ ๋์์ ํ ๋น๋ ์ฒญํฌ๋ผ๋ ํน์ง์ ์ด์ฉ โท ์ด๋ฐ ์ค์ฒฉ ์ํ ์ด์ฉ -> ์์ ์ฃผ์์ ์ฒญํฌ ํ ๋น ๊ฐ๋ฅ, ๊ทธ ์ฒญํฌ๋ฅผ ์ด์ฉํ์ฌ ์์ ์ฃผ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์กฐ์ ๊ฐ๋ฅ 1. Tcache Poisioning Tcache Poisoning : Tcache๋ฅผ ์กฐ์ํ์ฌ ์์ ์ฃผ์์ ์ฒญํฌ๋ฅผ ํ ๋น์ํค๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ ์๋ฆฌ ์ค๋ณต์ผ๋ก ์ฐ๊ฒฐ๋ ์ฒญํฌ๋ฅผ ์ฌํ ๋นํ๋ฉด, ๊ทธ ์ฒญํฌ๋ ํ ๋น๋ ์ฒญํฌ์ด๋ฉด์, ๋์์ ํด์ ๋ ์ฒญํฌ๊ฐ ๋๋ค. ๋ฐ๋ผ์ ๊ณต๊ฒฉ์๊ฐ ์ค์ฒฉ ์ํ์ธ ์ฒญํฌ์ ์์์ ๊ฐ์ ์ธ ์ ์๋ค๋ฉด, ๊ทธ ์ฒญํฌ์ fd์ bk๋ฅผ ์กฐ์ํ ์ ์์ ๋ค์ ๋งํด ptmalloc์ free list์ ์์ ์ฃผ์๋ฅผ ์ถ๊ฐํ ์ ์์์ ์๋ฏธ ptmalloc2๋ ๋์ ํ ๋น ์์ฒญ์..

[System Hacking] 2์ฃผ์ฐจ dreamhack stage 12 - (1)
2022. 4. 8. 11:49
DreamHack/SystemHacking
free๋ก ํด์ ํ ์ฒญํฌ๋ฅผ free๋ก ๋ค์ ํด์ ํ์ ๋ ๋ฐ์ํ๋ ํ์์ ์ฃผ๋ชฉ - free : ์ฒญํฌ๋ฅผ ์ถ๊ฐํ๋ ํจ์, malloc : ์ฒญํฌ๋ฅผ ๊บผ๋ด๋ ํจ์ - ์์์ ์ฒญํฌ์ ๋ํด free๋ฅผ ๋ ๋ฒ์ด์ ์ ์ฉํ ์ ์๋ค โท ์ฒญํฌ๋ฅผ free list์ ์ฌ๋ฌ ๋ฒ ์ถ๊ฐํ ์ ์์ - ์ฒญํฌ๊ฐ free list์ ์ค๋ณตํด์ ์กด์ฌํ๋ฉด ์ฒญํฌ๊ฐ duplicated ๋์๋ค๊ณ ํ๋ค. -> duplocated free list๋ฅผ ์ด์ฉํ๋ฉด ์์ ์ฃผ์์ ์ฒญํฌ๋ฅผ ํ ๋นํ ์ ์๋ค. โถ ๊ฐ์ ์ฒญํฌ๋ฅผ ์ค๋ณตํด์ ํด์ ํ ์ ์๋ ์ฝ๋๋ ๋ณด์์์ ์ฝ์ ์ผ๋ก ๋ถ๋ฅ, Double Free Bug๋ผ๊ณ ๋ถ๋ฆ 1. Double Free Bug (DFB) - ๊ฐ์ ์ฒญํฌ๋ฅผ ๋ ๋ฒ ํด์ ํ ์ ์๋ ๋ฒ๊ทธ - ptmalloc2์์ free list์ ๊ฐ ์ฒญํฌ๋ค์ fd์..

[System Hacking] 2์ฃผ์ฐจ dreamhack stage 12
2022. 4. 7. 18:54
DreamHack/SystemHacking
ptmalloc2๋ ์ด๋ค ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์ ๋๋ฉด ํด์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ํน์ง์ ๊ธฐ์ตํ๊ณ ์๋ค๊ฐ ๋น์ทํ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋น ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์ด๋ฅผ ๋น ๋ฅด๊ฒ ๋ณํํด์ค๋ค. --> ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์๋๋ฅผ ๋์ผ ์ ์๊ณ , ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ๋ง์ ์ ์๋ค. - ptmalloc2๋ ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฆฌ๋
์ค์ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ โ โ 1. ptmalloc2 (pthread malloc 2) : Wolfram Gloger๊ฐ ๊ฐ๋ฐํ Memory Allocater๋ก, Doug Lea์ dlmalloc์ ๊ฐ์ ํ ptmalloc์ ๋ ๋ฒ์งธ ๋ฒ์ ์ด๋ค. ptmalloc์ ๊ตฌํ ๋ชฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ํจ์จ์ ์ธ ๊ด๋ฆฌ์ด๋ค. โ ์ธ๋ถ ๋ชฉํ 1) ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น ๋ฐฉ์ง 2) ๋น ๋ฅธ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฌ์ฉ 3) ๋ฉ๋ชจ๋ฆฌ ๋จํธํ ๋ฐฉ์ง * ์ฒญํฌ : ptmalloc2๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋..

[System Hacking] 1์ฃผ์ฐจ dreamhack stage 11 - (2)
2022. 4. 7. 17:37
DreamHack/SystemHacking
Use After Free ์ฃผ์ด์ง ์ฝ๋ uaf_overwrite.c๋ ์๋์ ๊ฐ๋ค. // Name: uaf_overwrite.c // Compile: gcc -o uaf_overwrite uaf_overwrite.c #include #include #include #include struct Human { char name[16]; int weight; long age; }; struct Robot { char name[16]; int weight; void (*fptr)(); }; struct Human *human; struct Robot *robot; char *custom[10]; int c_idx; void print_name() { printf("Name: %s\n", robot->name);..

[System Hacking] 1์ฃผ์ฐจ dreamhack stage 11 - (1)
2022. 4. 7. 17:33
DreamHack/SystemHacking
Use After Free ์ต์คํ๋ก์ ์์ // Name: uaf_overwrite.c // Compile: gcc -o uaf_overwrite uaf_overwrite.c #include #include #include #include struct Human { char name[16]; int weight; long age; }; struct Robot { char name[16]; int weight; void (*fptr)(); }; struct Human *human; struct Robot *robot; char *custom[10]; int c_idx; void print_name() { printf("Name: %s\n", robot->name); } void menu() { printf..

[System Hacking] 1์ฃผ์ฐจ Dreamhack stage 11
2022. 4. 7. 17:15
DreamHack/SystemHacking
ptmalloc2 (๋ฆฌ๋
์ค glibc 2.23 ์์ ํ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํ ๋, ptmalloc2 ๋ผ๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์๋ฅผ ์ฌ์ฉ) 1. Use-After-Free : ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ์ ์ฌ์ฉํ ํฌ์ธํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ํด์ ํ์ ์ ์ ํ ์ด๊ธฐํํ์ง ์์์, ๋๋ ํด์ ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๊ธฐํํ์ง ์๊ณ ๋ค์ ์ฒญํฌ์ ์ฌํ ๋นํด์ฃผ๋ฉด์ ๋ฐ์ํ๋ ์ทจ์ฝ์ โ Dangling Pointer : ์ ํจํ์ง ์์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ - ํ๋ก๊ทธ๋จ์ด ์์์น ๋ชปํ ๋์์ ํ ๊ฐ๋ฅ์ฑ์ ํค์ - ๊ณต๊ฒฉ์์๊ฒ ๊ณต๊ฒฉ ์๋จ์ผ๋ก ํ์ฉ๋ ์๋ ์์ โ * malloc ํจ์๋ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ๋ฐํํ๋ ํจ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์ ํ ๋นํ ๋์ ํฌ์ธํฐ๋ฅผ ์ ์ธํ๊ณ , ๊ทธ ํฌ์ธํฐ์ mallocํจ์๊ฐ ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ์ ์ฃผ์๋ฅผ ์ ์ฅ -> ์ ๊ทผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ ๋ freeํจ์ ์ฌ..