😐

[ noØfunny ]

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.

Redeemer

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.

Documentation: CLI

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

Flag

0******************************b