Abbiamo trattato due metodi per eseguire l'escape dei contenitori docker, incluso il metodo di montaggio dell'intero file system host o l'utilizzo dello spazio dei nomi del processo di sistema. Questo faceva parte di The Sala Docker Rodeo.

Ottieni le note del Blue Team

Risposte in camera

Docker funziona su un hypervisor? (Sì/No)
Qual è il numero di porta del secondo registro Docker?

Qual è il nome del repository all'interno di questo registro?

Qual è il nome del tag che è stato pubblicato?

Qual è il nome utente nella configurazione del database?

Qual è la password nella configurazione del database?

Quale è "ID_IMMAGINE" per il "sfida" Immagine Docker che hai appena scaricato?

Usando Dive, quanti “Livelli” ci sono in questa immagine?

Quale utente è stato aggiunto correttamente?

Contenuto di "flag.txt" dal sistema operativo host
Trascrizione video
Cosa sta succedendo ragazzi, bentornati a questo video oggi, riprenderemo e parleremo dei contenitori Docker ora nel video precedente nell'ultimo video abbiamo parlato della containerizzazione, dell'idea di containerizzazione e di come è diversa o quali sono le differenze tra containerizzazione e macchine virtuali o virtualizzazione e abbiamo anche parlato di come sia vantaggioso utilizzare i contenitori Docker se si desidera utilizzare la virtualizzazione o se si desidera eseguire posizioni all'interno e insieme agli ambienti perché la containerizzazione consente di risparmiare risorse in modo conveniente e anche sicuro.
Nel video di oggi parleremo di come iniziare a creare contenitori Docker, quindi parliamo di creare contenitori Docker, parliamo di seguire più passaggi sistematici per arrivare finalmente al punto in cui si dispone di un contenitore Docker completamente distribuito.
Siamo all'interno del contenitore e potremmo avere applicazioni in esecuzione come server Web, database MySQL, applicazioni regolari, sistemi operativi e così via, quindi divideremo la creazione di contenitori Docker in due tipi, il primo sta costruendo il contenitore Docker da zero e l'altro sta costruendo il contenitore Docker estraendo l'immagine sul file immagine Docker utilizzando arity, quindi mentre abbiamo due tipi il primo ma la prima cosa è che il primo tipo sta costruendo il contenitore Docker da zero, il che significa che la prima cosa che dobbiamo fare è creare un file Docker chiamato un file Docker il dockerfile è in realtà un file che contiene le istruzioni che verranno eseguite una volta che il tuo Docker è in esecuzione o se il contenitore docker è attivo e funzionante ora alla fine il dockerfile forma quella che viene chiamata immagine del contenitore quart, quindi una volta creato il dockerfile informiamo il contenitore quali sono le istruzioni o quali sono i comandi che verranno eseguiti.
Una volta che il contenitore Docker è attivo e funzionante in modo che il file corrente sia l'elemento base o il blocco di costruzione del ritmo o l'unità per qualsiasi contenitore Docker, dobbiamo prima costruire questo file oppure possiamo trovare dr. file online come immagini possiamo scaricarli e poi possiamo avviare il contenitore ma se vuoi crearli da zero devi prima creare il dockerfile quindi ho detto così come potete vedere ragazzi i file dottori possono essere creati capendo quali sono i comandi di base che li costruiscono come puoi vedere dr. i file vengono fermentati nel modo seguente istruzione e argomento Quindi le istruzioni sono chiaramente menzionate nella documentazione del sito web dockCoker puoi trovarle tutte qui ma ne ho menzionate alcune in un esempio qui sotto quindi come puoi vedere questa è una esempio dockerfile quindi abbiamo l'istruzione come dalla directory di lavoro esegui esegui esponi questi CMD esegui queste sono tutte chiamate istruzioni quindi abbiamo la prima istruzione e poi abbiamo l'argomento quindi in questo caso qui l'istruzione è da e l'argomento è tu sei alla fine il tag è 200 220 per ora Ubuntu è il nome del sistema operativo dell'immagine e 22.0 for è il tag il tag specifica la versione dell'immagine quindi quando diciamo che non dovrai pagare 22.0 significa che stiamo usando il sistema operativo Ubuntu versione 12.04 e poi abbiamo le istruzioni work directory slash slash significa che stiamo impostando la directory di lavoro sulla root del contenitore e poi abbiamo questo questo in modo che l'istruzione venga eseguita e su dash kit update Dash y this è un commento.
OK, viene eseguito, come puoi vedere, ho delle spiegazioni qui, quindi corri esegui un comando quindi faremo qui eseguiamo l'aggiornamento del repository ap2 e poi qui usiamo la stessa istruzione esegui installa una batteria così come puoi vedere quando diciamo esegui stiamo eseguendo un comando quello corrente qui è un comando Linux quindi a seconda del sistema operativo specificato nell'istruzione from il comando segue quindi se lo sei se imposti il sistema operativo su Windows devi usare il comando Windows okay e dopo l'istruzione Esegui Okay esponi ora esponi qui poiché stiamo eseguendo un server Web, dobbiamo eseguire il server Web su una porta, quindi esponi il mio punto su quale è la porta, quindi espone l'istruzione e 80 è l'argomento che sembra essere il porta 80 e qui CMD quindi qual è la differenza tra esegui e CMD, quindi in pratica entrambi eseguono i comandi differenze CMD esegue il comando una volta avviato il contenitore, va bene una volta che il contenitore viene eseguito all'avvio del contenitore.
Ok, quindi questo è il dockerfile pronto, ora forma l'immagine del contenitore docker che vogliamo creare, okay, una volta che il file docker è pronto, okay, ora siamo pronti per procedere al passaggio successivo, quindi una volta preparato il file docker, dobbiamo creare il dockerfile container quindi il passaggio successivo è creare il contenitore docker quindi dì che abbiamo chiamato l'immagine o il dockerfile come sì, così puoi ricordare che qualunque cosa tu voglia, quindi costruiamo il contenitore docker usa il seguente comando Docker built darker build costruisce il contenitore con il il file docker che abbiamo appena creato è così scuro e orribile Dash T ora trattino T diamo un nome al contenitore docker diciamo di chiamarlo come Stocker punti specifica il percorso del file docker che abbiamo creato in questo caso esiste nella directory di lavoro corrente se non lo fa non esiste nella directory di lavoro corrente, puoi specificare il percorso qui.
Questo è ciò che il dockerfile una volta eseguito questo comando abbiamo creato con successo il contenitore docker vedremo che nello scenario pratico una volta creati i contenitori docker abbiamo creato il dockerfile costruisci il contenitore docker ora è il momento di eseguire i contenitori ok ora possediamo il contenuto utilizzando il seguente comando Docker run esegue il contenitore docker Dash D Dash T esegue il controllo più scuro in modalità distaccata, il che significa che lo eseguiamo in background dash nome trattino Server web Apache qui specifichiamo chiaramente un nome per il contenitore docker So che hai specificato in precedenza lo stalker ma qui se vuoi cambiare il nome puoi usare dash dash name Dash p 8080 specifica la porta che utilizzerà il contenitore docker poiché stiamo eseguendo un'immagine del server web okay, usiamo la porta 80 in modo che il contenitore docker sia in ascolto sul Porto.
Questo è il contenitore Docker con punti elenco, ok, ora ricorda che quando abbiamo creato il contenitore Docker lo abbiamo chiamato stalker, quindi qui specifichiamo il nome stalker, il che significa che stavamo specificando che vogliamo eseguire il contenitore Docker denominato test docker.
Va bene, quindi questi sono i tre passaggi fondamentali, quindi prima creiamo l'immagine dockerfile, poi costruiamo quella più scura e poi la eseguiamo, ok, ora il resto sono sintassi per la moneta stessa, va bene, ora dì che non vuoi o noi non so come creare un file Docker o un'immagine Docker, quindi l'opzione successiva è scaricare l'immagine online, ok, quindi in pratica puoi trovare le immagini Docker trovate online e GitHub o nella pagina base o nella documentazione quindi qui, se abbiamo un'immagine Docker pronta, il passaggio successivo è crearla immediatamente, in modo da avere l'immagine
ora è il momento di costruirlo, ma come possiamo estrarre l'immagine come scaricare un'immagine più scura, quindi dobbiamo usare il comando Docker pull ductwork scaricherà e l'immagine Docker online quindi
dottor. Pol e poi specifichiamo il nome dell'immagine che è il nome che indica e questa è la sua versione ok, quindi vuoi l'ultima oppure specifichiamo la versione 22.0 per dire sempre l'ultima quindi dopo tutto dopo che la colonna specifica il tag di image attack specifica come abbiamo detto prima che è la versione dell'immagine.
Quindi, una volta che abbiamo recuperato l'immagine correttamente e sappiamo dove abbiamo archiviato l'immagine, torniamo ai passaggi precedenti in cui iniziamo a creare il blocco contenitore docker o creare dashti quello stalker e con il percorso dell'immagine, quindi ecco come ora funziona ora passeremo al controllo delle immagini Docker quindi diciamo che abbiamo creato l'immagine più scura abbiamo creato quella più scura stessa e finalmente eseguiamo la finestra mobile ora è il momento di scoprire se la finestra mobile è stata creata ed eseguita con successo in modo da poterla usare l'immagine Docker LS elencherà tutte le immagini Docker disponibili che abbiamo creato possiamo rimuovere un'immagine specifica utilizzando questo comando Docker image RM e specifichiamo l'evento stesso e il tag, quindi iniziamo prima elencando tutti i Docker disponibili immagini Immagine Docker LS
come puoi vedere, abbiamo queste immagini per ogni immagine che abbiamo nel repository, il tag dell'immagine creato dall'ID immagine.
Ricorda o ricorda che possiamo eseguire tutti i tipi di operazioni sull'immagine dell'immagine docker utilizzando il suo ID, quindi ogni volta che voglio eseguire un'operazione sull'immagine utilizziamo il suo ID o utilizziamo il nome e il tag è come ti abbiamo menzionato prima vogliamo rimuovere un'immagine più scura possiamo dire Immagine Taco RM e dire che il server web più recente questo comando rimuoverebbe la prima immagine Docker
in alternativa puoi specificare l'ID dell'immagine stessa quindi prendiamolo e andiamo alla riga di comando se vuoi dare un'occhiata a tutte le operazioni che puoi eseguire sull'immagine puoi dire immagine più scura e ti darà il menu di aiuto su cosa ordinare di comandi che puoi utilizzare che tipo di operazioni puoi eseguire su queste immagini Docker iniziando dall'ascolto rimuovendo aggiungendo e così via
come puoi vedere il caricamento di ispezione porta integrato, puoi controllare il menu di aiuto per ulteriori esempi, va bene, quindi ora sappiamo quali sono le nostre immagini docker.
Ora controlliamo la directory di lavoro corrente PWD, è slash home slash cinematico elenchiamo tutti i combattimenti attuali, quindi abbiamo un file Docker qui, ricorda che il dockerfile è l'elemento base di un'immagine Docker, quindi una volta creato un file Docker, ok possiamo scusarci, possiamo usare il dockerfile per creare un'immagine Docker pronta.
Diamo quindi un'occhiata al dockerfile e al suo contenuto, tuttavia questo è il primo file che dobbiamo creare se vogliamo creare un'immagine più scura, quindi prendi la fide locale diamo un'occhiata al file
quindi dai tuoi piedi qui specifichiamo l'esecuzione del sistema operativo eseguiamo il comando update abbiamo aumentato aggiorniamo il depositario ap2 e poi installiamo una batteria e le sue utilità quindi in pratica come puoi vedere qui i comandi apt update e apt e installato il sono concatenati insieme al senso dello sviluppatore, questo è molto efficace se vuoi ridurre al minimo il tempo di creazione del Dottore e renderlo veloce e poi eseguiamo Eco, come puoi vedere, questo visualizza una pagina HTML e la memorizza in index.html e poi espone ovvero fa ascoltare il web server sulla Porta 80 e poi esegue il comando all'avvio del contenitore.
Quindi ora abbiamo un dockerfile pronto ok, ora abbiamo creato un file Docker ora è il momento di convertire il file stalker in un contenitore quindi il passo successivo è costruire il contenitore quindi usiamo Docker built ok specifichiamo un nome per l'oscuro oak returner dice che lo chiamiamo server Apache okay e poi specifichiamo il percorso in contiene il dockerfile o è danneggiato in questo caso è la directory di lavoro corrente quindi usiamo i punti come puoi vedere ora questo output dimostra che la build o la costruzione del più scuro la tenda è stata eseguita con successo.
Ok, questo sarà contrassegnato come risparmio batteria più recente, quindi ora diamo un'occhiata alle immagini Docker attuali, quindi immagine Docker come puoi vedere ora il file Docker che abbiamo creato ora trasformato in un'immagine del server Apache, questa è l'immagine ora ed è questo Dy D e questa è l'ora Cricket quando è successo 121 secondi fa e questa è la dimensione e l'attacco più recente dopo averlo costruito in base all'immagine creata dal dockerfile, è ora di eseguire il contenitore docker, ok, quindi Docker esegue dash dash name ma dice che lo chiamiamo server web.
Ok e poi specifichiamo la porta quindi se saliamo non devi memorizzare tutti i comandi così puoi tornare alle note quindi P 880 soyuz be 880 e poi specifichiamo l'immagine quindi l'immagine è questa ora Iran come te puoi vedere qui stiamo solo dicendo che questo significa che si è verificato è stato creato ed eseguito con successo ora possiamo avviare la finestra mobile ma come facciamo a sapere qual è l'ID cosa facciamo con cosa utilizziamo per avviare l'esecuzione del contenitore finestra mobile così noi puoi usarlo sì, è per elencare tutti i contenitori docker in esecuzione e anche i contenitori docker che sono stati arrestati.
Ok, come puoi vedere, vediamo un elenco di tutti i contenitori Docker in esecuzione, come puoi vedere, vediamo il nostro server Apache del contenitore Docker in esecuzione, ok, possiamo vedere l'ora in cui è stato creato 44 secondi fa, lo stato è attivo dopo 43 secondi e queste sono le porte e gli altri nomi usati non solo l'ID del contenitore quindi possiamo fare qui possiamo dire Docker ok, avvia e possiamo usare il nome più scuro dell'ID scusa quindi ora è iniziato se vuoi fermare i contenitori Docker noi può usare Docker stop quindi ora torniamo indietro come puoi vedere qui quando abbiamo elencato i contenitori Docker disponibili vediamo il nostro contenitore Docker un server irregolare ora chiuso per secondi fa quindi Docker PS Dash a è un comando molto utile ragazzi per elencare tutti i contenitori in esecuzione e anche quelli si sono fermati se vuoi eseguire la borsa docker puoi semplicemente dire che il corso inizia e verrà eseguito di nuovo, quindi ora mancano pochi secondi.
Queste sono operazioni di base molto essenziali con cui i ragazzi devono avere familiarità se vuoi essere fluente con Phoebe quando sei interessante e un ambiente che utilizza contenitori Docker, quindi questi sono i comandi di base che sono molto comuni se vuoi gestire la creazione e configurare ed eseguire contenitori Docker.
Va bene, quindi usiamo Docker PS Dash per più tempo e vediamo i contenitori Docker disponibili, ora fermiamo il server web Apache Apache Docker stop, quindi ora hai visto come creiamo i file del tribunale, costruiamo immagini Docker ed eseguiamo contenitori Docker, ora è il momento di trovare su come possiamo interagire con i contenitori Docker, quindi ora sappiamo che un medico potrebbe guadagnare è in esecuzione ma è in esecuzione in background Voglio interagire con questo contenitore Docker, quindi cosa dovrei fare? Posso dire che Docker esegue Dash it che è una modalità o un'opzione che possiamo usare per interagire con il contenitore, quindi specifichiamo l'immagine in modo che l'immagine sia il server Apache.
Ok e poi diciamo che vogliamo, dobbiamo specificare il comando, quindi che tipo di comando vogliamo eseguire con il contenitore con il decodificatore in questione da eseguire, quindi Sabian bash vogliamo generare uno shot, quindi questo genererà una shell come te ora puoi vedere che questo è il nome host del contenitore, quindi proprio adesso puoi vedere il prompt o la navetta cambiata dal nome utente al nome host del contenitore quindi se digiti ID come puoi vedere questo è il percorso ora molte volte o spesso lo vediamo quando pieghiamo i contenitori Docker di prova, atterriamo sul nostro server o su una macchina Target e vediamo questo messaggio e pensiamo di aver instradato la macchina ma in realtà questo non è l'effettivo utente root tuttavia è il nome host del contenitore docker quindi questa è la radice del contenitore PWD visualizzerà il contenuto W directory di lavoro del contenitore LS Dash LA elencherà tutti i file dei contenitori quindi l'esistenza dell'ambiente più scuro significa che siamo all'interno di un contenitore Docker e ora è dentro durante il pentesting quando vediamo questo, siamo certi che si tratta di un contenitore Docker, quindi in pratica se stai testando il tuo obiettivo è sfuggire a questo guscio di taco, questo.
Ok, se settimana nel file dell'ambiente più oscuro, quindi non c'è nulla all'interno, verificheremo se eseguiamo i comandi Docker PS Dash a
quindi come puoi vedere comando non trovato perché siamo all'interno del darker stesso dobbiamo uscire dalla Doctor Shell per poter elencare tutte le informazioni sui contenitori in esecuzione e smettere di schivare i contenitori quindi se scorri qui in basso nelle note che ho elencato tutte queste indicazioni che hai a che fare con un contenitore Docker in questo paragrafo il concetto di pentesting dei contenitori Docker come sono compromessi le indicazioni di un contenitore Docker gli eccessi del file dell'ambiente Docker come enumerare e le strategie di fuga.
Quindi, dal punto di vista dei test, quando vediamo questo, siamo all'interno del contenitore Docker, l'obiettivo è scappare, ok ragazzi, quindi è così che creiamo ed eseguiamo i contenitori Docker ora, a volte vuoi casi d'uso più complessi dei contenitori Docker, ad esempio un contenitore Docker abbiamo creato era solo un semplice server web a volte vuoi eseguire un'applicazione web completa che richiede non solo un server web richiede anche un database come MySQL quindi in quel caso dovrai creare più di un contenitore e semplicemente questo significa che tu non è possibile aumentare le dimensioni se si desidera creare applicazioni più complesse, quindi qual è la soluzione per questa soluzione è che usiamo Docker Compose in modo che Docker Compose sia un metodo per eseguire più contenitori una volta e insieme e allo stesso tempo li colleghiamo utilizzando una rete in modo che tu possa vai alla documentazione e proprio qui Docker compone quindi è Roy Docker compose.
Puoi vedere le istruzioni su come installare Docker Compose e come iniziare, ma semplicemente per sballarti posso comporre e aver installato Docker Compose devi creare qualcosa chiamato file Docker Compose che è scritto in linguaggio Jama, è estremamente importante scrivi questo file prima di eseguire Docker compose perché specifica tutti i contenitori docker che desideri eseguire e connettere insieme, un esempio è qui in modo che tu possa vedere lo stesso di dr. finora abbiamo le istruzioni versione Servizi immagine ambiente reti queste sono tutte le istruzioni dopo le istruzioni dobbiamo ragionare come darker fired ma qui nel file di composizione docker specifichiamo un contenitore Docker che vogliamo votare per esempio e questo file qui ecco perché la Virgin e quindi l'istruzione di superficie specifica i contenitori che si desidera connettere, il primo quarto viene frustato, un altro viene creato nel database.
Utilizzeremo sia il contenitore docker che ha specificato di essere Observer e questo è il nome dell'istruzione delle reti di immagini dovrebbe essere la stessa test Commerce l'istruzione nessuno è un'istruzione che viene utilizzata per connettere entrambi i contenitori insieme al web e al database e in realtà il devono essere connessi perché l'applicazione che non si connette al suo database non funzionerebbe, quindi dobbiamo collegarli con le istruzioni della rete che supporta l'intero server, ad esempio funziona sulla porta 80, quindi arriviamo a testare la base che utilizza l'immagine MySQL ultimo
quindi in pratica la durata del mio ciclo è un'immagine che non viene creata da zero, in realtà è online, quindi l'immagine e il tag sono quando vediamo l'immagine e il testo specificato significa che vuoi scaricare o caricare l'immagine online, quindi le reti e poi il nell'ambiente vengono specificate variabili o parametri del nome del database di connessione, nome utente e password e infine utilizzare le reti di inserimento per indicare che siamo. Ho collegato questi contenitori insieme, sento che abbiamo specificato il file di composizione della finestra mobile.
Il prossimo passo è eseguire i generali insieme in modo da poter usare Docker compose build e iniziare bene su un comando sarà Docker compose up puoi usare stop e down per fermare o fermare ed eliminare il contenitore insieme così ragazzi tornate anche a la finestra mobile compone la documentazione e controlla i dettagli se volete maggiori dettagli okay ragazzi, così è stato spero che vi sia piaciuta la lezione e ci vedremo sicuramente nel prossimo video oh non dimenticare che potresti chiedermi come ottenere con queste note potete iscrivervi all'abbonamento al canale e avere accesso al portale online oltre ai file PDF archiviati in Google Drive quindi era tutto ragazzi, ci vediamo nel prossimo video.

Videoprocedura dettagliata

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