1100101001001110

754 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
754
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

1100101001001110

  1. 1. Jaime Peñalba @NighterMan
  2. 2. WHO AM I? OGT OFFENSIVE LABS & -D--I CISSP EN FRIGORIFICOS CERTIFIED CALDERATOR NIVEL 101 EN BF3
  3. 3. WHY EXPLOITING? INTRODUCCION DESMITIFICARLO (NO ES DIFICIL) BECAUSE IT'S PHUN PROTECCIONES ACTUALES ESTO NO ES UNA GUIA COMPLETA
  4. 4. WHAT DO I NEED TO KNOW TO EXPLOIT? FUNCIONAMIENTO BASICO DE UN PROCESADOR ORGANIZACION DE LA MEMORIA FUNCIONAMIENTO DE LA PILA (STACK) PROTECCIONES
  5. 5. HOW CPU WORKS
  6. 6. HOW CPU WORKS
  7. 7. HOW CPU WORKS
  8. 8. HOW CPU WORKS
  9. 9. MEMORY LAYOUT .RODATA .DATA .BSS [STACK] [STACK] [HEAP]
  10. 10. MEMORY LAYOUT
  11. 11. MEMORY LAYOUT
  12. 12. FUNCION DEL STACK CONTROL DEL FLUJO DE EJECUCION ALMACENAMIENTO DE LOCAL VARS PASAR ARGS A FUNCIONES (DEPENDE DE LA ARCH Y EL CALLING CONVENTION)
  13. 13. STACK %EBP (BASE DEL FRAME) PUNTERO AL EBP ANTERIOR %ESP (CIMA DE LA PILA) PUSH (ESP = ESP-4) POP (ESP = ESP+4)
  14. 14. STACK
  15. 15. STACK
  16. 16. MOST COMMON FLAWS FORMAT STRING OVERFLOW DYNAMIC ALLOCATION STACK HEAP NULL POINTER USE AFTER FREE
  17. 17. BASIC EXPLOIT
  18. 18. BASIC EXPLOIT OVERWRITES FULL FRAME OVERWRITES SAVED EBP OVERWRITES SAVED RET NEW EIP POINTS TO JMP %ESP JUMPS TO SHELLCODE
  19. 19. BASIC EXPLOIT
  20. 20. COUNTERMEASURES VS EXPLOITATION Stack Smashing GOT Overwrite RELocation Read-Only Stack Canary Position Independent Code ASLR Return Oriented Programming (ROP) Stack Canary Bypass Heap Exploitation Return To Library No eXecute Bit Position Indepenent Executable (PIE) Memory Disclosure
  21. 21. ASLR
  22. 22. No eXecute Bit
  23. 23. Return Oriented Programming
  24. 24. ROP RET POP EIP LEAVE ESP = EBP POP EBP
  25. 25. ROP GADGETS
  26. 26. UNALIGNED VS ALIGNED
  27. 27. SIMPLE ROP
  28. 28. SIMPLE ROP
  29. 29. BASIC EXPLOIT
  30. 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. 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. 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)
  33. 33. COMPLEX ROP
  34. 34. BASIC EXPLOIT
  35. 35. CUIDADO CON LA BEBIDA!!!
  36. 36. THE END

×