Cosa cercano di fare gli 'hacker'? Te lo mostrerò con alcuni comandi - in un certo senso

settembre 30, 2024 #Accesso #docker #Hacking

Dichiarazione di non responsabilità: Questo post del blog è destinato esclusivamente a scopi educativi. Le informazioni fornite qui mirano a sensibilizzare sulle vulnerabilità di sicurezza e a incoraggiare lo sviluppo di applicazioni web più sicure. L'uso improprio di queste informazioni per scopi malevoli è illegale e non etico!

Panoramica

I privilegi di amministratore sono potenti e comportano una grande responsabilità. Permettono agli utenti di eseguire compiti a livello di sistema e accedere a informazioni sensibili. In questo post, esploreremo le tecniche per sfruttare le applicazioni con privilegi di amministratore, utilizzando specificamente i contenitori Docker e montando la directory /etc.

Docker è uno strumento di containerizzazione che consente di creare e gestire ambienti isolati. I contenitori condividono il kernel del sistema host, ma operano nei propri spazi utente. Manipolando le configurazioni di Docker, è possibile sfruttare le applicazioni con privilegi di amministratore o ottenere accesso non autorizzato a informazioni sensibili nel sistema host.

Installare Docker

Installa Docker: Segui la guida all'installazione ufficiale di Docker per installare Docker sul tuo sistema host. (Solitamente, questo comporta l'uso del gestore di pacchetti per ottenere il pacchetto e successivamente aggiungere l'utente al gruppo, cosa che la maggior parte delle persone, incluso io, fa per comodità (per non dover digitare continuamente sudo docker, cosa che sfrutteremo oggi) e avviare il demone / servizio Docker).

Creare ed Eseguire il Contenitore per Testare:

Utilizza il seguente comando per creare ed eseguire un contenitore Docker con la distribuzione Alpine Linux e una shell interattiva:

docker run --rm -it alpine sh

Montare la Directory /etc per Abusare di Configurazioni / Cattiva Configurazione:

Per montare la directory /etc dal tuo sistema host nel contenitore, usa l'opzione -v. Ad esempio, per montare /etc in /mnt/etc nel contenitore:

docker run --rm -it -v /etc:/mnt/etc alpine sh

Esplorare il Contenitore

Accedere alla Shell del Contenitore: Dopo aver eseguito il contenitore con la directory montata, sarai nella shell del contenitore. Puoi navigare fino alla directory /etc montata con:

cd /mnt/etc

Visualizzare i File del Sistema Host:

I file dalla directory /etc dell'host saranno accessibili all'interno del contenitore. Ad esempio, puoi elencare i file con:

ls -l /mnt/etc

# Qualcosa come /etc/shadow contiene tutte le password e gli utenti, ad esempio.

cat /mnt/etc/shadow

Sfruttamento e Spiegazione Escalation dei Privilegi in Docker

Privilegi del Contenitore: I contenitori sono generalmente isolati dal sistema host. Tuttavia, montare directory sensibili come /etc può esporre file di configurazione che potrebbero contenere informazioni preziose se il contenitore non è adeguatamente sicuro.

Montaggio di Directory Sensibili: Montando directory dal sistema host, puoi accedere a file sensibili. Ad esempio:

docker run --rm -it -v /etc:/mnt/etc alpine sh

Questo monta la directory /etc dell'host in /mnt/etc nel contenitore, consentendo l'accesso ai file di configurazione dell'host. Questo significa che un hacker, che potrebbe aver ottenuto alcuni privilegi utente sul server tramite Docker, potrebbe ottenere privilegi di amministratore. Questo richiederebbe che l'utente (nel senso di Linux - l'identità rubata dall'hacker) sia nel gruppo Docker, cosa che molte persone fanno, incluso io sul mio computer personale. Questo evita di dover digitare sudo e la password ogni volta, ma...

Configurazioni Errate Potenziali: Configurazioni errate di Docker o l'esecuzione di contenitori con privilegi elevati possono portare a un'escalation dei privilegi. Ad esempio, se il demone Docker è esposto o se i contenitori vengono eseguiti con privilegi eccessivi, ciò potrebbe essere ulteriormente sfruttato.

Conclusione e Mitigazione

Conclusione

Montare directory dell'host nei contenitori Docker può esporre informazioni sensibili del sistema host. In questo esempio, montare la directory /etc consente di accedere a file di configurazione critici del sistema. Una configurazione di sicurezza adeguata di Docker è essenziale per prevenire accessi non autorizzati e l'escalation dei privilegi.

Mitigazione

Seguendo queste migliori pratiche, puoi proteggere meglio i tuoi ambienti Docker e ridurre il rischio di sfruttamento dei privilegi di amministratore.

E non preoccuparti se ti chiedi cosa fare con queste informazioni e come sei arrivato qui in primo luogo; queste sono le domande che dovresti farti. Affronteremo tutto a seconda dell'interesse. Quindi invia le tue domande e a presto.