Riepilogo

In questa procedura dettagliata video, abbiamo dimostrato come ottenere l'accesso root a un contenitore docker che esegue un server Web con un database SQL. Abbiamo iniziato sfruttando una vulnerabilità XSS riflessa nel sito web che gestisce un mercato di e-commerce. Ciò ci ha permesso di procedere e ottenere l'accesso amministrativo all'account amministratore dove abbiamo scoperto un'iniezione SQL che ci ha permesso di andare oltre e rivelare i record del database. Abbiamo utilizzato i record per accedere come SSH ed eseguire l'escalation dei privilegi sfruttando il carattere jolly nello strumento di archiviazione tar che alla fine ci ha portato in un contenitore docker. Montando il file system root su un contenitore di nostra scelta, siamo stati in grado di estrarre il flag root.

Questo post copre le risposte per Il mercato stanza in TryHackMe.

Cos'è la containerizzazione

In termini informatici, la containerizzazione è il processo di confezionamento di un'applicazione e delle risorse necessarie (come librerie e pacchetti) in un unico pacchetto denominato contenitore. Il processo di confezionamento delle applicazioni rende le applicazioni notevolmente portabili e facili da eseguire.

Le applicazioni moderne sono spesso complesse e in genere dipendono dall'installazione di framework e librerie su un dispositivo prima che l'applicazione possa essere eseguita. Queste dipendenze possono:

  • Essere difficili da installare a seconda dell'ambiente in cui è in esecuzione l'applicazione (alcuni sistemi operativi potrebbero non supportarli nemmeno!)
  • Crea difficoltà per gli sviluppatori nel diagnosticare e replicare gli errori, poiché potrebbe trattarsi di un problema con l'ambiente dell'applicazione, non con l'applicazione stessa!
  • Spesso possono entrare in conflitto tra loro. Ad esempio, avere più versioni di Python per eseguire applicazioni diverse è un grattacapo per l'utente e un'applicazione potrebbe funzionare con una versione di Python e non con un'altra.

Ottieni le note sul certificato OSCP

Cosa sono i contenitori Docker?

Docker è una piattaforma di containerizzazione relativamente semplice, estesa e open source. L'ecosistema Docker consente alle applicazioni (immagini: ne parleremo in una stanza successiva) di essere distribuite, gestite e condivise con facilità.

Lavorando su Linux, Windows e MacOS, Docker è una scelta intelligente per l'esecuzione delle applicazioni. Le applicazioni possono essere pubblicate come "immagini" e condivise con altri. Tutto ciò che serve è estrarre (scaricare) l'immagine ed eseguirla con Docker.

Docker utilizza la stessa tecnologia utilizzata nella containerizzazione per isolare le applicazioni in contenitori chiamati Docker Engine. Il Docker Engine è essenzialmente un'API che viene eseguita sul sistema operativo host, che comunica tra il sistema operativo e i contenitori per accedere all'hardware del sistema (come CPU, RAM, rete e disco)

Per questo motivo, il motore Docker è ampio e ti consente di fare cose come:

  1. Connetti i contenitori tra loro (ad esempio, un contenitore che esegue un'applicazione Web e un altro contenitore che esegue un database)
  2. Esportare e importare applicazioni (immagini)
  3. Trasferisci file tra il sistema operativo e il contenitore

Docker utilizza la sintassi di programmazione YAML per consentire agli sviluppatori di istruire come creare un contenitore e cosa eseguire. Questo è uno dei motivi principali per cui Docker è così portabile e facile da eseguire il debug; condividi le istruzioni e verrà creato ed eseguito allo stesso modo su qualsiasi dispositivo che supporti il motore Docker.

Sfide Risposte

Cos'è la bandiera 1?

Cos'è la bandiera 2? (Utente.txt)

Cos'è la bandiera 3? (Radice.txt)

Videoguida

Circa l'autore

Creo note sulla sicurezza informatica, note di marketing digitale e corsi online. Fornisco anche consulenza di marketing digitale, inclusi ma non limitati a SEO, annunci Google e Meta e amministrazione CRM.

Visualizza articoli