
Divulgazione dettagliata di CVE-2017-14105 per Aerohive HiveManager Classic riguardante l'escalation dei privilegi tramite upload di un archivio di backup dannoso che consente l'esecuzione di codice JSP webshell.
Name Vulnerabilità di escalation dei privilegi in Aerohive HiveManager Classic
Sistemi interessati HiveManager Classic 8.0r1 8.1r1
Gravità Medium 6.6/10
Impatto CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:L/E:H/RC:C
Vendor http://www.aerohive.com/
Advisory http://www.ush.it/team/ush/hack-aerohive/aerohive-priv-exec.txt
Autori Sandro "guly" Zaccarini (guly AT guly DOT org)
Data 20170901
Aerohive Networks HiveManager Classic Online è un sistema di gestione di classe enterprise abilitato al cloud per i prodotti di rete Aerohive. HiveManager Classic Online offre creazione semplice di policy, aggiornamenti firmware e monitoraggio centralizzato di migliaia di access point, switch e router branch di Aerohive.
Divulgazione responsabile con Aerohive: Aerohive ha uno staff di sicurezza molto reattivo.
La loro risposta alla nostra comunicazione è stata abbastanza rapida, abbiamo ricevuto il primo ack entro 24 ore e una dichiarazione ufficiale in 4 giorni.
L'ultima versione del software al momento della scrittura può essere ottenuta dal portale di supporto all'indirizzo https://support.aerohive.com/login
La vulnerabilità consente a un utente locale, anche limitato come Tenant, di caricare un archivio di backup che contiene una webshell jsp, e quindi di eseguire codice sul sistema sottostante.
Il componente interessato è Backup Archive Handler.
Scoperta in HiveManager Classic 8.0r1, replicata in 8.1r1. Anche le versioni precedenti potrebbero essere interessate.
Il backup di HiveManager Classic è un semplice file .tar.gz con una struttura molto semplice.
Una volta estratto l'archivio, vedrai due cartelle:
"dbxmlfile/" contiene la configurazione HM/VHM, un file interessante su cui lavorare. Comunque il nostro interesse si è spostato su "HiveManager/" poiché contiene una directory denominata "tomcat/webapps" che è la web app predefinita di Tomcat.
L'albero completo è qualcosa del genere:
Se tale directory viene manomessa, compressa con tar/gzip e poi ripristinata utilizzando la funzionalità di backup/restore, un attaccante può ottenere l'esecuzione di codice sul sistema.
Come Proof of Concept, un file "webshell.jsp" è stato aggiunto al livello maps/, quindi abbiamo creato un nuovo archivio .tar.gz e provato a ripristinarlo.
Non è stato generato alcun errore e il file jsp era disponibile sotto la docroot all'URI /hm/domains/MyTenant/maps/
Ulteriori analisi hanno evidenziato che l'intero percorso era scrivibile, quindi è possibile caricare una shell jsp anche al di fuori dell'ambito del Tenant.
Il codice verrà eseguito come tomcat (uid/gid 501) consentendo un compromesso completo dell'interfaccia web e l'accesso ad altri file e configurazioni del Tenant.
Come amministratore principale HM, crea un gruppo senza privilegi "Administration -> HiveManager Operations -> Restore Database // Back Up Database" e "Administration -> Administrators". Ora passa a ogni VHM e cambia gruppo per i loro utenti.
Il vendor si sta spostando su una versione completamente nuova del prodotto chiamata HiveManager-NG, che ha un'architettura diversa e non è interessata da questa vulnerabilità. Non abbiamo effettuato alcun audit su tale versione del prodotto.
Mitre ha assegnato il CVE-2017-14105 per questa vulnerabilità.
Nessun riferimento.
Sandro "guly" Zaccarini è accreditato per la scoperta di questa vulnerabilità.
Sandro "guly" Zaccarini
sito web: http://www.ush.it/
mail: guly AT guly DOT org
Copyright (c) 2017 Sandro "guly" Zaccaini
Il permesso è concesso per la ridistribuzione di questo alert in formato elettronico. Non può essere modificato in alcun modo senza il mio esplicito consenso scritto. Se desideri ristampare l'intero alert o qualsiasi parte di esso in qualsiasi altro mezzo diverso da quello elettronico, ti prego di contattarmi via email per ottenere il permesso.
Disclaimer: Si ritiene che le informazioni contenute nell'avviso siano accurate al momento della pubblicazione in base alle informazioni attualmente disponibili. L'uso delle informazioni costituisce accettazione per l'uso in condizioni AS IS. Non ci sono garanzie riguardo a queste informazioni. Né l'autore né l'editore accettano alcuna responsabilità per qualsiasi perdita o danno diretto, indiretto o consequenziale derivante dall'uso o dall'affidamento su queste informazioni.