comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[PEDA] Python Exploit Development Assistence para GDB

  • 3 Respuestas
  • 3376 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado MagoAstral

  • *
  • Underc0der
  • Mensajes: 115
  • Actividad:
    0%
  • Reputación 0
  • Nada resulta más engañoso que un hecho evidente.
    • Ver Perfil
« en: Diciembre 23, 2015, 03:15:27 pm »
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 (You are not allowed to view links. Register or Login), 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 (You are not allowed to view links. Register or Login).
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:
Código: Text
  1. peda help

Instalación:
Para instalar PEDA la sintaxis sería la siguiente:
Código: Bash
  1. git clone https://github.com/longld/peda.git ~/peda
  2. echo "source ~/peda/peda.py" >> ~/.gdbinit
  3.  
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:


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
Lo que sabemos es una gota de agua; lo que ignoramos es el océano.

Conectado Gabriela

  • *
  • Co Admin
  • Mensajes: 868
  • Actividad:
    13.33%
  • Reputación 15
    • Ver Perfil
    • Email
« Respuesta #1 en: Diciembre 23, 2015, 03:18:37 pm »

Gracias por el aporte @You are not allowed to view links. Register or Login.

Funciona con todas las versiones de Python?

Gabi

Desconectado MagoAstral

  • *
  • Underc0der
  • Mensajes: 115
  • Actividad:
    0%
  • Reputación 0
  • Nada resulta más engañoso que un hecho evidente.
    • Ver Perfil
« Respuesta #2 en: Diciembre 23, 2015, 03:24:05 pm »
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
Lo que sabemos es una gota de agua; lo que ignoramos es el océano.

Desconectado Jio

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Enero 15, 2016, 11:51:04 am »
Gracias por el aporte, se ve genial!! Precisamente estoy aprendiendo un poco de ingenieria inversa y le dare buen uso  ;D

Saludos

 

¿Te gustó el post? COMPARTILO!



Nueva versión de REMnux, la distribución Linux para el análisis e Ingeniería Inv

Iniciado por morodog

Respuestas: 0
Vistas: 2068
Último mensaje Abril 11, 2013, 10:58:44 am
por morodog
[UNDERTIP]Conocimientos necesarios para realizar ingeniería inversa

Iniciado por sadfud

Respuestas: 1
Vistas: 2755
Último mensaje Junio 19, 2017, 05:28:06 pm
por zoro248
ScoopyNG para la detección de máquina virtual VMWARE

Iniciado por .:UND3R:.

Respuestas: 8
Vistas: 3487
Último mensaje Mayo 29, 2015, 01:03:09 pm
por camaron27
¿Que son los crackmes,keygenme ,patchme etc?..¿para que sirven?

Iniciado por ANTRAX

Respuestas: 0
Vistas: 1960
Último mensaje Febrero 20, 2010, 03:03:42 am
por ANTRAX
tips para comenzar en ingeniería inversa

Iniciado por Anonima

Respuestas: 5
Vistas: 2307
Último mensaje Junio 27, 2018, 03:33:21 am
por linuxserver500