Pesquisa sobre Vulnerabilidade de Desserialização no Apache Dubbo
Este repositório contém materiais de pesquisa, código de prova de conceito e ferramentas de exploração relacionadas a vulnerabilidades de desserialização do Apache Dubbo, focando principalmente no CVE-2020-1948.
Estrutura do Repositório
Diretórios
Hessian-Deserialize-RCE-master: Técnicas de pesquisa e exploração para vulnerabilidades de desserialização Hessian no Dubbo
JNDI-Injection-Exploit-master: Framework de exploração de injeção JNDI para atacar serviços Dubbo
dubbo-dubbo-2.7.5: Código fonte do Apache Dubbo 2.7.5 para análise de vulnerabilidade
dubbo-exp-master: Framework avançado de exploração para vulnerabilidades Dubbo
dubbo-samples-master: Aplicações Dubbo de exemplo para teste e demonstração
marshalsec-master: Ferramentas para teste de vulnerabilidade de marshalling/unmarshalling
Arquivos
dubboExp.py: Script de exploração baseado em Python para CVE-2020-1948
dubboPoc.py: Script de prova de conceito para verificar a existência da vulnerabilidade
payload.ser: Payload Java serializado para exploração
ysoserial.jar: Ferramenta de geração de payload de desserialização Java
Visão Geral da Vulnerabilidade
As versões do Apache Dubbo anteriores a 2.7.8, 2.6.9 e 2.5.10 são vulneráveis a um ataque de execução remota de código (CVE-2020-1948) devido à desserialização insegura. A vulnerabilidade afeta o componente Dubbo Provider, que utiliza serialização nativa Java sem validação adequada.
Detalhes Técnicos
Esta vulnerabilidade pode ser explorada através de múltiplos vetores:
Desserialização Hessian: Explorando a implementação do protocolo de serialização Hessian
Injeção JNDI: Utilizando técnicas de injeção JNDI para obter execução remota de código
Serialização Java: Usando ataques tradicionais de desserialização Java com cadeias de gadget
Uso
Configurar Ambiente Vulnerável
root@kitploit:~
# Clone and build a vulnerable Dubbo version
cd dubbo-dubbo-2.7.5
mvn clean package
Verificação de Vulnerabilidade
root@kitploit:~
# Run the proof of concept
python dubboPoc.py -t <target_ip> -p <target_port>
Exploração
root@kitploit:~
# Run the exploit
python dubboExp.py -t <target_ip> -p <target_port> -c "command_to_execute"
Geração de Payload Personalizado
Você pode usar o ysoserial.jar para gerar payloads personalizados:
Este repositório é apenas para fins de pesquisa de segurança e educacionais. O código e as ferramentas fornecidos devem ser usados apenas contra sistemas que você tem permissão para testar. Qualquer uso indevido destas informações não é de responsabilidade do proprietário do repositório.