
Codice di exploit proof of concept per CVE-2020-7388, una RCE non autenticata come SYSTEM sul servizio AdxDSrv di Sage X3.
Codice proof of concept dell'exploit per CVE-2020-7388, una RCE non autenticata come SYSTEM sul servizio AdxDSrv di Sage X3
Sage X3 espone un servizio amministrativo sulla porta TCP/1818 (predefinita, ma modificabile) nel processo "AdxDSrv.exe", parte del componente AdxAdmin. Questo servizio viene utilizzato per l'amministrazione remota della soluzione ERP Sage tramite Sage X3 Console. Una vulnerabilità all'interno del servizio consente a un attore malintenzionato di creare una richiesta al servizio esposto per eseguire comandi sul server come utente "NT AUTHORITY/SYSTEM".
Un resoconto dettagliato dell'exploit è disponibile nella nostra pubblicazione originale sul blog di Rapid7: https://www.rapid7.com/blog/post/2021/07/07/cve-2020-7387-7390-multiple-sage-x3-vulnerabilities/
AdxDSrv gira sulla porta TCP 1818 di default ed è elencato come servizio sconosciuto in Namp. Questo repository contiene due script NSE per identificare i servizi vulnerabili e l'AdxdSrv stesso.
python3 adxsrv_bypass.py --cmd <command to run as SYSTEM> --ip <remote target> --port <port of AdxDSrv service>
Nota: questo è un PoC grezzo, che invia flussi di byte in un ordine specifico, e potrebbe richiedere aggiustamenti. Il nostro tempo limitato con accesso al software ha impedito di mettere a punto gli exploit. Se incontri un'istanza vulnerabile e sistemi il PoC, invia una PR! Oppure, se stai cercando di sistemarlo e vuoi collaborare, non esitare a contattarci.
Durante un test di penetrazione di rete nel 2020, Cale Black ha identificato nuove vulnerabilità nel pannello di amministrazione web dell'ERP X3 di Sage. Questo ha spinto a un'ulteriore indagine sull'applicazione da parte di Jonathan peterson (@deadjakk), Aaron Herndon (@ac3lives), Cale Black, Ryan Villarreal (@XjCrazy09) e William Vu. Ci siamo addentrati e abbiamo identificato il servizio personalizzato AdxDSrv di Sage X3, utilizzato per l'amministrazione remota. Dopo un po' di reverse engineering e fuzzing, abbiamo ottenuto quattro CVE, di cui una è una RCE remota non autenticata con CVSS 10. Un enorme ringraziamento al peso massimo qui, @Deadjakk, per gran parte del reverse engineering e dei primi mockup del PoC.