-
que es?
-
programa que se aprovecha de un
-
bug de software
-
se descubren por medio de
- inspección de código fuente
- ingeniería inversa
- fuzzing
-
como se construyen?
-
herramientas
-
depurador (debugger)
- gdb
- immunity
-
lenguajes de programación
- c
- python
- assembly
-
frameworks de exploits
- metasploit
- canvas
- core impact
-
técnicas según el tipo de vulnerabilidad
-
formato de cadenas (format string)
- printf("%s", mivar);
-
printf(mivar);
- mivar = "hola mundo"
- mivar = "%x %x %200n"
- Topic
-
ROP (return oriented programming)
-
técnica para evadir protecciones de no ejecución de regiones como la pila
- consiste en armar instrucciones a partir de bibliotecas que si tienen permiso de ejecución
-
desbordamiento de buffer (buffer overflow)
- heap
- pila (stack)
-
stack buffer overflow
-
memoria
- Topic
-
cpu
-
registros
-
eip
- siguiente instrucción a ejecutar
-
esp
- tope de la pila
-
ebp
- base de la pila
-
eax, ebx, ecx, edx
- proposito general
-
esi, edi
- indice fuente y destino
-
desbordamiento (overflow)
-
código vulnerable en C
- Topic
-
cómo se vería en memoria
-
Topic
- Topic
- Topic
- jmp esp
- payload (carga útil) donde se encuentra nuestro shellcode
-
en la vida real
-
WarFTP
- Topic
-
Winamp
-
Topic
- http://www.exploit-db.com/winamp-exploit-part-2/
- http://www.exploit-db.com/exploits/15312/
-
mecanismos de protección
- usar versiones actualizadas en los programas
-
sistemas operativos
- bit NX
- Ascii armor
- ALSR
-
más información
- http://web.sfc.keio.ac.jp/~rdv/keio/sfc/teaching/system-software/system-software-2010/lec08.html
- http://www.minoraddition.com/
- http://en.wikipedia.org/wiki/Stack_buffer_overflow
-
acerca del expositor
- Ricardo Yepes Guevara
ryepesg@gmail.com