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-2021-3560-exploit — CVE-2021-3560 — Exploit de escalada de privilégios no Polkit via condição de corrida no D-Bus do accounts-daemon | Kitploit
Ferramentas/GitHubGitHub/jeanback1/cve-2021-3560-exploit
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoRed Teaming
GitHubjeanback1/cve-2021-3560-exploit

CVE-2021-3560-exploit

CVE-2021-3560 — Exploit de escalada de privilégios no Polkit via condição de corrida no D-Bus do accounts-daemon

Ver Repositório
há 2 mesesAinda 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-2021-3560 — Escalação de Privilégios no Polkit

CVE-2021-3560 é uma vulnerabilidade de escalação de privilégio local no Polkit (antigo PolicyKit), o framework de autorização utilizado por ambientes desktop Linux. Um atacante local sem privilégios pode explorar uma condição de corrida na interface D-Bus do accounts-daemon para criar um usuário privilegiado, definir sua senha e, por fim, obter acesso root.


Como Funciona

Contexto: Polkit + accounts-daemon

O accounts-daemon (org.freedesktop.Accounts) é um serviço D-Bus do sistema que gerencia contas de usuário (criação, exclusão, alterações de senha, etc.). Ele expõe métodos como:

MethodAction
CreateUserCria um novo usuário do sistema
SetPasswordDefine a senha do usuário
DeleteUserExclui um usuário

Essas operações exigem autorização. Quando uma chamada D-Bus chega, o Polkit fica entre o chamador e o accounts-daemon:

root@kitploit:~
Caller  →  D-Bus  →  Polkit (authorization check)  →  accounts-daemon (action)

O Polkit decide se o chamador tem permissão e, se sim, encaminha a solicitação ao accounts-daemon para execução.

A Condição de Corrida

A vulnerabilidade é uma corrida TOCTOU (Time Of Check, Time Of Use). Aqui está o ponto-chave:

  1. Uma chamada de método D-Bus é enviada ao accounts-daemon (ex.: CreateUser).
  2. O Polkit a recebe e realiza a verificação de autorização — frequentemente dependendo de um diálogo do agente polkit que expira, retornando uma resposta "não autorizado". No entanto, devido a um bug, o tratamento de timeout/erro no polkit trata incorretamente certas condições de erro como sucesso ou deixa o processamento no lado do daemon em um estado parcialmente autorizado.
  3. Se a chamada D-Bus for encerrada no momento exato — depois que a decisão de autorização do Polkit é tomada, mas antes de o accounts-daemon terminar o processamento — a criação do usuário é concluída sem autenticação adequada, mas o registro do usuário acaba incompleto (ex.: sem senha, sem diretório pessoal).
  4. O atacante pode então usar a mesma corrida para chamar SetPassword no usuário recém-criado (mas não autenticado), ou o próprio estado incompleto concede privilégios elevados.

Em resumo: encerre a solicitação no momento certo e você contorna a autenticação.

O que o Exploit Faz

Este script exploit.sh automatiza toda a cadeia de ataque:


Uso

root@kitploit:~
# Clone the repository
git clone https://github.com/Jeanback1/CVE-2021-3560.git
cd CVE-2021-3560

# Make the exploit executable
chmod +x exploit.sh

# Run it
./exploit.sh

Quando o exploit terminar, você terá um shell root:

root@kitploit:~
whoami
# root

Exemplo de saída

Execução do exploit


Versões Afetadas

ComponenteAfetado
polkit≤ 0.119 (sem patch)
accounts-daemon (accountsservice)Todas as versões que usam polkit afetado

A vulnerabilidade foi corrigida no polkit 0.120 e posteriores.

Distribuições corrigidas (não exaustivo):

  • Ubuntu 20.04+ (com atualizações de segurança após junho de 2021)
  • Debian 11+ (com atualizações de segurança)
  • RHEL 8+ / CentOS 8+ (com errata)
  • Fedora 34+

Aviso Legal

Este repositório é apenas para fins educacionais e pesquisa de segurança autorizada. Não utilize este exploit em sistemas que você não possui ou para os quais não tem permissão explícita para testar. O autor não se responsabiliza por uso indevido.

Baixar ferramenta
StepAction
1. Calibração de tempoUsa uma chamada fictícia CreateUser("nobody") para medir quanto tempo leva o round-trip D-Bus, calculando a "janela de encerramento"
2. Criação do usuárioEnvia uma chamada CreateUser para um nome de usuário escolhido, inicia-a em segundo plano, aguarda a janela calculada e a encerra — explorando a corrida para criar um usuário não autorizado
3. Definição da senhaQuando o usuário existe (em estado incompleto), envia uma chamada SetPassword com a mesma técnica de corrida para atribuir uma senha conhecida
4. Escalação de privilégioUsa su para alternar para o novo usuário, executa sudo (que funciona porque o usuário foi criado por um caminho de autorização contornado), copia /bin/bash para /var/tmp/bash com SUID root e abre um shell root