
Código de exploração de prova de conceito para CVE-2020-7388, um RCE não autenticado como SYSTEM no serviço AdxDSrv do Sage X3.
Código de exploração de prova de conceito para CVE-2020-7388, um RCE não autenticado como SYSTEM no serviço AdxDSrv do Sage X3
O Sage X3 expõe um serviço administrativo na porta TCP/1818 (padrão, mas alterável) sob o processo "AdxDSrv.exe", parte do componente AdxAdmin. Este serviço é usado para administração remota da solução ERP Sage através do Console Sage X3. Uma vulnerabilidade no serviço permite que um ator malicioso crie uma requisição ao serviço exposto para executar comandos no servidor como o usuário "NT AUTHORITY/SYSTEM".
A descrição detalhada da exploração pode ser encontrada em nossa publicação original no blog da Rapid7: https://www.rapid7.com/blog/post/2021/07/07/cve-2020-7387-7390-multiple-sage-x3-vulnerabilities/
O AdxDSrv roda na porta TCP 1818 por padrão e é listado como um serviço desconhecido no Nmap. Este repositório contém dois scripts NSE para identificar serviços vulneráveis e o próprio AdxdSrv.
python3 adxsrv_bypass.py --cmd <comando para executar como SYSTEM> --ip <alvo remoto> --port <porta do serviço AdxDSrv>
Nota: esta é uma PoC rudimentar, que envia fluxos de bytes em ordem específica, e pode precisar de ajustes. Nosso tempo limitado de acesso ao software impediu o refinamento das explorações. Se você encontrar uma instância vulnerável e corrigir a PoC, por favor envie um PR! Ou se está tentando corrigi-la e deseja colaborar, fique à vontade para entrar em contato.
Durante um teste de penetração em rede em 2020, Cale Black identificou novas vulnerabilidades no painel de administração web do Sage X3 ERP. Isso motivou uma investigação mais aprofundada no aplicativo entre Jonathan Peterson (@deadjakk), Aaron Herndon (@ac3lives), Cale Black, Ryan Villarreal (@XjCrazy09) e William Vu. Mergulhamos e identificamos o serviço personalizado AdxDSrv do Sage X3, que era usado para administração remota. Após alguma engenharia reversa e fuzzing, conseguimos quatro CVEs, uma delas sendo um RCE não autenticado com pontuação CVSS 10. Um grande agradecimento ao principal responsável aqui, @Deadjakk, por grande parte da engenharia reversa e dos esboços iniciais da PoC.