De 0x90 a 0x4c454554, un viaje dentro de la explotación

Hoy vamos a rescatar una entrada un poco antigua pero genial para todos aquellos que quieren aprender a desarrollar exploits.

'From 0x90 to 0x4c454554, a journey into exploitation' contiene una lista de recursos ordenados que describen el camino que se ha de seguir para llegar a ser un auténtico ninja en este arte, una estructura jerárquica en la que habrá que ir entendiendo y profundizando en cada sección antes de saltar a la siguiente.

Además se incluyen temas de aprendizaje paralelos para evitar la monotonía.

Parte 1: Programación

Aprendizaje paralelo # 1: (completa esta sección antes de llegar a la lectura del libro "Hacking Art of exploitation")
Aprender a programar es fundamental para escribir exploits. Es imprescindible dominar algún lenguaje de scripting. A continuación se enumeran algunos de los lenguajes de programación más populares y que se consideran más útiles.

- Python: uno de los lenguajes que más popularidad está ganando. Es potente, fácil de usar y está bien documentado.

- Ruby: si lo que quieres es trabajar fundamentalmente con Metasploit entonces debes empezar con Ruby.

- Perl: aunque es más antiguo continua siendo uno de los lenguajes de scripting más extendidos y por lo tanto utilizados en numerosos exploits.
- C y C++: tener un buen conocimiento de estos lenguajes es muy importante para entender como funcionan muchos exploits.
- Ensamblador x86: conocer el lenguaje máquina nos ayudará a comprender lo que el ordenador lee a la hora de compilar C y C++.

- Programación en Windows: para explotar los sistemas de Microsoft es necesario entender la estructura y las bibliotecas del sistema operativo.

- Desensamblado: más que programación se trata de comprender lo que el ordenador entiende y la forma que es interpretado por la CPU y la memoria. Aquí empieza lo bueno.

Parte 2: Iniciación

Ahora que tenemos una buena comprensión de los lenguajes de programación y de lo que la máquina está haciendo podemos empezar a trabajar en la tarea que nos ocupa, la explotación.

(
Aprendizaje paralelo# 1 terminado: ahora deberías tener un buen conocimiento de uno de los tres lenguajes de scripting listados)

Aprendizaje paralelo # 2: (completa esta sección antes de finalizar la parte 2)

(lee primero algunas entradas de este blog)

(este blog contiene información muy útil para empezar con fuzzers)

(el siguiente enlace es una demo, pero en este blog también encontrarás muchas cosas interesantes)

(papers de overflowedminds recomendados por Borja Merino)

(Aprendizaje paralelo# 2 terminado)

Parte 3: Herramientas comerciales

A continuación se listan algunas herramientas útiles


Parte 4: Networking y Metasploit

(Networking)

(Metasploit)

Parte 5: Shellcode

Parte 6: Ingeniería inversa
Aprendizaje paralelo # 3: (sitios de referencia y uso para reversing)

Parte 7: Profundizando un poco en desbordamientos de buffer (BOF)

Aprendizaje paralelo # 4: (para el final del curso y para después)
Encontrar exploits antiguos en Exploit-db, descargarlos, probarlos, reescribirlos y entenderlos.

(Parte A: contramedidas)

(Parte B: BOF Avanzado)

Parte 8: Desbordamientos de cabecera (heap overflow)

Parte 9: Lista de sitios de exploiting

(bonus: sitio que lista los tipos de vulnerabilidad e info)

Parte 10: Para añadir...

1. Fuzzing
2. Formato de ficheros
3. y más


Y hasta aquí llega el camino. ¿Conocéis algún otro enlace de interés? ¿habéis seguido alguno una senda distinta? ¡Comenta por favor!

8 comentarios :

  1. Imprescindible el windows internals

    ResponderEliminar
  2. gracias @Jay, la cuarta y la quinta edición aparecen en la sección de programación en Windows (Parte 1)

    ResponderEliminar
  3. Espectacular gracias estoy introduciéndome en este mundo y me acabas de dar una orientación gracias.

    ResponderEliminar
  4. @Vicente Motos lo se, solo quería destacar ese en particular.

    Pero ya que aceptas sugerencias me gustaría añadir CLR via C#, yo me leí la 2ª edición pero creo que van por la tercera.

    ResponderEliminar
  5. Aunque bueno no tiene mucho que ver con el tema XD

    ResponderEliminar
  6. Si quereis los codigos del libro : hacking
    The art of exploitation.

    estan en:
    http://www.anayamultimedia.es/catalogos/complementos/MU0023501_9999997451.zip

    ResponderEliminar
  7. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  8. genial ahora a complementar con lo poquito que tengo

    ResponderEliminar