Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-37010 — Exploit para o CVE-2024-37010: acesso ao armazenamento externo de outros usuários e movimentação lateral | Kitploit
Ferramentas/GitHubGitHub/sarpantkeltiek/cve-2024-37010
Quebra de SenhasEscalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoMovimento LateralExploração de Aplicações WebExfiltração de DadosColeta de Informações
GitHubsarpantkeltiek/cve-2024-37010

CVE-2024-37010

Exploit para o CVE-2024-37010: acesso ao armazenamento externo de outros usuários e movimentação lateral

Ver Repositório
8há 1 anoAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2024-37010

Exploit para CVE-2024-37010: acesso ao armazenamento externo de outros usuários & movimento lateral:

https://www.cert.ssi.gouv.fr/avis/CERTFR-2024-AVI-0753/

https://owncloud.com/security-advisories/insecure-direct-object-reference-in-external-storage

Introdução

O Owncloud transforma um servidor em uma nuvem para armazenar arquivos, como o Google Drive. Isso permite que empresas, por exemplo, ofereçam uma nuvem para funcionários, sem que ela seja gerenciada por terceiros.

Se os administradores configurarem dessa forma, os usuários também podem conectar armazenamentos externos, como outras nuvens, FTP ou Google Drive, para centralizar arquivos em uma única nuvem e, assim, facilitar a vida dos usuários.

Quando criamos nosso armazenamento externo, podemos atualizar esse formulário para alterar, por exemplo, o campo "Folder name". Quando o formulário é atualizado, uma requisição é enviada com o formulário inteiro em formato JSON. Nesse formulário, o campo 'ID', por ser um inteiro, é o identificador do nosso armazenamento externo, gerado pelo servidor quando criamos o armazenamento.

2. Idor Idor

Vamos imaginar que outro usuário do Owncloud, por exemplo o administrador, também tenha armazenamento externo, com ID "18".

Agora, vamos reexecutar a requisição de atualização do formulário como usuário "normal_user", sem direitos especiais, mas alterar o ID para 18, o armazenamento externo do administrador.

[images/req.png]

  1. Insira o ID do armazenamento do administrador
  2. Defina um nome de armazenamento arbitrário "storage_pwned".
  3. Para garantir, também especificamos um host arbitrário, neste caso um colaborador Burp. Nota importante: alterar o host não é obrigatório. Alterar o host significa quebrar a configuração do armazenamento e o servidor Owncloud não conseguirá mais recuperar arquivos do armazenamento original.

Quando a requisição é enviada, o servidor encontra um erro 404 (4) e nos informa que não encontrou nenhum armazenamento com o ID que especificamos (5).

No entanto, quando nos conectamos à conta de administrador, é isso que vemos:

[pwned_article.png]

O armazenamento do administrador foi atualizado.

  1. O nome do armazenamento foi alterado para "storage_pwned".
  2. O host foi substituído pelo endereço do colaborador.
  3. E o mais importante: o usuário "normal_user" foi adicionado aos usuários autorizados a acessar o armazenamento.

Se fizermos login novamente como "normal_user", podemos ver que agora temos acesso a "storage_pwned", o armazenamento do administrador.

[access.png]

O usuário A conseguiu atualizar o armazenamento do usuário B e recuperar direitos de acesso a ele. Lembramos que o usuário A NÃO deve alterar o host durante a requisição de atualização, para não quebrar a configuração do usuário B e então poder acessar os arquivos deste.

Aqui está o código usado para atualizar o armazenamento externo.

[Pasted image 20241016114714.png]

Primeiramente, podemos ver que não há verificação dos direitos do usuário que acabou de fazer a requisição. O código não verifica se o armazenamento pertence ao usuário que faz a requisição. Isso explica por que "normal_user" conseguiu atualizar o armazenamento do administrador.

Em segundo lugar, podemos ver que em cada atualização, o código adiciona o usuário que acabou de fazer a requisição aos usuários autorizados a se conectar ao armazenamento, explicando assim por que "normal_user" recebeu magicamente acesso ao armazenamento do administrador após a atualização.

Para resumir

Neste exemplo, vimos como foi possível para um usuário obter acesso total ao armazenamento externo de outro usuário e, assim, ter acesso aos seus arquivos pessoais. Isso já torna essa uma vulnerabilidade bastante crítica.

3. Indo ainda mais longe...

Nesta fase, como você pode ver, esse IDOR (Insecure Direct Object Reference) já é uma vulnerabilidade grave. Mas vamos tentar continuar explorando-o para aumentar o impacto que poderia ter.

Para isso, vamos entender o processo de autenticação realizado pelo servidor Owncloud para armazenamento externo, a fim de recuperar arquivos. Para sistemas de autenticação básicos que usam um simples par login/senha, o servidor de nuvem simplesmente

[Pasted image 20241017162909.png]

Agora, vamos imaginar que um atacante consiga atualizar essa configuração alterando o host para um endereço que ele controla. Isso significa que o servidor Owncloud passará a enviar credenciais para esse novo endereço, que é controlado pelo atacante.

[Pasted image 20241017163143.png]

Isso é exatamente o que podemos fazer graças à nossa vulnerabilidade.

Quando repetimos a requisição de atualização especificando o ID do armazenamento de outro usuário, tudo o que precisamos fazer é alterar o host, especificando, por exemplo, nosso colaborador Burp.

[Pasted image 20241017163326.png]

Dessa forma, quando o usuário se reconectar, o servidor Owncloud tentará se autenticar em nosso colaborador, enviando as credenciais do usuário.

[Pasted image 20241017163644.png]

Magicamente, o colaborador recebe a requisição de autenticação do servidor Owncloud com as credenciais codificadas em Base64.

[Pasted image 20241017163945.png]

Acabamos de recuperar as credenciais em texto claro do armazenamento externo do administrador.

Um pequeno extra...

Para autenticação em armazenamento externo, você pode usar suas próprias credenciais do Owncloud para fazer login, se usar a mesma senha, por exemplo. Ao solicitar uma atualização de armazenamento externo, você pode especificar "password::sessioncredentials" no campo "authMechanism".

O servidor Owncloud salvará então nossas credenciais em texto claro na próxima conexão e as transferirá para nosso dispositivo de armazenamento externo para autenticação.

Então você já deve estar imaginando...

Isso significa que um atacante também pode ativar esse mecanismo para o armazenamento externo de outro usuário e, assim, transferir as credenciais em texto claro da sessão Owncloud da vítima para um host que ele controla, como acabamos de fazer.

4. Resumo dos riscos

O CVE-2024-37010 permite, portanto, que um atacante com uma conta em um servidor Owncloud:

  • Obtenha acesso de leitura/gravação aos arquivos no armazenamento externo de outros usuários.
  • Obtenha identificadores em texto claro para dispositivos de armazenamento externo conectados.
    • Faça bounce para armazenamentos externos.
  • Obtenha credenciais não criptografadas de contas Owncloud de usuários com armazenamento externo.
    • Tomada de conta e escalada de privilégios.

Cronologia

  • 03/11/2024 - Vulnerabilidade descoberta
  • 12/03/2024 - Relatório enviado à Owncloud
  • 09/09/2024 - Anúncio público e CVE da Owncloud
Baixar ferramenta