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
  • 3945 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 (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/).
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: 878
  • Actividad:
    5%
  • Reputación 15
    • Ver Perfil
    • Email
« Respuesta #1 en: Diciembre 23, 2015, 03:18:37 pm »

Gracias por el aporte @MagoAstral.

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: 2303
Ú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: 3401
Ú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: 4091
Último mensaje Mayo 29, 2015, 01:03:09 pm
por camaron27
Herramientas para la ingenieria inversa [Recopilatorio]

Iniciado por Cl0udswX

Respuestas: 0
Vistas: 3088
Último mensaje Junio 19, 2015, 10:03:02 pm
por Cl0udswX
¿Que son los crackmes,keygenme ,patchme etc?..¿para que sirven?

Iniciado por ANTRAX

Respuestas: 0
Vistas: 2202
Último mensaje Febrero 20, 2010, 03:03:42 am
por ANTRAX