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-20660 | Kitploit
Ferramentas/GitHubGitHub/retx0/cve-2026-20660
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHubretx0/cve-2026-20660

CVE-2026-20660

Ver Repositório
2há 5 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-20660 Pacote PoC

Este diretório empacota uma prova de conceito autônoma para:

  • CVE-2026-20660
  • Traversal de caminho no NSGZipDecoder do CFNetwork via FNAME gzip
  • Impacto no Safari do macOS vulnerável com abertura automática habilitada

1. Estrutura de Diretórios

  • server.py: Servidor PoC principal com profundidade de traversal e nome de destino configuráveis
  • server_overwrite.py: Variante focada que grava ../../pwn.sh
  • README.md: Notas de reprodução e registro de operação

2. Pré-requisitos

  1. O alvo é um Safari do macOS vulnerável (antes da linha de correção 26.3).
  2. Configuração do Safari habilitada:
    • Preferências -> Geral -> Abrir arquivos seguros após o download
  3. Você consegue acessar este host pelo navegador de destino.

3. Resumo da Causa Raiz

O diff do patch mostra que -[NSGZipDecoder filenameWithOriginalFilename:] mudou de comportamento:

  • Comportamento antigo: retornava diretamente o nome derivado do FNAME gzip.
  • Novo comportamento: aplica lastPathComponent antes de retornar.

Isso bloqueia componentes de diretório como ../ e caminhos absolutos no FNAME.

4. Por Que Content-Disposition Não é o Vetor

O nome de arquivo HTTP pode estar limpo e mesmo assim o exploit tem sucesso.

  • Nome de arquivo Content-Disposition HTTP: limpo (exemplo: report.gz)
  • FNAME do cabeçalho gzip: malicioso (exemplo: ../../proof.txt)

A sanitização no lado do Safari se aplica principalmente aos nomes na camada HTTP, não ao FNAME gzip embutido consumido pelo NSGZipDecoder no fluxo vulnerável.

5. Início Rápido

Na raiz do repositório:

root@kitploit:~
python3 exploit/cve-2026-20660/server.py --port 8888 --depth 2

Abra no Safari vulnerável:

root@kitploit:~
http://<server-ip>:8888/

Clique em Trigger depth=2.

6. Validação

Após acionar, verifique o resultado da gravação na máquina de destino:

root@kitploit:~
ls -la ~/cve-2026-20660-proof.txt
cat ~/cve-2026-20660-proof.txt

Para a variante de sobrescrita:

root@kitploit:~
python3 exploit/cve-2026-20660/server_overwrite.py --port 9999

Depois abra:

root@kitploit:~
http://<server-ip>:9999/

Verifique:

root@kitploit:~
ls -la ~/pwn.sh
cat ~/pwn.sh

7. Notas sobre Parâmetros (server.py)

  • --bind, -b: endereço de bind (padrão 0.0.0.0)
  • --port, -p: porta de escuta (padrão 8888)
  • --depth, -d: profundidade do traversal (contagem de repetição do ../, padrão 2)
  • --name, -n: nome do arquivo de saída alvo

Exemplos:

root@kitploit:~
# write to ~/proof.txt when depth matches runtime directory nesting
python3 exploit/cve-2026-20660/server.py -p 8888 -d 2 -n proof.txt

# explicit absolute path test (if resolver permits)
python3 exploit/cve-2026-20660/server.py -p 8888
# then use: /download?depth=0&fname=/tmp/proof.txt

8. Comportamento Observado (Notas Atuais)

  1. A descompressão pode ocorrer em um diretório temporário sob ~/Downloads, então a profundidade geralmente precisa ser >= 2 para escapar para ~/.
  2. Arquivos existentes no destino podem não ser sobrescritos; a pilha de download pode renomear automaticamente para evitar colisões.
  3. Payloads de script podem aparecer com bits de execução em execuções observadas; valide por build/config.

9. Solução de Problemas

  1. Nenhuma gravação observada:
    • Confirme se a configuração de abertura automática do Safari está habilitada.
    • Aumente a profundidade (2, 3, 4) e teste novamente.
  2. O arquivo permanece em Downloads:
    • Profundidade muito baixa para o aninhamento atual do diretório de descompressão.
  3. Falha na conexão:
    • Confirme o firewall do host e a acessibilidade na LAN.
  4. Caminho de destino inalterado:
    • Conflito de nome de arquivo existente pode causar saída renomeada.

10. Segurança e Escopo

Use apenas em ambientes de teste autorizados.

  • Não ataque sistemas sem permissão explícita.
  • Mantenha os payloads não destrutivos para reprodutibilidade.
  • Armazene capturas de tela/logs como evidência de avaliação.

11. Coleta de Evidências Sugerida

  1. Captura de tela da versão do Safari e do build do SO.
  2. Logs do console do servidor PoC (requisição + FNAME).
  3. Comandos e saídas de verificação do sistema de arquivos.
  4. Listagem de diretório antes/depois do caminho alvo.

12. Explicação Detalhada

Para uma explicação mais detalhada, veja:

  • https://ret0.dev/posts/cve-2026-20660/
Baixar ferramenta