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