Resumen

En este video tutorial, demostramos cómo obtener acceso raíz a un contenedor acoplable que ejecuta un servidor web con una base de datos SQL. Comenzamos explotando una vulnerabilidad XSS reflejada en el sitio web que ejecuta un mercado de comercio electrónico. Esto nos permitió continuar y obtener acceso administrativo a la cuenta de administrador donde descubrimos una inyección SQL que nos permitió ir más allá y revelar los registros de la base de datos. Usamos los registros para iniciar sesión como SSH y realizar una escalada de privilegios explotando el comodín en la herramienta de archivo tar que finalmente nos llevó a un contenedor acoplable. Al montar el sistema de archivos raíz en un contenedor de nuestra elección, pudimos extraer el indicador raíz.

Esta publicación cubre las respuestas para El mercado habitación en TryHackMe.

¿Qué es la contenerización?

En términos informáticos, la contenedorización es el proceso de empaquetar una aplicación y los recursos necesarios (como bibliotecas y paquetes) en un paquete llamado contenedor. El proceso de empaquetar aplicaciones hace que las aplicaciones sean considerablemente portátiles y fáciles de ejecutar.

Las aplicaciones modernas suelen ser complejas y normalmente dependen de que se instalen marcos y bibliotecas en un dispositivo antes de que la aplicación pueda ejecutarse. Estas dependencias pueden:

  • Ser difícil de instalar dependiendo del entorno en el que se ejecuta la aplicación (¡es posible que algunos sistemas operativos ni siquiera los admitan!)
  • Crea dificultades para que los desarrolladores diagnostiquen y repliquen fallas, ya que podría ser un problema con el entorno de la aplicación, ¡no con la aplicación en sí!
  • A menudo pueden entrar en conflicto entre sí. Por ejemplo, tener varias versiones de Python para ejecutar diferentes aplicaciones es un dolor de cabeza para el usuario, y una aplicación puede funcionar con una versión de Python y no con otra.

Obtenga notas del certificado OSCP

¿Qué son los contenedores Docker?

Docker es una plataforma de contenedorización de código abierto, extensa y relativamente sencilla. El ecosistema Docker permite implementar, gestionar y compartir aplicaciones (imágenes; hablaremos de esto más adelante) con facilidad.

Trabajando en linux, Windows y MacOS, Docker es una opción inteligente para ejecutar aplicaciones. Las aplicaciones pueden publicarse como “imágenes” y compartirse con otras personas. Todo lo que se requiere es extraer (descargar) la imagen y ejecutarla con Docker.

Docker emplea la misma tecnología utilizada en la creación de contenedores para aislar aplicaciones en contenedores llamada Docker Engine. Docker Engine es esencialmente una API que se ejecuta en el sistema operativo host, que se comunica entre el sistema operativo y los contenedores para acceder al hardware del sistema (como CPU, RAM, redes y disco).

Debido a esto, el motor Docker es extenso y le permite hacer cosas como:

  1. Conectar contenedores entre sí (por ejemplo, un contenedor que ejecuta una aplicación web y otro contenedor que ejecuta una base de datos)
  2. Exportar e importar aplicaciones (imágenes)
  3. Transferir archivos entre el sistema operativo y el contenedor.

Docker usa la sintaxis de programación. YAML para permitir a los desarrolladores indicar cómo se debe construir un contenedor y qué se ejecuta. Ésta es una razón importante por la que Docker es tan portátil y fácil de depurar; comparta las instrucciones y las compilará y ejecutará en cualquier dispositivo que admita Docker Engine.

Desafíos Respuestas

¿Qué es la bandera 1?

¿Qué es la bandera 2? (Usuario.txt)

¿Qué es la bandera 3? (Raíz.txt)

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