È possibile sfruttare questa istanza di Zookeeper?

11

Stavo eseguendo un test di sicurezza per un cliente quando mi sono imbattuto in un Zookeeper installazione su xx.xxxx: 2181. Cercando NetCat ho rivelato che sono in grado di tutti i seguenti comandi:

dump : elenca le sessioni in sospeso e i nodi effimeri. Funziona solo sul leader.

envi : stampa i dettagli sull'ambiente di pubblicazione

kill : arresta il server. Questo deve essere emesso dalla macchina su cui è in esecuzione il server ZooKeeper. (Non ho provato questo)

richieste : elenca le richieste in sospeso

ruok : verifica se il server è in esecuzione in uno stato non di errore. Il server risponderà con imok se è in esecuzione. Altrimenti non risponderà affatto.

srst : ripristina le statistiche restituite dal comando stat.

stat : elenca le statistiche sulle prestazioni e i client connessi.

Non ho familiarità con Zookeeper quindi ti prego di scusarmi se sembra una domanda stupida ma Zookeeper dovrebbe essere accessibile senza autenticazione? e anche quali sono le implicazioni di avere questa applicazione esposta?

Qualsiasi aiuto è molto apprezzato, grazie

    
posta Mico 27.07.2016 - 06:51
fonte

2 risposte

7

Prima di tutto, non ho nemmeno familiarità con Zookeeper, ma potrei darti alcuni consigli generali dal punto di vista della sicurezza.

I comandi Zookeeper che hai elencato suona come funzioni amministrative, il che significa che probabilmente dovrebbe essere accessibile solo dopo l'autenticazione o dovrebbe, ad esempio, essere accessibile solo all'interno di una rete privata o accessibile solo da determinati indirizzi IP.

Se stai testando un ambiente di test controllato, ti suggerisco di contattare l'amministratore e pianificare un momento per testare il comando kill , questo verificherà se funzionerà davvero in questo modo. Se lo fa posso immaginare qualcosa come trovare tutti i server Zookeeper in un cluster e kill tutti, causando un arresto del servizio. I professionisti della sicurezza probabilmente chiameranno questo un rischio di disponibilità. Gli hacker etici e gli script-kiddy probabilmente chiameranno questo un defacement.

Ancora una volta non ho alcuna conoscenza di Zookeeper ma potrei immaginare i seguenti rischi teorici.

  1. dump mostra le sessioni, a seconda delle informazioni esatte sulla sessione esposte, potresti riuscire a confondere il sistema quando provi a spoofare una sessione del genere. Forse influisce sull'integrità.
  2. envi a seconda delle informazioni mostrate potresti usarlo per avere una visione migliore del tuo obiettivo ed eventualmente ampliare l'ambito se altri sistemi correlati vengono trovati da quelle informazioni.
  3. kill come notato prima, rischio di disponibilità e probabilmente il più grande rischio di questo elenco di comandi.
  4. reqs divulgazione di informazioni e in base alle informazioni una possibilità di confusione dei processi con lo spoofing delle cose.
  5. ruok semplice divulgazione di informazioni, non riesco a immaginare alcun rischio a meno che non siano note alcune vulnerabilità specifiche di Zookeeper che funzioneranno solo quando è in esecuzione in uno stato di non errore. Anche in questo caso, lo stato di errore / non errore è il 50% di possibilità che una vulnerabilità "specifica dello stato" funzioni. Conoscere lo stato attuale aumenta teoricamente al 100% quando le versioni e tutto corrispondono.
  6. srst a seconda di quali statistiche si reimposta esattamente, potresti essere in grado di pulire le tracce dopo un tentativo di hacking. Cancellare le tracce.
  7. % di divulgazione di informazioni distat. Fornire approfondimenti non necessari nel sistema e possibilmente nell'infrastruttura e possono essere utilizzati per ampliare l'ambito.

Il mio consiglio generale sarebbe. Impedisci a questo sistema di accettare quel tipo di comandi da chiunque. Possibilmente aggiungendo un livello di autenticazione come VPN e / o restrizioni IP o abilitando funzioni di autenticazione all'interno di Zookeeper (se presenti). Ciò assicurerà che le informazioni non siano superflue divulgate e mitighino il possibile rischio di disponibilità causato dal comando kill .

Sebbene kill non sia di per sé una vulnerabilità, è un rischio. Utilizzando il CVSS sistema di punteggio, se kill effettivamente funziona e in base al tuo preciso background di attacco e ai fattori che stimerei CVSS del rischio di disponibilità su qualcosa come 7.1 (alto), (AV: N / AC: M / Au: N / C: N / I: N / A: C)

Inoltre, potresti voler controllare questo:

risposta data 01.08.2016 - 11:55
fonte
3

ZooKeeper è uno strumento di gestione dei cluster. Per prima cosa, vedrò se puoi connettere un nodo client come sembra che tu sia già penetrato la rete interna (la maggior parte degli strumenti di cluster sono protetti a livello di rete). Se riesci a connettere un nodo client, puoi letteralmente getData . In breve, sì, questa potrebbe essere una vulnerabilità.

Per connettere un nodo client, attiva il tuo server e installa le dipendenze ZooKeeper del client e segui la guida all'installazione . Vedrai una lista di comandi che puoi usare una volta (se) il tuo nodo si connette.

Se i tuoi nodi client non si connettono direttamente, non preoccuparti, c'è speranza ... Vedi se riesci connettiti al master stesso e modifica alcune impostazioni in particolare il comando skipACL . Si noti inoltre che in qualsiasi momento è possibile provare alcuni attacchi di buffer overflow (non solo sul master ma anche sui nodi client).

Puoi inviare lavori / comandi al master in alcune lingue (Java / C), quindi ti suggerirei di testare tutto questo sulla tua istanza, prima che chiunque stia gestendo il cluster vedrà un utilizzo maggiore.

Inoltre, la maggior parte dei cluster di big data utilizza una sorta di NFS o FS distribuiti come Lustre. Lustre è intrinsecamente insicuro (protetto a livello di firewall / rete) quindi sentiti libero di tentare di sfruttarlo anche tu.

Alcuni altri software che possono essere in esecuzione sullo stesso nodo del master Zookeeper sono: Spark, Hadoop, Mesos, Ganglia, Pig, Hue, Hive e molti altri software di analisi di big data, quindi scriverei alcuni exploit di scoperta per anche quelli ...

I comandi che hai elencato sono documentati come "The Four Letter Words" e sono non intrinsecamente pericoloso (anche se intel potrebbe portare ad altri attacchi) tuttavia possono essere indicativi di exploit di configurazione come sopra elencati.

    
risposta data 01.08.2016 - 14:11
fonte

Leggi altre domande sui tag