Underc0de

[In]Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: sadfud en Abril 25, 2018, 01:49:48 PM

Título: Entorno interactivo para desarrollar Shellcodes
Publicado por: sadfud en Abril 25, 2018, 01:49:48 PM
Buenas Underc0ders,

En esta ocasión vengo a presentar una herramienta que me ha parecido bastante interesante. Se trata de Shellten (https://github.com/merrychap/shellen)
Tal como indica su descripción es un entorno para facilitar el desarrollo de shellcode.

Actualmente cuenta con las siguientes caracteristicas:
Assembling
Disassembling
Syscalls lists
Database of common shellcodes

Tras instalarlo siguiendo las instrucciones del repo de github, nos encontramos con una aplicacion de consola.
(https://i.imgur.com/i7qthJG.png)

El prompt que nos devuelve por defecto es L:asm:x86_32
L - Linux
asm - Modo de ensamblado
x86_32 - Arquitectura

Podemos ver que arquitecturas soporta la herramienta con el comando archs
(https://i.imgur.com/g9CkY7t.png)


Otra opcion interesante, es que permite usar la API de shell storm para buscar shellcodes, por ejemplo
(https://i.imgur.com/WkgKKQ0.png)

Ahora probaremos a construir un shellcode de ejemplo (inventado) en arm_x32
Código (asm) [Seleccionar]

mov r2, #75;
add r3, r2;
sub r3, r2, #1;
mov r4, r3;


Primero cambiamos el modo de shellten a linux:asm:arm32
(https://i.imgur.com/PiCTiga.png)

Introducimos las instrucciones para que nos lo codifique:
(https://i.imgur.com/tYXgF9m.png)

Si ahora cambiamos el modo de asm a dsm con el comando dsm y la arquitectura de nuevo a arm32
(https://i.imgur.com/29rV9J6.png)
(https://i.imgur.com/7rMA7Xt.png)

e introducimos lo que nos ha devuelto antes, nos lo pasa a instrucciones correctamente
(https://i.imgur.com/CDwAOHU.png)

Si ahora probamos a generar shellcode con las instrucciones
Código (asm) [Seleccionar]

mov r2, #75;
add r3, r2;
sub r3, r2, #0000;
mov r4, r3;


nos avisa que nuestra shellcode contiene bytes nulos y nos los remarca
(https://i.imgur.com/UrcWLqa.png)

Otro gran punto a favor de shellten es que nos da la informacion de uso de las llamadas al sistema con el comando sys +palabra_clave, por ejemplo
(https://i.imgur.com/htZBuKa.png)

Hasta la proxima :D