Jaime Peñalba @NighterMan
WHO AM I?

OGT OFFENSIVE LABS & -D--I

CISSP EN FRIGORIFICOS

CERTIFIED CALDERATOR

NIVEL 101 EN BF3
WHY EXPLOITING?

INTRODUCCION
DESMITIFICARLO (NO ES DIFICIL)
BECAUSE IT'S PHUN
PROTECCIONES ACTUALES
ESTO NO ES UNA GUIA C...
WHAT DO I NEED TO KNOW TO EXPLOIT?

FUNCIONAMIENTO BASICO DE UN PROCESADOR

ORGANIZACION DE LA MEMORIA

FUNCIONAMIENTO DE ...
HOW CPU WORKS
HOW CPU WORKS
HOW CPU WORKS
HOW CPU WORKS
MEMORY LAYOUT

.RODATA
.DATA
.BSS

[STACK]
[STACK]
[HEAP]
MEMORY LAYOUT
MEMORY LAYOUT
FUNCION DEL STACK

CONTROL DEL FLUJO DE EJECUCION
ALMACENAMIENTO DE LOCAL VARS
PASAR ARGS A FUNCIONES
(DEPENDE DE LA ARCH ...
STACK

%EBP (BASE DEL FRAME)
PUNTERO AL EBP ANTERIOR

%ESP (CIMA DE LA PILA)
PUSH (ESP = ESP-4)
POP (ESP = ESP+4)
STACK
STACK
MOST COMMON FLAWS

FORMAT STRING
OVERFLOW
DYNAMIC ALLOCATION
STACK

HEAP

NULL POINTER

USE AFTER FREE
BASIC EXPLOIT
BASIC EXPLOIT

OVERWRITES FULL FRAME
OVERWRITES SAVED EBP
OVERWRITES SAVED RET
NEW EIP POINTS TO JMP %ESP
JUMPS TO SHELLCO...
BASIC EXPLOIT
COUNTERMEASURES VS EXPLOITATION

Stack
Smashing

GOT
Overwrite

RELocation
Read-Only

Stack
Canary

Position
Independent
C...
ASLR
No eXecute Bit
Return Oriented Programming
ROP

RET
POP EIP

LEAVE
ESP = EBP
POP EBP
ROP GADGETS
UNALIGNED VS ALIGNED
SIMPLE ROP
SIMPLE ROP
BASIC EXPLOIT
STACK PIVOTING

CREAMOS UNA PILA
EN OTRA ZONA DE
MEMORIA DONDE
TENGAMOS MEJOR
CONTROL
SALTAMOS A LA
NUEVA PILA

mov eax 0x...
COMPLEX ROP

Creamos una zona de memoria con
permisos de ejecucion mmap()
Copiamos nuestro shellcode a la
nueva zona memcp...
COMPLEX ROP
mmap() no esta importada pero
dlsym() si lo esta
Sacamos la direccion de mmap()
llamando a dlsym
Necesitamos l...
COMPLEX ROP
BASIC EXPLOIT
CUIDADO CON LA BEBIDA!!!
THE END
Upcoming SlideShare
Loading in...5
×

1100101001001110

470

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
470
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
29
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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×