Este proyecto genera shellcode personalizado en ASM x86 para establecer una reverse shell en Windows, con IP y puerto definidos por el usuario. El shellcode se ensambla dinámicamente utilizando la librería Keystone Engine, lo que permite generar payloads para pruebas de pentesting.
- 🔧 Generación dinámica de shellcode en tiempo de ejecución
- 🧠 Resolución de funciones usando hashing y parsing de la Export Address Table
- 📦 Uso de llamadas directas a funciones de WinAPI (
WSAStartup,WSASocketA,WSAConnect,CreateProcessA, etc.) - 💀 Payload ejecuta
cmd.exeremotamente tras la conexión - ✅ Compatible con arquitectura x86 (32 bits)
- Python 3.6+
- Keystone Engine
- Numpy
Instalación de dependencias:
pip install keystone-engine numpy- Hashing de funciones WinAPI: El código genera hashes personalizados a partir de nombres de funciones (como
LoadLibraryAoCreateProcessA) usando operacionesRORpara evitar strings en claro. - Búsqueda dinámica de funciones: Se busca
kernel32.dllyws2_32.dllen tiempo de ejecución, y se resuelven direcciones mediante parsing manual de la EAT (Export Address Table). - Construcción del shellcode: Se genera código ensamblador personalizado, y se ensambla usando Keystone en formato de bytes (
\x..). - Ejemplo de ejecución opcional: Se incluye una sección comentada para asignar memoria y ejecutar el shellcode usando la API de Windows.
python3 custom_shellcode.py <IP> <PORT>Ejemplo:
python3 custom_shellcode.py 192.168.1.100 4444Esto imprimirá el shellcode ensamblado:
shellcode = b"\x31\xc9\x64\x8b\x71\x30..." Puedes descomentar la sección inferior del script para:
- Asignar memoria en el proceso actual
- Copiar el shellcode
- Crear un hilo de ejecución con
CreateThread
Este proyecto tiene fines únicamente educativos y de investigación en seguridad.
El uso de este código contra sistemas sin autorización puede constituir una violación legal. El autor no se hace responsable del mal uso del software.
- 🧠 David Fernandez Hernandez (ZEROxYakuza)
- 🛠️ Proyecto para fines de aprendizaje en seguridad ofensiva y desarrollo de exploits