WWW2Exec - GOT/PLT
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
๊ธฐ๋ณธ ์ ๋ณด
GOT: ์ ์ญ ์คํ์ ํ ์ด๋ธ
**์ ์ญ ์คํ์ ํ ์ด๋ธ(GOT)**์ ๋์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๋ฐ์ด๋๋ฆฌ์์ ์ธ๋ถ ํจ์์ ์ฃผ์๋ฅผ ๊ด๋ฆฌํ๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ์ด๋ฌํ ์ฃผ์๋ ๋ฐํ์๊น์ง ์๋ ค์ง์ง ์๊ธฐ ๋๋ฌธ์(๋์ ์ฐ๊ฒฐ๋ก ์ธํด), GOT๋ ์ด๋ฌํ ์ธ๋ถ ๊ธฐํธ์ ์ฃผ์๊ฐ ํด๊ฒฐ๋ ํ ๋์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
GOT์ ๊ฐ ํญ๋ชฉ์ ๋ฐ์ด๋๋ฆฌ๊ฐ ํธ์ถํ ์ ์๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ธฐํธ์ ํด๋นํฉ๋๋ค. ํจ์๊ฐ ์ฒ์ ํธ์ถ๋ ๋, ์ค์ ์ฃผ์๋ ๋์ ๋ง์ปค์ ์ํด ํด๊ฒฐ๋์ด GOT์ ์ ์ฅ๋ฉ๋๋ค. ์ดํ ๋์ผํ ํจ์์ ๋ํ ํธ์ถ์ GOT์ ์ ์ฅ๋ ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์๋ฅผ ๋ค์ ํด๊ฒฐํ๋ ์ค๋ฒํค๋๋ฅผ ํผํฉ๋๋ค.
PLT: ํ๋ก์์ ๋งํฌ ํ ์ด๋ธ
**ํ๋ก์์ ๋งํฌ ํ ์ด๋ธ(PLT)**์ GOT์ ๋ฐ์ ํ๊ฒ ์๋ํ๋ฉฐ ์ธ๋ถ ํจ์ ํธ์ถ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํธ๋จํด๋ฆฐ ์ญํ ์ ํฉ๋๋ค. ๋ฐ์ด๋๋ฆฌ๊ฐ ์ธ๋ถ ํจ์๋ฅผ ์ฒ์ ํธ์ถํ ๋, ์ ์ด๋ ํด๋น ํจ์์ ์ฐ๊ฒฐ๋ PLT์ ํญ๋ชฉ์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ์ด PLT ํญ๋ชฉ์ ํจ์์ ์ฃผ์๊ฐ ์์ง ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ ๋์ ๋ง์ปค๋ฅผ ํธ์ถํ์ฌ ์ฃผ์๋ฅผ ํด๊ฒฐํ๋ ์ญํ ์ ํฉ๋๋ค. ์ฃผ์๊ฐ ํด๊ฒฐ๋ ํ, ๊ทธ๊ฒ์ GOT์ ์ ์ฅ๋ฉ๋๋ค.
๋ฐ๋ผ์, GOT ํญ๋ชฉ์ ์ธ๋ถ ํจ์๋ ๋ณ์์ ์ฃผ์๊ฐ ํด๊ฒฐ๋ ํ ์ง์ ์ฌ์ฉ๋ฉ๋๋ค. PLT ํญ๋ชฉ์ ๋์ ๋ง์ปค๋ฅผ ํตํด ์ด๋ฌํ ์ฃผ์์ ์ด๊ธฐ ํด๊ฒฐ์ ์ฉ์ดํ๊ฒ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์คํ ๊ฐ์ ธ์ค๊ธฐ
GOT ํ์ธ
GOT ํ
์ด๋ธ์ ์ฃผ์๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด: objdump -s -j .got ./exec
.png)
GEF์์ ์คํ ํ์ผ์ ๋ก๋ํ ํ GOT์ ์๋ ํจ์๋ฅผ ๋ณผ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ด์ฐฐํ์ธ์: gefโค x/20x 0xADDR_GOT
 (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (2) (2).png)
