Skip to main content

Redis | Solyd One | Ataque específicos

  • Redis | Solyd One | Ataque específicos

info

Pentesting Redis: 🔗 Clique aqui


Informações padrões

  • Porta → 6379
  • In-memory Database (redis Redis key-value store)
  • Command-Line → redis-cli
  • Formato da URL
        redis://:<password>@<hostname>:<port>

Comandos

  • Se conectar ao redis
redis-cli -h <hostname> -p <port-number> --user <username> -a <password>

#port number is optional
#username is optional
#password is optional

Recon

  • Detectar o serviço com nmap
nmap -p 6379 target.com
  • Banner Grabbing
nmap -p 6379 -sV target.com

Enumeração

use auxiliary/scanner/redis/redis_server
set rhosts target.com
exploit

Vetores de ataque

Falta de password

redis-cli -h target.com

Credenciais fracas e padrão

redis-cli -h target.com --user <username> -a <password>

# Common credentials to try:
# admin:admin
# administrator:administrator
# root:root
# user:user
# test:test
# redis:redis

Brute force

  • Usando Hydra
hydra [-L users.txt or -l user_name] [-P pass.txt or -p password] -f [-S port] redis://target.com

hydra -P /usr/share/wordlists/seclists/Passwords/Common-Credentials/10k-most-common.txt \
-s 6379 <ip> redis

  • Usando nmap
nmap -p 6379 --script redis-brute target.com
  • Usando metasploit
use auxiliary/scanner/redis/redis_login
msf auxiliary(scanner/redis/redis_login) > set rhosts target.com
msf auxiliary(scanner/redis/redis_login) > set user_file /path/to/user.txt
msf auxiliary(scanner/redis/redis_login) > set pass_file /path/to/pass.txt
msf auxiliary(scanner/redis/redis_login) > set stop_on_success true
msf auxiliary(scanner/redis/redis_login) > exploit

Redis CLI – Cheatsheet e Enumeração

Sintaxe básica

redis-cli -h <alvo> -p <porta>

Exemplo:

redis-cli -h 10.129.5.114 -p 6379

Também é possível executar comandos diretamente sem modo interativo:

redis-cli -h <alvo> <comando>

Testando conectividade

Verifica se o servidor Redis está acessível.

redis-cli -h 10.129.5.114 ping

Retorno esperado:

PONG

Seleção de banco de dados

Redis possui múltiplos bancos numerados, geralmente de 0 a 15.

Selecionar database específico:

redis-cli -h 10.129.5.114 -n <numero_db> DBSIZE

Exemplo:

redis-cli -h 10.129.5.114 -n 0 DBSIZE

Enumeração de chaves

Listar todas as chaves:

redis-cli -h 10.129.5.114 -n 0 KEYS '*'

Contar número de chaves:

redis-cli -h 10.129.5.114 -n 0 DBSIZE

Ver tipo de uma chave:

redis-cli -h 10.129.5.114 -n 0 TYPE <chave>

Recuperando valores

Strings

redis-cli -h 10.129.5.114 -n 0 GET <chave>

Listas

redis-cli -h 10.129.5.114 -n 0 LRANGE <lista> 0 -1

Hashes

redis-cli -h 10.129.5.114 -n 0 HGETALL <hash>

Sets

redis-cli -h 10.129.5.114 -n 0 SMEMBERS <set>

Sorted Sets

redis-cli -h 10.129.5.114 -n 0 ZRANGE <zset> 0 -1

Informações do servidor

Obter informações gerais:

redis-cli -h 10.129.5.114 INFO

Informações específicas:

redis-cli -h 10.129.5.114 INFO server

Listar databases e quantidade de chaves:

redis-cli -h 10.129.5.114 INFO keyspace

Ver comandos disponíveis:

redis-cli -h 10.129.5.114 COMMAND

Configuração do Redis

Ver diretório de armazenamento:

redis-cli -h 10.129.5.114 CONFIG GET dir

Ver nome do arquivo de dump:

redis-cli -h 10.129.5.114 CONFIG GET dbfilename

Alterar diretório:

redis-cli -h 10.129.5.114 CONFIG SET dir /tmp

Alterar nome do dump:

redis-cli -h 10.129.5.114 CONFIG SET dbfilename arquivo.txt

Manipulação de dados

Criar chave:

redis-cli -h 10.129.5.114 SET <chave> "valor"

Salvar dados no disco:

redis-cli -h 10.129.5.114 SAVE

Excluir chave:

redis-cli -h 10.129.5.114 DEL <chave>

Boas práticas em enumeração

  • Sempre verificar conectividade antes de executar comandos complexos.
  • Identificar o tipo de chave antes de tentar extrair dados.
  • Enumerar todos os databases disponíveis.
  • Evitar comandos pesados em ambientes reais.
  • Usar SCAN em ambientes grandes.

Exemplo com SCAN:

redis-cli -h 10.129.5.114 SCAN 0