
CVE-2024-22515 caricamento arbitrario di file e CVE-2024-22514 esecuzione remota di codice per AgentDVR 5.1.6.0 (Autenticato)
CVE-2024-22515 caricamento file arbitrario e CVE-2024-22514 esecuzione remota di codice per AgentDVR 5.1.6.0 (Autenticato)
(Versioni precedenti probabilmente affette)
https://github.com/Orange-418/CVE-2024-22514-Remote-Code-Execution
https://github.com/Orange-418/CVE-2024-22515-File-Upload-Vulnerability
https://www.ispyconnect.com/docs/agent/about
https://www.youtube.com/watch?v=RXmoXERWVk8
Testato su 4.7.3.0 e 5.1.6.0. Anche le versioni intermedie e precedenti sono probabilmente interessate. Testato su installazioni per Windows x64, Linux x64 e Docker. Vale la pena notare che il percorso di sfruttamento per Windows varia leggermente. Invece di richiamare bash, puoi chiamare direttamente un file exe, ad esempio "/AgentDVR/sounds/payload.exe".
AgentDVR versione 5.1.6.0 contiene due vulnerabilità: una vulnerabilità di caricamento file arbitrario e una vulnerabilità di esecuzione file arbitrario. Queste si concatenano per ottenere l'esecuzione di qualsiasi file arbitrario caricato, inclusi payload dannosi. Ciò comporta una possibile RCE da parte di individui con credenziali valide per un server AgentDVR.
A causa della natura del programma, che utilizza in gran parte WebRTC, non ho creato uno script PoC. Tuttavia, il processo manuale è di complessità molto bassa. Se qualcuno crea uno script PoC e mi contatta, lo linkerò qui.
Per prima cosa, dopo aver effettuato l'accesso alla dashboard, aggiungi un nuovo dispositivo. Crea un dispositivo "Dummy" con le impostazioni predefinite.

Sul dispositivo, aggiungi un'azione per attivare un'attività se viene scattata una foto. Quindi, aggiungi un'attività e seleziona "Execute Command" e scegli un qualsiasi "File" nel menu a discesa per quale comando attivare.

Ora, prepara il tuo payload. Puoi modificare e utilizzare il file "payload.sh" in questo repository. È uno script di reverse shell molto semplice.
Dopo che è pronto, torna al menu del server e seleziona "File Upload". Seleziona "Audio" e inizia a cercare il file, ma cambia il selettore di file da "*.wav" a "All Files".


Successivamente, torna al menu del server e seleziona "Backup/Restore". Seleziona "Download". Riceverai un file zip contenente alcuni file .XML diversi.

Estrai i contenuti e apri "config.xml". Vicino alla parte inferiore troverai una riga simile a '<Directory Entry="/percorso/verso/media/"'. Questo è importante perché è la struttura delle cartelle per l'installazione di AgentDVR, che può presentarsi in diverse forme, a seconda del tipo di installazione.

Successivamente, modifica il file objects.xml e trova una riga vicino alla parte inferiore simile a '<entry type="EXE" param1='. Modifica il percorso, che dovrebbe chiamare un file bat di avviso predefinito, e inserisci un percorso che chiami bash per poi chiamare il tuo script .sh. Puoi modellare il percorso dal passaggio precedente per sapere cosa inserire.

Dopodiché, puoi avviare il tuo listener.

Ora, torna al menu del server e seleziona "Backup/Restore" di nuovo. Questa volta, scegli di caricare un file e seleziona il tuo file "objects.xml" modificato.

La dashboard dovrebbe riavviarsi con le modifiche. Ora, in teoria, dovresti avere una telecamera dummy con un avviso per attivare il tuo script di reverse shell quando viene scattata una foto. Con il tuo listener avviato, fai clic destro sul feed della telecamera dummy e seleziona "Take Photo".

Ora dovresti avere una shell di root.
