WWW2Exec - .dtors & .fini_array
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
.dtors
Caution
์์ฆ์ .dtors ์น์ ์ด ์๋ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฐพ๋ ๊ฒ์ด ๋งค์ฐ ์ด์ํฉ๋๋ค!
์๋ฉธ์๋ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๊ธฐ ์ ์ ์คํ๋๋ ํจ์์
๋๋ค ( main ํจ์๊ฐ ๋ฐํ๋ ํ).
์ด ํจ์๋ค์ ์ฃผ์๋ ๋ฐ์ด๋๋ฆฌ์ .dtors ์น์
์ ์ ์ฅ๋๋ฉฐ, ๋ฐ๋ผ์ **__DTOR_END__**์ shellcode์ ์ฃผ์๋ฅผ ์ฐ๊ธฐ์ ์ฑ๊ณตํ๋ฉด, ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๊ธฐ ์ ์ ๊ทธ๊ฒ์ด ์คํ๋ฉ๋๋ค.
์ด ์น์ ์ ์ฃผ์๋ฅผ ์ป์ผ๋ ค๋ฉด:
objdump -s -j .dtors /exec
rabin -s /exec | grep โ__DTORโ
๋ณดํต DTOR ๋ง์ปค๋ ffffffff๊ณผ 00000000 ๊ฐ ์ฌ์ด์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ๊ฐ๋ค๋ง ๋ณด์ธ๋ค๋ฉด ๋ฑ๋ก๋ ํจ์๊ฐ ์๋ค๋ ์๋ฏธ์
๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก **00000000**์ ์คํํ shellcode์ ์ฃผ์๋ก ๋ฎ์ด์์ฐ์ธ์.
Warning
๋ฌผ๋ก , ๋จผ์ shellcode๋ฅผ ์ ์ฅํ ์ฅ์๋ฅผ ์ฐพ์์ผ ๋์ค์ ํธ์ถํ ์ ์์ต๋๋ค.
.fini_array
๋ณธ์ง์ ์ผ๋ก ์ด๊ฒ์ ํ๋ก๊ทธ๋จ์ด ์ข
๋ฃ๋๊ธฐ ์ ์ ํธ์ถ๋ ํจ์๋ค๋ก ๊ตฌ์ฑ๋ ๊ตฌ์กฐ์ฒด์
๋๋ค. ์ด๋ **.dtors**์ ์ ์ฌํฉ๋๋ค. ์ฃผ์๋ก ์ ํํ์ฌ shellcode๋ฅผ ํธ์ถํ ์ ์๊ฑฐ๋, ์ทจ์ฝ์ ์ ๋ ๋ฒ์งธ๋ก ์
์ฉํ๊ธฐ ์ํด ๋ค์ main์ผ๋ก ๋์๊ฐ์ผ ํ๋ ๊ฒฝ์ฐ์ ํฅ๋ฏธ๋กญ์ต๋๋ค.
objdump -s -j .fini_array ./greeting
./greeting: file format elf32-i386
Contents of section .fini_array:
8049934 a0850408
#Put your address in 0x8049934
**.fini_array**์์ ํจ์๊ฐ ์คํ๋ ๋ ๋ค์ ํจ์๋ก ์ด๋ํ๋ฏ๋ก ์ฌ๋ฌ ๋ฒ ์คํ๋์ง ์์ผ๋ฉฐ(์์ํ ๋ฃจํ ๋ฐฉ์ง), ์ฌ๊ธฐ ๋ฐฐ์น๋ ํจ์๋ 1ํ๋ง ์คํ๋ฉ๋๋ค.
.fini_array์ ํญ๋ชฉ์ ์ญ์์ผ๋ก ํธ์ถ๋๋ฏ๋ก ๋ง์ง๋ง ํญ๋ชฉ๋ถํฐ ์์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์์ํ ๋ฃจํ
.fini_array๋ฅผ ์
์ฉํ์ฌ ์์ํ ๋ฃจํ๋ฅผ ๋ง๋ค๊ธฐ ์ํด ์ฌ๊ธฐ์ ์ํ๋ ์์
์ ํ์ธํ ์ ์์ต๋๋ค: **.fini_array**์ ์ต์ 2๊ฐ์ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ:
- ์ฒซ ๋ฒ์งธ ์ฐ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ทจ์ฝํ ์์ ์ฐ๊ธฐ ํจ์๋ฅผ ๋ค์ ํธ์ถํฉ๋๋ค.
- ๊ทธ๋ฐ ๋ค์, **
__libc_csu_fini**์ ์ํด ์ ์ฅ๋ ์คํ์ ๋ฐํ ์ฃผ์๋ฅผ ๊ณ์ฐํ๊ณ **__libc_csu_fini**์ ์ฃผ์๋ฅผ ๊ทธ๊ณณ์ ๋ฃ์ต๋๋ค. - ์ด๋ ๊ฒ ํ๋ฉด **
__libc_csu_fini**๊ฐ ์์ ์ ๋ค์ ํธ์ถํ์ฌ.fini_arrayํจ์๋ฅผ ๋ค์ ์คํํ๊ฒ ๋๋ฉฐ, ์ด๋ ์ทจ์ฝํ WWW ํจ์๋ฅผ 2๋ฒ ํธ์ถํฉ๋๋ค: ํ๋๋ ์์ ์ฐ๊ธฐ๋ฅผ ์ํด, ๋ค๋ฅธ ํ๋๋ ์คํ์์ **__libc_csu_fini**์ ๋ฐํ ์ฃผ์๋ฅผ ๋ค์ ๋ฎ์ด์ฐ๊ณ ์์ ์ ๋ค์ ํธ์ถํ๊ธฐ ์ํด์์ ๋๋ค.
Caution
Full RELRO, ์น์ **
.fini_array**๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ค์ ๋ฉ๋๋ค. ์ต์ ๋ฒ์ ์์๋ [Partial RELRO]๊ฐ ์์ด๋ ์น์ **.fini_array**๋ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ค์ ๋ฉ๋๋ค.
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


