30. STACK PIVOTING
CREAMOS UNA PILA
EN OTRA ZONA DE
MEMORIA DONDE
TENGAMOS MEJOR
CONTROL
SALTAMOS A LA
NUEVA PILA
mov eax 0xfff
xchg esp eax
ret
31. COMPLEX ROP
Creamos una zona de memoria con
permisos de ejecucion mmap()
Copiamos nuestro shellcode a la
nueva zona memcpy()
Saltamos a nuestro shellcode
32. COMPLEX ROP
mmap() no esta importada pero
dlsym() si lo esta
Sacamos la direccion de mmap()
llamando a dlsym
Necesitamos la direccion de nuestro
shellcode y no tenemos gadgets
(stack pivoting)
mmap() y dlsym() utilizan
argumentos con null bytes (stack
pivoting)