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.
- 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)
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!
'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.
- Learn Python the hard way
- Wikibooks Python
- http://docs.python.org/
- onlinecomputerbooks.com
- Grey hat python
- 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.
- Cprogramming.com
- http://www.java2s.com/Tutorial/C/CatalogC.htm
- http://beej.us/guide/bgc/
- onlinecomputerbooks.com
- Skullsecurity: Assembly
- Windows Assembly Programming Tutorial
- http://en.wikibooks.org/wiki/X86_Assembly
- [libro]The Art of Assembly
- Assembly primer for hackers
- PC Assembly Language
- Programación en Windows: para explotar los sistemas de Microsoft es necesario entender la estructura y las bibliotecas del sistema operativo.
- http://en.wikibooks.org/wiki/Windows_Programming
- http://www.relisoft.com/win32/index.htm
- [libro]Windows Internals 5
- [libro]Windows Internals 4
- 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.
- Smash the stack for fun and profit (Phrack 49)
- C function call conventions and the stack
- Anatomy of a program in memory
- Function Calls, Part 1 (the Basics)
- IA-32 Architecture
- [videos]Code Audit from cryptocity.net
(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)
- tenouk.com: Buffer overflow intro
- The Tao of Windows Buffer Overflow
- nsfsecurity on BOF
- Hacker center: BOF
- [video]Buffer overflow Primer
- [Libro]Shellcoder's Handbook Ch1&2
- [Libro]Hacking art of exploitation [Chapter 3]
- Corelan T3A
- Corelan T3B
- SEH Based Exploits and the development process
- SEH overwrite simplified
(papers de overflowedminds recomendados por Borja Merino)
- Local Linux x86 Shellcoding without any high-level language y video
- Bypassing local Linux x86 ASLR protection y video
- Introducción a la explotación de software en sistemas Linux
Parte 3: Herramientas comerciales
A continuación se listan algunas herramientas útiles
- Immunity Debugger
- Ollydbg
- Windbg
- IDA Pro
- explorer suite
- Sysinternals
- Corelan T5
- Corelan: Immunity debugger cheatsheet
Parte 4: Networking y Metasploit
(Networking)
(Metasploit)
- [Video]Security Tube: Metasploit Megaprimer
- Metasploit.com
- Metasploit Unleashed
- [video]Metasploit Louisville Class
- Metasploitable (a target)
- Corelan T4
- intern0t: developing my first exploit
- [video]DHAtEnclaveForensics: Exploit Creation in Metasploit
- Wikibooks Metasploit/Writing Windows Exploit
Parte 5: Shellcode
- Corelan T9
- projectShellcode: Shellcode Tutorial
- [Libro]Shellcoder's Handbook Ch3
- [Libro]Hacking art of exploitation [Chapter 5]
- Writing small shellcode
- Shell-storm Shellcode database
- Advanced shellcode
Parte 6: Ingeniería inversa
Aprendizaje paralelo # 3: (sitios de referencia y uso para reversing)
- Understanding Code
- Reverse Engineering the World
- Reversing for Newbies
- Room362.com reversing blog post
- Ethicalhacker.net intro to reverse engineering
- acm.uiuc.edu Intro to Reverse Engineering software
- [Libro]Reversing: secrets of reverse engineering
- [video]Reverse Engineering from cryptocity.net
- CrackZ's Reverse Engineering Page
- Reverse engineering techniques
- CBM_1_2_2006_Goppit_PE_Format_Reverse_Engineer_View
- HistoryofPackingTechnology
- Windows PE Header
- OpenRCE Articles
- [GAME]Crackmes.de
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)
- Buffer overflow protection
- The evolution of Microsoft's Mitigations
- Purdue.edu: Canary Bit
- Preventing the exploitation of SEH Overwrites with SEHOP
- Bypassing SEHOP
- Wikipedia Executable space protextion
- Wikipedia DEP
- Bypassing Hardware based DEP
- Wikipedia ASLR
- Symantec ASLR in Vista
- Defeating the Stack Based Buffer Overflow Prevention
- Corelan T6
- Return to libc
- [video] microsoft protections video
(Parte B: BOF Avanzado)
- [video]Exploitation from cryptocity.net
- Corelan T7
- Corelan T8
- Corelan T10
- Virtual Worlds - Real Exploits
- [GAME]Gera's Insecure Programming
- [GAME]Smash the stack wargaming network
Parte 8: Desbordamientos de cabecera (heap overflow)
- Heap Overflows for Humans-101
- rm -rf / on heap overflow
- w00w00 on heap overflow
- [libro]Shellcoder's Handbook Ch4&5
- h-online A heap of Risk
- [video]Defcon 15 remedial Heap Overflows
- heap overflow: ancient art of unlink seduction
- Memory corruptions part II -- heap
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!
Imprescindible el windows internals
ResponderEliminargracias @Jay, la cuarta y la quinta edición aparecen en la sección de programación en Windows (Parte 1)
ResponderEliminarEspectacular gracias estoy introduciéndome en este mundo y me acabas de dar una orientación gracias.
ResponderEliminar@Vicente Motos lo se, solo quería destacar ese en particular.
ResponderEliminarPero 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.
Aunque bueno no tiene mucho que ver con el tema XD
ResponderEliminarSi quereis los codigos del libro : hacking
ResponderEliminarThe art of exploitation.
estan en:
http://www.anayamultimedia.es/catalogos/complementos/MU0023501_9999997451.zip
Este comentario ha sido eliminado por el autor.
ResponderEliminargenial ahora a complementar con lo poquito que tengo
ResponderEliminar