GEF๋ฅผ ์ฌ์ฉํ์ฌ ๋๋ฒ๊น
์ธ์
์ ์์ํ๊ณ **got**๋ฅผ ์คํํ์ฌ GOT ํ
์ด๋ธ์ ํ์ธํ ์ ์์ต๋๋ค:
.png)
GOT2Exec
๋ฐ์ด๋๋ฆฌ์์ GOT๋ ํจ์์ ์ฃผ์ ๋๋ ํจ์ ์ฃผ์๋ฅผ ๋ก๋ํ PLT ์น์
์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด ์์ ์ฐ๊ธฐ์ ๋ชฉํ๋ ๋์ค์ ์คํ๋ ํจ์์ GOT ํญ๋ชฉ์ system ํจ์์ PLT ์ฃผ์๋ก ๋ฎ์ด์ฐ๋ ๊ฒ์
๋๋ค.
์ด์์ ์ผ๋ก๋, ๋น์ ์ด ์ ์ดํ๋ ๋งค๊ฐ๋ณ์๋ก ํธ์ถ๋ ํจ์์ GOT๋ฅผ ๋ฎ์ด์จ์ผ ํฉ๋๋ค(๊ทธ๋์ผ ์์คํ ํจ์์ ์ ๋ฌ๋๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ดํ ์ ์์ต๋๋ค).
๋ง์ฝ system ์ด ๋ฐ์ด๋๋ฆฌ์์ ์ฌ์ฉ๋์ง ์๋๋ค๋ฉด, ์์คํ
ํจ์๋ PLT์ ํญ๋ชฉ์ด ์์ ๊ฒ์
๋๋ค. ์ด ์๋๋ฆฌ์ค์์๋ ๋จผ์ system ํจ์์ ์ฃผ์๋ฅผ ์ ์ถํ ํ GOT๋ฅผ ์ด ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ๋ฎ์ด์จ์ผ ํฉ๋๋ค.
PLT ์ฃผ์๋ **objdump -j .plt -d ./vuln_binary**๋ก ํ์ธํ ์ ์์ต๋๋ค.
libc GOT ํญ๋ชฉ
libc์ GOT๋ ์ผ๋ฐ์ ์ผ๋ก ๋ถ๋ถ RELRO๋ก ์ปดํ์ผ๋์ด, ๊ทธ ์ฃผ์๋ฅผ ํ์ ํ ์ ์๋ค๋ฉด ์ข์ ๋ชฉํ๊ฐ ๋ฉ๋๋ค (ASLR).
libc์ ์ผ๋ฐ์ ์ธ ํจ์๋ ๋ค๋ฅธ ๋ด๋ถ ํจ์๋ฅผ ํธ์ถํ ๊ฒ์ด๋ฉฐ, ์ด ํจ์์ GOT๋ ์ฝ๋ ์คํ์ ์ป๊ธฐ ์ํด ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
์ด ๊ธฐ์ ์ ๋ํ ๋ ๋ง์ ์ ๋ณด๋ ์ฌ๊ธฐ์์ ํ์ธํ์ธ์.
Free2system
ํ ์ต์คํ๋ก์ CTF์์๋ ์ฒญํฌ์ ๋ด์ฉ์ ์ ์ดํ ์ ์๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ฉฐ, ๋๋๋ก GOT ํ
์ด๋ธ์ ๋ฎ์ด์ธ ์ ์์ต๋๋ค. ๊ฐ์ ฏ์ด ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ RCE๋ฅผ ์ป๊ธฐ ์ํ ๊ฐ๋จํ ํธ๋ฆญ์ free GOT ์ฃผ์๋ฅผ system์ ๊ฐ๋ฆฌํค๋๋ก ๋ฎ์ด์ฐ๊ณ ์ฒญํฌ์ "/bin/sh"๋ฅผ ์์ฑํ๋ ๊ฒ์
๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ด ์ฒญํฌ๊ฐ ํด์ ๋ ๋ system("/bin/sh")๊ฐ ์คํ๋ฉ๋๋ค.
Strlen2system
๋ ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ๊ธฐ์ ์ strlen GOT ์ฃผ์๋ฅผ **system**์ ๊ฐ๋ฆฌํค๋๋ก ๋ฎ์ด์ฐ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ์ด ํจ์๊ฐ ์ฌ์ฉ์ ์
๋ ฅ์ผ๋ก ํธ์ถ๋๋ฉด ๋ฌธ์์ด "/bin/sh"๋ฅผ ์ ๋ฌํ์ฌ ์
ธ์ ์ป์ ์ ์์ต๋๋ค.
๊ฒ๋ค๊ฐ, puts๊ฐ ์ฌ์ฉ์ ์
๋ ฅ๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ฉด, strlen GOT ์ฃผ์๋ฅผ system์ ๊ฐ๋ฆฌํค๋๋ก ๋ฎ์ด์ฐ๊ณ ๋ฌธ์์ด "/bin/sh"๋ฅผ ์ ๋ฌํ์ฌ ์
ธ์ ์ป์ ์ ์์ต๋๋ค. ์๋ํ๋ฉด puts๋ ์ฌ์ฉ์ ์
๋ ฅ์ผ๋ก strlen์ ํธ์ถํ๊ธฐ ๋๋ฌธ์
๋๋ค.
One Gadget
ํ์์ GOT ๋จ์ฉํ๊ธฐ
ํ ์ทจ์ฝ์ ์์ RCE๋ฅผ ์ป๋ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ ๋น ๋ฅธ ๋น์ ๋จ์ฉํ์ฌ GOT ํ
์ด๋ธ์ ์ผ๋ถ๋ฅผ ๋น ๋ฅธ ๋น์ ์ถ๊ฐํ๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ํด๋น ์ฒญํฌ๊ฐ ํ ๋น๋ ๋ ์ผ๋ฐ์ ์ผ๋ก free์ ํฌ์ธํฐ๋ฅผ ๋ฎ์ด์ธ ์ ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ free๋ฅผ system์ ๊ฐ๋ฆฌํค๋๋ก ํ๊ณ /bin/sh\x00๊ฐ ์์ฑ๋ ์ฒญํฌ๋ฅผ ํด์ ํ๋ฉด ์
ธ์ด ์คํ๋ฉ๋๋ค.
์ฌ๊ธฐ์์ ์์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
๋ณดํธ
Full RELRO ๋ณดํธ๋ ๋ฐ์ด๋๋ฆฌ๊ฐ ์์๋ ๋ ๋ชจ๋ ํจ์์ ์ฃผ์๋ฅผ ํด๊ฒฐํ๊ณ GOT ํ ์ด๋ธ์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ๋ง๋๋ ๋ฐฉ์์ผ๋ก ์ด๋ฌํ ์ข ๋ฅ์ ๊ธฐ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ค๊ณ๋์์ต๋๋ค:
์ฐธ๊ณ ๋ฌธํ
- https://ir0nstone.gitbook.io/notes/types/stack/got-overwrite/exploiting-a-got-overwrite
- https://ir0nstone.gitbook.io/notes/types/stack/one-gadgets-and-malloc-hook
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


