Cubrimos dos métodos para escapar de los contenedores Docker, incluido el método de montar el sistema de archivos del host completo o utilizar el espacio de nombres del proceso del sistema. Esto era parte de El Sala de rodeo Docker.

Obtenga notas del equipo azul

Respuestas de la habitación

¿Docker se ejecuta en un hipervisor? (Sí/No)
¿Cuál es el número de puerto del segundo registro de Docker?

¿Cuál es el nombre del repositorio dentro de este registro?

¿Cómo se llama la etiqueta que se ha publicado?

¿Cuál es el nombre de usuario en la configuración de la base de datos?

¿Cuál es la Contraseña en la configuración de la base de datos?

Cuál es el "IMAGEN_ID" Para el "desafío“¿Imagen de Docker que acabas de descargar?

Usando Dive, ¿cuántas “capas” hay en esta imagen?

¿Qué usuario se agregó exitosamente?

Contenido de “flag.txt” del sistema operativo host
Transcripción del vídeo
Qué está pasando chicos, bienvenidos de nuevo a este video de hoy, vamos a continuar y hablar sobre los contenedores Docker ahora en el video anterior en el último video hablamos sobre la contenedorización, la idea de la contenedorización y en qué se diferencia o cuáles son las diferencias entre contenerización y máquinas virtuales o virtualización y también hablamos sobre lo beneficioso que es usar contenedores Docker si desea utilizar la virtualización o si desea ejecutar ubicaciones dentro y también de los entornos porque la contenedorización ahorra recursos de manera conveniente y también segura.
En el video de hoy vamos a hablar sobre cómo comenzar a construir contenedores Docker, así que hablamos de cómo construir contenedores Docker, hablamos de seguir múltiples pasos sistemáticos para finalmente llegar a un punto en el que tenga un contenedor Docker completamente implementado.
Estamos dentro del contenedor y podríamos tener aplicaciones ejecutándose, como un servidor web, una base de datos MySQL, aplicaciones normales, sistemas operativos, etc., por lo que dividiremos la construcción de contenedores Docker en dos tipos: el primero que construye el contenedor Docker desde cero y el otro que construye el contenedor Docker. colocando la imagen sobre el archivo de imagen de Docker que usa arity, así que si bien tenemos dos tipos, el primero, pero lo primero es que el primer tipo es construir un contenedor Docker desde cero, lo que significa que lo primero que tenemos que hacer es crear un archivo Docker llamado un archivo Docker, el dockerfile es en realidad un archivo que contiene las instrucciones que se ejecutarán una vez que su Docker se esté ejecutando o si el contenedor de la ventana acoplable está en funcionamiento ahora, finalmente, el archivo docker forma lo que se llama la imagen del contenedor de un cuarto, por lo que una vez que construimos el archivo docker informamos al contenedor cuáles son las instrucciones o cuáles son los comandos que se ejecutarán.
Una vez que el contenedor Docker esté en funcionamiento, de modo que el archivo actual sea el bloque de construcción básico o de ritmo o la unidad para cualquier contenedor Docker, primero tenemos que construir este archivo o podemos encontrar dr. archivos en línea como imágenes, podemos descargarlos y luego podemos iniciar el contenedor, pero si desea crearlos desde cero, primero debe crear el archivo acoplable, así que lo dije, como pueden ver, los archivos doctor se pueden crear entendiendo cuáles son los Comandos básicos que los construyen como puedes ver dr. Los archivos se fermentan de la siguiente manera: instrucción y argumento. Entonces, las instrucciones se mencionan claramente en la documentación del sitio web de DockCoker. Puede encontrarlas todas aquí, pero mencioné algunas de ellas en un ejemplo a continuación para que, como puede ver, este es un muestra el dockerfile, por lo que tenemos instrucciones como ejecutar desde el directorio de trabajo, exponer estos CMD, ejecutar, todos estos se llaman instrucciones, por lo que tenemos la primera instrucción y luego tenemos el argumento, por lo que en este caso la instrucción es de y el argumento es usted. Para finalizar, la etiqueta es 200 220 por ahora Ubuntu es el nombre del sistema operativo de la imagen y 22.0 es la etiqueta, la etiqueta especifica la versión de la imagen, por lo que cuando decimos que no deberá 22.0 significa que estamos usando el sistema operativo Ubuntu versión 12.04 y luego tenemos la instrucción directorio de trabajo barra diagonal significa que estamos configurando el directorio de trabajo en la raíz del contenedor y luego tenemos este para que la instrucción se ejecute y actualice el kit de tablero Dash y esto es un comentario.
Bueno, eso se ejecuta como puede ver. Tengo explicaciones aquí, así que ejecute, ejecute un comando, así que lo haremos aquí, ejecutamos la actualización del repositorio ap2 y luego aquí usamos la misma instrucción, ejecute, instale una batería, para que pueda ver cuando decimos ejecutar, estamos ejecutando un comando, el actual aquí es un comando de Linux, por lo que, dependiendo del sistema operativo que se especifica en la instrucción from, el comando sigue, por lo que si configura el sistema operativo como Windows, debe usar el comando de Windows. está bien y después de la instrucción Ejecutar Aceptar, exponer ahora exponer aquí, ya que estamos ejecutando un servidor web, necesitamos ejecutar el servidor web en un puerto, así que exponga cuál es el puerto para que exponga la instrucción y 80 es el argumento que resulta ser el puerto 80 y aquí CMD, entonces, ¿cuál es la diferencia entre ejecutar y CMD? Básicamente, ambos ejecutan comandos. Diferencias: CMD ejecuta el comando una vez que el contenedor se inicia. Bien, una vez que el contenedor se ejecuta cuando se inicia el contenedor.
Bien, este es el archivo acoplable listo, ahora forma la imagen del contenedor acoplable que queremos construir. Bien, una vez que el archivo acoplable esté listo, ahora estamos listos para continuar con el siguiente paso, así que una vez que preparemos el archivo acoplable, necesitamos compilar el archivo acoplable. contenedor, por lo que el siguiente paso es construir el contenedor de la ventana acoplable, así que digamos que hemos nombrado la imagen o el archivo acoplable como sí para que pueda recordar que, sea lo que sea, luego construimos el contenedor de la ventana acoplable, use el siguiente comando Docker build darker build construye el contenedor con el archivo acoplable que acabamos de crear tan oscuro y horrible Dash T ahora guión T le damos un nombre al contenedor de la ventana acoplable, digamos que lo llamamos Stocker dots especifica la ruta al archivo acoplable que creamos, en este caso existe en el directorio de trabajo actual si no No existe en el directorio de trabajo actual, puede especificar la ruta aquí.
Eso es lo que significa el dockerfile. Una vez que ejecutamos este comando, hemos creado con éxito el contenedor de la ventana acoplable. Veremos que en el escenario práctico, una vez que construimos los contenedores de la ventana acoplable, hemos creado el archivo acoplable. Construimos el contenedor de la ventana acoplable. Ahora es el momento de ejecutar los contenedores. Bien, ahora somos dueños. el contenido usando el siguiente comando Docker run ejecuta el contenedor de la ventana acoplable Dash D Dash T ejecuta el control más oscuro en un modo separado, lo que significa que lo ejecutamos en segundo plano nombre del tablero del tablero Servidor web Apache aquí especificamos claramente un nombre para el contenedor de la ventana acoplable Lo sé previamente especificó el acosador, pero aquí si desea cambiar el nombre puede usar el guión guión nombre Dash p 8080 especifica el puerto que usará el contenedor acoplable ya que estamos ejecutando una imagen de servidor web. Bien, usamos el puerto 80 para que el contenedor acoplable escuche. en Puerto.
Este es el contenedor Docker con viñetas. Bien, recuerde que cuando construimos el contenedor Docker lo llamamos Stalker, por lo que aquí especificamos el nombre del Stalker, lo que significa que estábamos especificando que queremos ejecutar el contenedor Docker llamado Test Docker.
Muy bien, estos son los tres pasos básicos, así que primero construimos la imagen del dockerfile, luego construimos el más oscuro y luego lo ejecutamos. Bien, ahora el resto son sintaxis para la moneda en sí. Ahora di que no quieres o nosotros. No sé cómo crear un archivo Docker o una imagen de Docker, así que lo que puedes hacer, la siguiente opción es descargar la imagen en línea. Básicamente, puedes encontrar las imágenes de Docker que se encuentran en línea y en GitHub o en la página básica o de documentación. Entonces, si tenemos una imagen de Docker lista, el siguiente paso es compilarla inmediatamente para que tengamos la imagen.
Ahora es el momento de construirlo, pero ¿cómo extraemos la imagen? Cómo descargar una imagen más oscura, por lo que tenemos que usar el comando Docker pull ductwork para descargar y la imagen de Docker en línea.
dr. Pol y luego especificamos el nombre de la imagen, ese es el nombre que recibe y esa es la versión, está bien, entonces quieres la última o especificamos la versión 22.0 para decir siempre la última, así que después de todo, después de la columna se especifica la etiqueta de la El ataque de imagen especifica, como dijimos anteriormente, que es la versión de la imagen.
Entonces, una vez que hayamos sacado la imagen correctamente y sepamos dónde almacenamos la imagen, ahora volvemos a los pasos anteriores donde comenzamos a construir el bloque contenedor de la ventana acoplable o compilamos el dashti que acosa y con la ruta a la imagen, así es como funciona ahora, a continuación pasaremos a auditar las imágenes de Docker, así que digamos que hemos creado la imagen más oscura, construimos la más oscura y finalmente ejecutamos la ventana acoplable. Ahora es el momento de averiguar si la ventana acoplable se ha creado y ejecutado correctamente para que podamos usarla. la imagen de Docker LS enumerará todas las imágenes de Docker disponibles que hemos creado. Podemos eliminar una imagen específica usando este comando Docker image RM y especificamos el evento en sí y la etiqueta, así que primero comencemos enumerando todos los Docker disponibles. imágenes Docker imagen LS
Como puede ver, tenemos estas imágenes para cada imagen. Tenemos en el repositorio la etiqueta de la imagen que creó la ID de la imagen.
Recuerde o recuerde que podemos realizar todo tipo de operaciones en la imagen de la ventana acoplable usando su ID, por lo que cada vez que quiero realizar una operación en la imagen usamos su ID o usamos el nombre y la etiqueta es como mencionamos anteriormente. Si queremos eliminar una imagen más oscura, podemos decir Taco image RM y decir servidor web más reciente. Este comando eliminaría la primera imagen de Docker.
alternativamente, puede especificar el ID de la imagen en sí, así que tomamos esto y vamos a la línea de comando, si desea ver todas las operaciones, puede realizar la imagen, puede decir imagen más oscura y le dará el menú de ayuda sobre qué tipo. de comandos que puede usar, qué tipo de operaciones puede realizar en estas imágenes de Docker, comenzando por escuchar, eliminar, agregar, etc., etc.
Como puede ver la carga de inspección de puerto incorporada, puede consultar el menú de ayuda para ver más ejemplos, así que ahora sabemos cuáles son las imágenes de la ventana acoplable que tenemos.
Ahora revisemos el directorio de trabajo actual PWD, es slash home slash cinematic, enumeremos todas las peleas actuales, así que tenemos un archivo Docker aquí. Recuerde que el dockerfile es el componente básico de una imagen de Docker, así que una vez que construimos un archivo Docker, ¿vale? Lo siento, podemos usar el archivo Docker para crear una imagen de Docker lista.
Entonces, echemos un vistazo al archivo docker y su contenido, sin embargo, este es el primer archivo que tenemos que crear si queremos crear una imagen más oscura, así que obtengamos información local, echemos un vistazo al archivo.
Entonces, desde su propio dedo aquí especificamos la ejecución del sistema operativo, ejecutamos el comando actualizar, aumentamos, actualizamos el depósito de ap2 y luego instalamos una batería y sus utilidades, así que básicamente obtuvimos, como puede ver aquí, los comandos apt update y apt e instalamos el están encadenados con el sentido del desarrollador, esto es muy efectivo si desea minimizar el tiempo de compilación del Doctor y hacerlo más rápido y luego ejecutamos Eco, como puede ver, esto muestra una página HTML y la almacena en index.html y luego expone o hace que el servidor web escuche en el puerto 80 y luego ejecuta el comando al inicio del contenedor.
Ahora tenemos un archivo Docker que está listo. Bien, ahora hemos creado un archivo Docker. Ahora es el momento de convertir el archivo stalker en un contenedor. El siguiente paso es construir el contenedor. Usamos Docker compilado. Bien, especificamos un nombre para el archivo oscuro. Oak Returner dice que lo llamaremos servidor Apache, está bien y luego especificamos la ruta que contiene el archivo docker o está dañado. En este caso, es el directorio de trabajo actual, por lo que usamos puntos, como puede ver ahora, este resultado demuestra que la compilación o la construcción del más oscuro. La cortina se ha realizado con éxito.
Bien, esto se etiquetará como último ahorro de batería, así que ahora echemos un vistazo a las imágenes actuales de Docker, así que la imagen de Docker, como puede ver ahora, el archivo de Docker que creamos ahora se transformó en una imagen del servidor Apache, esta es la imagen ahora y es este Dy. D y este es el momento de Cricket cuando fue hace 121 segundos y este es el tamaño y el último ataque después de que construimos de acuerdo con la imagen creada del dockerfile, ahora es el momento de ejecutar el contenedor de la ventana acoplable, está bien, entonces Docker ejecuta el nombre del guión, pero dice que le pongamos un nombre. Servidor web.
Bien, luego especificamos el puerto, por lo que si subimos no se espera que memorices todos los comandos para que puedas volver a las notas, por lo que P 880 soyuz será 880 y luego especificamos la imagen para que la imagen sea ahora Irán como tú. Puede ver aquí, solo decimos que esto significa que ocurrió, se creó y se ejecutó correctamente. Ahora podemos iniciar la ventana acoplable, pero ¿cómo sabemos cuál es el ID? Qué hacemos con qué usamos para comenzar a ejecutar el contenedor de la ventana acoplable. Puede usar eso, sí, para enumerar todos los contenedores acoplables que se están ejecutando y también los contenedores acoplables que se han detenido.
Bien, como puede ver, vemos una lista de todos los contenedores Docker que se están ejecutando. Como puede ver, vemos nuestro servidor Apache del contenedor Docker ejecutándose correctamente. Podemos ver la hora en que se creó hace 44 segundos. El estado es activo después de 43 segundos. Estos son los puertos y los otros nombres utilizados, no solo el ID del contenedor, así que podemos hacerlo aquí, podemos decir Docker, está bien, iniciar y podemos usar el nombre más oscuro del ID, lo siento, ahora comenzó si desea detener los contenedores Docker. podemos usar Docker stop, así que ahora volvamos como pueden ver aquí, cuando enumeramos los contenedores Docker disponibles, vemos que nuestro contenedor Docker tiene un servidor irregular que salió hace unos segundos, por lo que Docker PS Dash a es un comando muy útil para enumerar todos los contenedores. ejecutándose y esos también se han detenido. Si desea ejecutar la bolsa acoplable, simplemente puede decir el inicio del curso y se ejecutará nuevamente, por lo que ahora son segundos.
Estas son operaciones básicas muy esenciales con las que debes estar familiarizado si quieres que Phoebe tenga fluidez cuando eres interesante y un entorno que usa contenedores Docker, por lo que estos son los comandos básicos que son muy comunes si quieres crear y configurar y ejecutar contenedores Docker.
Muy bien, usemos Docker PS Dash para tener más tiempo y ver los contenedores Docker disponibles. Ahora detengamos el servidor web Apache. Docker se detiene, así que ya ha visto cómo creamos los archivos de la corte, creamos imágenes de Docker y ejecutamos contenedores Docker. Ahora es el momento de buscar. Descubra cómo podemos interactuar con los contenedores Docker, así que ahora sabemos que un médico podría ganar. Se está ejecutando pero se está ejecutando en segundo plano. Quiero interactuar con este contenedor Docker, entonces, ¿qué debo hacer? Puedo decir que Docker ejecute Dash it, que es un modo. o una opción que podamos usar para interactuar con el contenedor, luego especificamos la imagen para que sea el servidor Apache.
Bien, y luego decimos que queremos, necesitamos especificar el comando, entonces, qué tipo de comando queremos ejecutar con el contenedor con el decodificador en cuestión para ejecutar, por lo que Sabian bash queremos generar un disparo, por lo que esto generará un shell como usted. Puede ver que este es el nombre de host del contenedor ahora, por lo que ahora puede ver el mensaje o el transbordador cambió del nombre de usuario al nombre de host del contenedor, por lo que si escribe ID, puede ver que esta es la ruta ahora muchas veces o A menudo vemos esto cuando doblamos contenedores Docker de prueba, aterrizamos en nuestro servidor o en una máquina de destino y vemos este mensaje y pensamos que enrutamos la máquina, pero en realidad este no es el usuario raíz real, sino el nombre de host del contenedor Docker, por lo que esta es la raíz del contenedor. PWD mostrará el contenido W del directorio de trabajo del contenedor. LS Dash LA enumerará todos los archivos del contenedor, por lo que la existencia del entorno más oscuro significa que estamos dentro de un contenedor Docker y ahora está en Durante el pentesting, cuando vemos que esto está bien, estamos seguros de que se trata de un contenedor Docker. Básicamente, si está probando, su objetivo es escapar de este taco shell.
Bien, si semana en el archivo del entorno más oscuro, por lo que no hay nada dentro, verificaremos si ejecutamos los comandos de Docker PS Dash a
Entonces, como puede ver, el comando no se encontró porque estamos dentro del entorno más oscuro, tenemos que escapar del shell médico para poder enumerar toda la información sobre los contenedores en ejecución y dejar de esquivar, así que si se desplaza hacia abajo aquí en las notas que he enumerado. todas estas indicaciones de que está tratando con un contenedor Docker en este párrafo el concepto de pentesting de los contenedores Docker cómo están comprometidos indicaciones de un contenedor Docker los excesos del archivo del entorno Docker cómo enumerar y estrategias de escape.
Entonces, desde la perspectiva de cuando probamos, cuando vemos esto, estamos dentro del contenedor Docker, el objetivo es escapar de él, está bien, chicos, así es como creamos y ejecutamos contenedores Docker. Ahora a veces quieres casos de uso más complejos de contenedores Docker, por ejemplo, un contenedor Docker. que creamos era solo un servidor web simple, a veces desea ejecutar una aplicación web completa que requiere no solo un servidor web, también requiere una base de datos como MySQL, por lo que en ese caso tendrá que crear más un contenedor y esto simplemente significa que no se puede ampliar si desea crear aplicaciones más complejas, entonces, ¿cuál es la solución para esa solución? Usamos Docker Compose, por lo que Docker Compose es un método para ejecutar varios contenedores una vez y al mismo tiempo y al mismo tiempo los conectamos usando una red para que pueda Vaya a la documentación y aquí mismo Docker Compose, así que es Roy Docker Compose.
Puede ver instrucciones sobre cómo instalar Docker Compose y cómo comenzar, pero simplemente para drogarme, puedo componer y he instalado Docker Compose. Debe crear algo llamado archivo Docker Compose que está escrito en lenguaje Jama. Es extremadamente importante. escriba este archivo antes de ejecutar Docker Compose porque especifica todos los contenedores de Docker que desea ejecutar y conectar entre sí. Aquí hay un ejemplo para que pueda ver lo mismo que el dr. Hasta aquí tenemos la versión de instrucciones Imagen del entorno de redes de servicios. Estas son todas las instrucciones después de las instrucciones. Tenemos el mismo argumento que el disparado más oscuro, pero aquí, en el archivo de composición de Docker, especificamos los contenedores de Docker que queremos votar, por ejemplo, y este archivo aquí, por eso. Virgin y luego la instrucción de superficie especifica los contenedores que desea conectar, el primer trimestre se crea otro en la base de datos.
Usaremos el contenedor acoplable que especificó para ser Observer y este es el nombre de la imagen. La instrucción de redes debe ser la misma prueba. Commerce. La instrucción de nadie es una instrucción que se usa para conectar ambos contenedores, la web y la base de datos, y en realidad el Necesita estar conectado porque la aplicación que no se conecta a su base de datos no funcionará, por lo que debemos conectarlos con las instrucciones de la red. Él admite todo el servidor, por ejemplo, se ejecuta en el puerto 80. Luego venimos a probar la base que usa la imagen MySQL. el último
Entonces, básicamente, la duración de mi ciclo es una imagen que no se crea desde cero, en realidad está en línea, por lo que la imagen y la etiqueta son cuando vemos la imagen y el texto especificado, significa que desea descargar o colocar la imagen en línea para que las redes y luego el El entorno se especifica variables o parámetros de la conexión, el nombre de la base de datos, el nombre de usuario y la contraseña y, por último, usamos las redes de inserción para indicar que estamos. He conectado estos contenedores juntos. Siento que especificamos el archivo de composición de Docker.
El siguiente paso es ejecutar los generales juntos para que podamos usar Docker compose build y comenzar bien. Un comando será Docker compose up. Puede usar stop y down para detener o detener y eliminar el contenedor juntos, así que muchachos, también regresen. la ventana acoplable redacta la documentación y revisa los detalles si quieres más detalles, está bien, chicos, eso fue todo. Espero que hayan disfrutado la lección y definitivamente los veré en el próximo video. No olviden que es posible que me estén preguntando cómo llegar. En estas notas, pueden suscribirse a la membresía del canal y obtener acceso al portal en línea, además de los archivos PDF almacenados en Google Drive, así que eso fue todo, nos vemos en el siguiente video.

Tutorial en vídeo

Acerca del Autor

Creo notas de ciberseguridad, notas de marketing digital y cursos online. También brindo consultoría de marketing digital que incluye, entre otros, SEO, Google y meta anuncios y administración de CRM.

Ver Artículos