(http://i.imgur.com/9uzoDBK.jpg)
Hola a tod@s, soy MagoAstral y en esta ocasión vengo con una herramienta, concretando un asistente para el desarrollo de exploits en python y para uno de nuestros depuradores favoritos GDB!! 8)
Para los que no sepan que es un depurador les recomendaría este enlace (https://es.wikipedia.org/wiki/Depurador (https://es.wikipedia.org/wiki/Depurador)), una vez tengamos claro el concepto anterior simplemente decir que GDB (GNU Debugger), es un proyecto creado Richard Stallman y el cual podemos descargar desde el siguiente enlace (https://www.gnu.org/software/gdb/download/ (https://www.gnu.org/software/gdb/download/)).
Ahora que tenemos los conceptos necesarios o al menos sabemos de que va el tema procedamos a hablar sobre PEDA.
¿Qué nos proporciona? La respuesta es sencilla una mejora visual que la verdad se agradece; colorea y muestra códigos desensamblados, registros e información de la memoria durante el proceso de depuración. Pero no solo eso también nos proporciona diferentes funcionalidades que nos ayudarán a agilizar el proceso...
Algunos comandos:
- aslr: Muestra o fija los ajustes de la ASLR de GDB
- checksec: Comprueba varias opciones de seguridad del binario (stack canaries, NX, etc...)
- dumpargs: Muesta los argumentos pasados a una función cuando paramos en una instrucción de llamada
- dumprop: Hace un volcado a todos los ROP gadgets en un rango de memoria específico
- elfheader: Obtiene información de las cabeceras de un archivo ELF depurado
- elfsymbol: Obtiene non-debugging symbol de un archivo ELF
- lookup: Busca todas las direcciones/referencias de una dirección que pertenece a un rango de la memoria.
- patch: Parchea el inicio de la memoria en una dirección con una cadena, cadena hexadecimal o entero
- pattern: Genera, busca o escribe un patrón cíclico en la memoria.
- procinfo: Muestra información variada desde /proc/pid
- pshow: Muestra opciones y ajustes de PEDA
- pset: Ajusta y configura PEDA
- readelf: Obtiene información de un archivo ELF
- ropgadget Obtiene los ROP gadgets comunes de un binario o una librería
- ropsearch: Busca ROP gadgets en la memoria
- searchmem|find: Busca un patrón en la memoria y soporta búsquedas de expresiones regulares
- shellcode: Genera o descarga los shellcodes comunes
- skeleton: Genera una plantilla en python para un exploit
- vmmap: Obtiene los rangos de un mapa virtual de una dirección, de una sección o secciones de un proceso depurado
- xormem: Aplica XOR a una región de la memoria con una clave
Para una lista completa de los comandos se debería utilizar:
peda help
Instalación:Para instalar PEDA la sintaxis sería la siguiente:
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
De esta manera hemos clonado el repositorio y añadido PEDA a la configuración de inicio del depurador (GDB), ahora cada vez que iniciemos GDB se cargará PEDA! ;)
Una imagen de PEDA en acción:
(https://camo.githubusercontent.com/1144a3db95ecd1972b5f8846a7e776a2b9096652/687474703a2f2f692e696d6775722e636f6d2f50314246356d702e706e67)
Personalmente os lo recomiendo y más si hacéis uso de GDB comúnmente bien en el arte de la explotación o bien en el arte de la ingeniería inversa, os hará muchísimo más sencilla la vida ami me encanta.
PD: Este material es único para Underc0de cualquiera que dese compartirlo le pido que respete los créditos del autor (yo) y del respectivo foro (underc0de)
Un saludo,
MagoAstral
El proyecto inicialmente fue desarrollado en python 2.7 y dicha versión forma parte de los requisitos, teóricamente debería funcionar en cualquier versión pero no lo he comprobado.
Un saludo,
MagoAstral
Gracias por el aporte, se ve genial!! Precisamente estoy aprendiendo un poco de ingenieria inversa y le dare buen uso ;D
Saludos