Redeemer
Explora la enumeración y explotación de un servidor de base de datos Redis, al tiempo que muestra la utilidad de línea de comandos redis-cli y los comandos básicos para interactuar con el servicio Redis.

Enumeration
Escaneamos con nmap todos los puertos para ver cuáles están abiertos y qué servicios corren en ellos.
sudo nmap -p- -sS --min-rate 5000 -Pn -n -vv -oA nmap/allports 10.129.195.241
PORT STATE SERVICE REASON
6379/tcp open redis syn-ack ttl 63
Escaneamos el puerto abierto encontrado para ver más detalles sobre él.
nmap -p 6379 -sCV -oA nmap/openports 10.129.195.24
PORT STATE SERVICE VERSION
6379/tcp open redis Redis key-value store 5.0.7
Buscamos como interactuar con el servicio redis desde la terminal y encontramos que existe una herramienta valkey-cli una rama de redis que se creó por motivos de cambios en las licencias.
En la documentación podemos ver con qué comandos interactuar con el servicio.
Exploitation
Nos conectamos al servicio usando valkey-cli.
valkey-cli -h 10.129.123.246
El comando help @generic muestra documentación de todos los comandos que pertenecen a la categoría generic entre los que se encuentra KEYS.
KEYS pattern
summary: Returns all key names that match a pattern.
since: 1.0.0
KEYS
(error) ERR wrong number of arguments for 'keys' command
10.129.123.246:6379> KEYS *
1) "temp"
2) "stor"
3) "flag"
4) "numb"
Las keys se usan para apuntar a datos guardados en la memoria RAM. Para obtener esos datos usamos el comando GET. Hay una key flag, vamos a usar el comando GET para obtener su valor.
help GET
GET key
summary: Returns the string value of a key.
since: 1.0.0
group: string
GET flag
"0******************************b"
Flag
0******************************b