// 01
Reconocimiento
Lanzamos el escaneo con nmap contra 10.129.136.187. De los 65,535 puertos TCP, solo uno responde: el puerto 6379, puerto por defecto de Redis, con la versión 5.0.7.
Redis expuesto directamente a la red sin autenticación es una misconfiguration clásica. No hace falta ningún exploit — con el cliente oficial redis-cli podemos interactuar libremente con la base de datos.
// REDIS SIN AUTENTICACIÓN — ACCESO DIRECTO
Por defecto, Redis no requiere contraseña para conectarse.
La configuración requirepass en redis.conf está
vacía salvo que el administrador la establezca explícitamente. Un servidor Redis
expuesto en red pública sin esta configuración otorga acceso completo a todos
los datos almacenados, y en versiones antiguas incluso permite escritura
de archivos al sistema operativo.
Transformamos el XML de nmap en un reporte HTML navegable con xsltproc.
// 02
Redis · Enumeración
Nos conectamos directamente con redis-cli usando el flag -h para especificar el host. El servidor acepta la conexión sin solicitar ninguna contraseña — acceso inmediato al prompt de Redis.
Ejecutamos info para obtener información del servidor. En la sección Keyspace vemos que la base de datos db0 contiene 4 keys. Ya sabemos dónde buscar.
// WEAK AUTHENTICATION — SIN REQUIREPASS
La directiva requirepass no está configurada en este servidor, lo que permite conectarse sin credenciales. Combinado con la exposición del puerto 6379 a la red, cualquier atacante con acceso a la red puede leer, modificar o borrar todos los datos almacenados en Redis.
Seleccionamos la base de datos 0 con select 0 y listamos todas las keys con keys *. El servidor devuelve cuatro entradas: stor, flag, temp y numb. El objetivo es evidente.
// 03
Flag
Recuperamos el valor de la key flag con el comando get. Redis devuelve el hash directamente como string. Máquina completada.
// FLAG
03e1d2b376c37ab3f5319922053953eb — Acceso directo a Redis sin autenticación. Completada en 5 pasos: nmap → redis-cli → info → select 0 → keys * → get flag.
| VULNERABILIDAD | COMPONENTE | IMPACTO |
|---|---|---|
| Weak Authentication | Redis 5.0.7 · sin requirepass | Acceso completo a todos los datos |
| Default Credentials | Redis · configuración por defecto | Sin contraseña en instalación base |
| Exposición de servicio | Puerto 6379 accesible externamente | Redis accesible desde cualquier host |
// 04
Referencia de Comandos
- -p- — escanea los 65,535 puertos TCP
- -sS — SYN scan sin completar handshake
- -sC — scripts NSE por defecto
- -sV — detección de versión de servicios
- -n — desactiva resolución DNS
- -Pn — omite host discovery previo
- --min-rate — paquetes mínimos por segundo
- -oX — exporta resultado a XML
- -h <host> — dirección del servidor Redis
- -p <port> — puerto (por defecto 6379)
- -a <pass> — contraseña si requirepass está activo
- -n <db> — selecciona base de datos al conectar
- info — información del servidor y keyspace
- select <n> — cambia a la base de datos n (0-15)
- keys * — lista todas las keys de la base de datos activa
- get <key> — obtiene el valor de una key tipo string
- type <key> — devuelve el tipo de dato de la key
- dbsize — número de keys en la base de datos activa
- --output <file> — archivo de salida alternativo
// 05
Glosario
redis.conf. Si no está definida,
el servidor acepta conexiones de cualquier cliente sin verificar credenciales.
Esta es la configuración por defecto en instalaciones base. Desde Redis 6.0
existe también ACL (Access Control Lists) para control de
acceso más granular. En Redeemer, requirepass no está configurado,
permitiendo acceso total sin autenticación.
info keyspace muestra qué bases de datos
contienen datos, cuántas keys tienen y su TTL promedio. Por defecto los clientes
se conectan a la db0. El comando select n permite
cambiar entre bases de datos dentro de una misma conexión. En Redeemer,
db0 tenía 4 keys, una de ellas la flag.
sudo openvpn <archivo.ovpn>, el sistema crea una interfaz
tun0 que enruta el tráfico hacia los servidores de HTB. Sin esta
conexión, las IPs del rango 10.129.x.x no son alcanzables desde
la máquina atacante.