
NebulaPulsar es un framework de implante en memoria de prueba de concepto para webshells de Java (JSP) y ASP.NET (ASPX/ASHX/ASMX), originalmente desarrollado como parte del proyecto Alien.
Actualización: Este proyecto ahora se ha convertido en un subproyecto de Alien para demostrar mis ideas y propósitos experimentales.
NebulaPulsar es un marco de trabajo de implante en memoria de prueba de concepto para Java (JSP) y ASP.NET (ASPX/ASHX/ASMX), desarrollado originalmente como parte del proyecto Alien.
A diferencia de las demostraciones tradicionales de webshell que se centran únicamente en la ejecución de comandos, NebulaPulsar explora cómo un implante en memoria puede establecer un canal de comunicación cifrado, cargar dinámicamente cargas útiles y ejecutarlas completamente en memoria.
El proyecto está destinado a la investigación de seguridad, el análisis de malware y la educación defensiva. No está diseñado para ser un marco ofensivo operativo.
Detalles técnicos:
Si encuentras este proyecto útil o informativo, realmente agradecería una ⭐ en el repositorio. Tu apoyo sería una gran motivación para seguir mejorando esta herramienta.
"Si avergüenzas la investigación de ataques, juzgas mal su contribución. Ofensa y defensa no son iguales. La defensa es hija de la ofensa." — John Lambert
Este proyecto fue creado únicamente con fines educativos, de investigación y de ciberseguridad defensiva.
Su propósito es estudiar la implementación de implantes modernos en memoria, comunicación cifrada y ejecución dinámica de cargas útiles en las plataformas Java y .NET.
El proyecto no está destinado a acceso no autorizado, persistencia o despliegue malicioso. Se desaconseja estrictamente cualquier uso contra sistemas sin autorización explícita.
El autor no asume ninguna responsabilidad por cualquier mal uso o daño resultante de este proyecto.
Mientras desarrollaba Alien, quería entender mejor cómo se diseñan internamente los webshells e implantes modernos residentes en memoria.
Muchos webshells disponibles públicamente se centran en la funcionalidad, pero rara vez explican por qué están implementados de esa manera. Funciones como la comunicación cifrada, la ejecución de cargas útiles en memoria, la carga dinámica de clases y los implantes basados en sesiones a menudo se tratan como cajas negras.
NebulaPulsar fue creado para cerrar esa brecha.
En lugar de clonar una implementación existente, este proyecto explora los conceptos subyacentes detrás de los implantes modernos en memoria y demuestra cómo se pueden implementar esas ideas tanto en las plataformas Java como .NET.
A lo largo del proceso de desarrollo, estudié temas que incluyen:
ClassLoader de JavaAssembly.Load() y reflexiónEl objetivo es entender cómo funcionan estas técnicas, no fomentar su mal uso.
Este marco se divide en dos capas:
NebulaPulsar es el implante residente en memoria. Es responsable de:
DarkMatter es la carga útil ejecutada por NebulaPulsar.
Implementa la lógica real de post-explotación mientras permanece independiente de la capa de transporte, lo que facilita su extensión con módulos y capacidades adicionales.
NebulaPulsar se inyecta primero en el webshell objetivo y permanece residente en memoria.
Una vez inicializado, establece un canal de comunicación cifrado y espera las cargas útiles entrantes.
Las cargas útiles posteriores, como DarkMatter, se entregan a través de este canal. NebulaPulsar descifra la carga útil, la carga directamente en memoria y transfiere la ejecución a ella.
DarkMatter es responsable de implementar funcionalidades más avanzadas, mientras que NebulaPulsar permanece ligero y se centra en la gestión de cargas útiles y la comunicación.
Descarga:
wget https://github.com/iss4cf0ng/NebulaPulsar/releases/latest/download/NebulaPulsar.tar.gz
tar -xzf NebulaPulsar.tar.gz
cd ./NebulaPulsar
Ejecutar con Python:
python3 main.py --url http://localhost/nebulapulsar.jsp --script java --encoding='utf-8'
Gracias por revisar este proyecto. Los comentarios y sugerencias son bienvenidos.