Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
nextcloud-webhook-tokenneeded — Nextcloud 35.0.0 — administrador de Webhooks delegado pode gerar uma senha de aplicativo de administrador de 1h via atualização de webhook tokenNeeded | Kitploit
Ferramentas/GitHubGitHub/abraxas/nextcloud-webhook-tokenneeded
Autenticação e AutorizaçãoEscalada de PrivilégiosGerenciamento de IdentidadesAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de Penetração

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
Labs e Prática
GitHubabraxas/nextcloud-webhook-tokenneeded

nextcloud-webhook-tokenneeded

Nextcloud 35.0.0 — administrador de Webhooks delegado pode gerar uma senha de aplicativo de administrador de 1h via atualização de webhook tokenNeeded

Ver Repositório
11há 15 diasAinda não revisado

Abraxas Labs - nextcloud-webhook-tokenneeded

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  nextcloud-webhook-tokenneeded

nextcloud-webhook-tokenneeded

Nextcloud Server 35.0.0 - Nextcloud GmbH

WebhooksController::create() anula tokenNeeded a menos que o chamador seja um administrador completo da instância. update() não o faz. Um administrador delegado das configurações de Webhooks (que não está em admin) pode armazenar tokenNeeded.user_ids: ["admin"] num webhook existente e, em seguida, receber uma palavra-passe de aplicação PERMANENT_TOKEN sem âmbito, válida por uma hora, para esse uid quando o evento é acionado.

Um ator malicioso a quem apenas foi confiada a gestão de webhooks pode iniciar sessão como admin (ou qualquer utilizador que nomeie) durante uma hora, contornar o 2FA e ler ou sobrescrever os ficheiros dessa pessoa.

IDainda sem CVE
CWECWE-863, CWE-269
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProdutoNextcloud Server
Afetado35.0.0 (da02f41) oficial nextcloud:35.0.0-apache
Autenticaçãoadministrador delegado das configurações de Webhooks (IDelegatedSettings)
LicençaGNU Affero GPL v3.0
Laboratórioapenas 127.0.0.1

O que um atacante pode fazer

Concedeu a alguém a tarefa de configuração de Webhooks. Essa pessoa não está no grupo admin. O Nextcloud ainda permite que edite um webhook existente de modo a que, no próximo evento correspondente, o servidor lhe envie por email um início de sessão de uma hora para qualquer uid que liste, incluindo admin.

Com esse início de sessão, pode:

  • Abrir todos os ficheiros dessa pessoa (não apenas algo que o webhook deveria ver)
  • Descarregar e sobrescrever esses ficheiros
  • Utilizar Files / WebDAV como essa pessoa
  • Contornar o 2FA (isto é uma palavra-passe de aplicação, não um pedido de palavra-passe)

Não precisa de uma shell PHP no host. Não precisa de ser administrador completo da instância. Um estranho na internet sem conta não consegue fazer isto. A falha é o funcionário em quem já confiou os webhooks, a fazer-se passar pelas pessoas em quem não confiou.


Como o encontrei

WebhooksController é #[AuthorizedAdminSetting(settings: Admin::class)]. Admin implementa IDelegatedSettings. É assim que o Nextcloud entrega um painel de configurações a um grupo que não é admin.

tokenNeeded pede ao servidor que anexe tokens de autenticação para uids nomeados quando o webhook é acionado. TokenService::createEphemeralToken emite IToken::PERMANENT_TOKEN com password = null. Palavra-passe de aplicação. 2FA já ultrapassado.

O PR #60543 restringiu a criação: a menos que seja administrador completo da instância, tokenNeeded é anulado. Criei um webhook como utilizador delegado hooker com tokenNeeded.user_ids: ["admin"]. O tokenNeeded armazenado era []. A criação está restringida. Durante um minuto, parece uma correção concluída.

Depois fiz POST do mesmo corpo para /webhooks/{id}. O user_ids armazenado era ['admin']. update() nunca copiou o if.

Fiz PUT de um ficheiro como hooker para que NodeCreatedEvent fosse acionado. O cron executa WebhookCall. O JSON do catcher tem authentication.user_ids.admin.token. Um GET com Bearer do ficheiro testemunha privado do admin devolveu 200, X-User-Id: admin.

Formas de isto falhar sem lhe ensinar nada: update 403 (o controlador já corresponde ao create); create já a emitir tokens (#60543 não está na build); authentication vazio no catcher (o cron não emitiu); caminho do cabeçalho ExApp (o utilizador do laboratório é o delegado hooker).


Laboratório

cd lab
./run.sh

Alvo apenas http://127.0.0.1:18320 (Nextcloud) e :18321 (catcher).

SUCCESS NEXTCLOUD-WEBHOOK-TOKENNEEDED who=delegated-webhook-admin uid=admin NEXTCLOUD-WEBHOOK-TOKENNEEDED-WITNESS
  • lab/docker-compose.yml
  • lab/run.sh
  • lab/hook/Dockerfile

A correção

Copie a anulação isAdmin do create para update(). Até isso ser lançado, não delegue as configurações de Webhooks a grupos que não sejam admin.


Referências

  • github.com/nextcloud/server tag v35.0.0 (da02f41)
  • Correção próxima apenas para o create: nextcloud/server#60543
  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null

Licença

GNU Affero GPL v3.0. Ver LICENSE. Apenas laboratório em loopback. Sem garantia.

Baixar ferramenta