
BlueGate एक्सप्लॉइट वैलिडेटर - OpenSSL DTLS का उपयोग करके UDP/3391 पर CVE-2020-0609 और CVE-2020-0610 (BlueGate) के लिए RD गेटवे वैलिडेटर।
Microsoft Remote Desktop Gateway कमजोरियों से जुड़े पैच व्यवहार को दूरस्थ रूप से मान्य करने के लिए एक छोटा केवल-जांच Python उपयोगिता:
ये कमजोरियाँ, जो आमतौर पर BlueGate अनुसंधान से जुड़ी हैं, Microsoft Remote Desktop Gateway (RD Gateway) को प्रभावित करती हैं और संभावित रूप से एक अनधिकृत दूरस्थ हमलावर को बिना पैच वाले सर्वर पर मनमाना कोड निष्पादित करने की अनुमति दे सकती हैं।
यह उपयोगिता रिमोट कोड निष्पादन, सेवा से इनकार, स्थिरता, या पेलोड वितरण को लागू नहीं करती है।
यह एक एकल प्रोटोकॉल-स्तरीय वैलिडेशन अनुरोध करती है और RD Gateway प्रतिक्रिया का मूल्यांकन करती है।
| गुण | विवरण |
|---|
| CVE | CVE-2020-0609, CVE-2020-0610 |
| घटक | Microsoft Remote Desktop Gateway |
| कमजोरी प्रकार | रिमोट कोड निष्पादन |
| प्रमाणीकरण आवश्यक | नहीं |
| उपयोगकर्ता सहभागिता | नहीं |
| हमला वेक्टर | नेटवर्क |
| गंभीरता | गंभीर |
| CVSS v3.1 | 9.8 |
| CVSS वेक्टर | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| प्राथमिक प्रोटोकॉल | RD Gateway UDP परिवहन |
| डिफ़ॉल्ट UDP पोर्ट | 3391/UDP |
| सार्वजनिक नाम | BlueGate |
प्रभावित Windows Server परिवारों में शामिल हैं:
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
Windows Server 2019
जिन सिस्टमों ने Microsoft के जनवरी 2020 सुरक्षा अपडेट या बाद के संचयी अपडेट स्थापित किए हैं, उनमें प्रासंगिक सुधार शामिल होने चाहिए।
एक RD Gateway तैनाती कई संबंधित सेवाओं को उजागर कर सकती है।
उदाहरण के लिए:
Microsoft RD Gateway
|
+------------+------------+
| |
TCP/443 UDP/3391
| |
HTTPS / RDWeb RD Gateway UDP
RPC-over-HTTPS DTLS परिवहन
RDWeb पोर्टल ब्राउज़र के माध्यम से दिखाई दे सकता है:
https://gateway.example/RDWeb/
और RD Gateway कार्यक्षमता TCP/443 के माध्यम से भी उजागर हो सकती है।
हालाँकि, इस BlueGate-शैली वैलिडेटर द्वारा परीक्षण किया गया हमला सतह RD Gateway UDP परिवहन है, जो सामान्यतः सुनता है:
UDP/3391
इसलिए स्कैनर UDP/3391 पर DTLS का उपयोग करता है, TCP/443 पर HTTPS का नहीं।
स्क्रिप्ट को पोर्ट 443 में बदलने का मतलब परीक्षण करना होगा:
UDP/443
जो इसके समान नहीं है:
TCP/443
कमजोरी वैलिडेटर चलाने से पहले, UDP/3391 को Nmap से जांचा जा सकता है:
nmap -Pn -sU -p3391 --reason <TARGET>
उदाहरण:
PORT STATE SERVICE
3391/udp open savant
savant सेवा लेबल केवल Nmap का पोर्ट-नाम मैपिंग है और जरूरी नहीं कि वास्तविक सेवा की पहचान करे।
RD Gateway DTLS सेवा को OpenSSL के साथ अधिक विश्वसनीय रूप से पुष्टि किया जा सकता है।
openssl s_client \
-dtls1 \
-connect <TARGET>:3391 \
-state
openssl s_client \
-dtls1_2 \
-connect <TARGET>:3391 \
-state
एक सफल हैंडशेक पुष्टि करता है कि UDP/3391 पर एक DTLS सेवा प्रतिक्रिया दे रही है।
विशिष्ट सफल आउटपुट में शामिल है:
SSL handshake has read ...
New, SSLv3, Cipher is ...
Protocol: DTLSv1
या:
Protocol: DTLSv1.2
वैलिडेटर:
वैलिडेशन के लिए कोई प्रमाणीकरण क्रेडेंशियल आवश्यक नहीं हैं।
उपयोगिता में जानबूझकर शामिल है:
NO reverse shell
NO command execution
NO exploit payload
NO denial-of-service loop
NO repeated malformed packet transmission
इसके साथ परीक्षण किया गया:
Python 3
OpenSSL कमांड-लाइन क्लाइंट
Linux
OpenSSL सत्यापित करें:
openssl version
Python सत्यापित करें:
python3 --version
कोई Python OpenSSL मॉड्यूल आवश्यक नहीं है क्योंकि स्क्रिप्ट सिस्टम openssl s_client कार्यान्वयन लॉन्च करती है।
यह पुराने BlueGate कार्यान्वयनों द्वारा सामना की गई संगतता समस्याओं से बचाता है जो अप्रचलित Python/OpenSSL API पर निर्भर थे जैसे:
DTLSv1_client_method
मूल स्कैन:
python3 BlueGate.py <TARGET>
उदाहरण:
python3 BlueGate.py 192.0.2.10
डिफ़ॉल्ट गंतव्य है:
UDP/3391
python3 BlueGate.py \
-P 3391 \
192.0.2.10
python3 BlueGate.py \
--dtls 1 \
192.0.2.10
python3 BlueGate.py \
--dtls 1.2 \
192.0.2.10
दोनों का परीक्षण उपयोगी हो सकता है:
python3 BlueGate.py --dtls 1 192.0.2.10
python3 BlueGate.py --dtls 1.2 192.0.2.10
पैच किए गए RD Gateway से उदाहरण परिणाम:
[*] Target: 192.0.2.10:3391/udp
[*] DTLS mode: 1.2
[*] Starting OpenSSL DTLS client...
[+] DTLS handshake completed.
[*] Probe (11 bytes): 0500070000004100010041
[*] Sending one validation packet...
[*] Response length: 16
[*] Response hex: 02000c0000000000ffffffffffff0080
[*] Status: 0x8000ffff
[+] PATCHED SIGNATURE RECEIVED
Server returned 0x8000ffff, which is
the rejection value used by the public
CVE detector to identify a patched host.
वही पैच की गई प्रतिक्रिया DTLS 1.0 पर भी लौटाई जा सकती है:
Response length: 16
Response hex: 02000c0000000000ffffffffffff0080
Status: 0x8000ffff
0x8000ffffएक प्रतिक्रिया जो इसके साथ समाप्त होती है:
0x8000ffff
वह अस्वीकृति मान है जिसका उपयोग सार्वजनिक BlueGate/RD Gateway स्कैनर द्वारा दोषपूर्ण विखंडन स्थिति को अस्वीकृत के रूप में पहचानने के लिए किया जाता है।
इसलिए टूल रिपोर्ट करता है:
PATCHED SIGNATURE RECEIVED
यह मजबूत प्रोटोकॉल-स्तरीय साक्ष्य प्रदान करता है कि CVE-2020-0609/CVE-2020-0610 के लिए परीक्षण की गई विशेष स्थिति ज्ञात सार्वजनिक पहचान तकनीक का उपयोग करके शोषण योग्य नहीं है।
यदि एक 16-बाइट RD Gateway प्रतिक्रिया प्राप्त होती है लेकिन अंतिम DWORD इसके अलावा कुछ और है:
0x8000ffff
टूल रिपोर्ट करता है:
DETECTOR POSITIVE
इसे इस रूप में माना जाना चाहिए:
संभावित रूप से कमजोर
सफल रिमोट कोड निष्पादन के तत्काल प्रमाण के बजाय।
परिणाम को अधिमानतः इसका उपयोग करके पुष्टि की जानी चाहिए:
Windows बिल्ड जानकारी
स्थापित KB जानकारी
Microsoft पैच इन्वेंट्री
क्रेडेंशियल कमजोरी स्कैनिंग
कमजोरी को निश्चित रूप से शोषण योग्य बताने से पहले।
यदि कोई एप्लिकेशन प्रतिक्रिया प्राप्त नहीं होती है:
INCONCLUSIVE
टूल जानबूझकर टाइमआउट को कमजोर के रूप में वर्गीकृत नहीं करता है।
टाइमआउट इसके कारण हो सकता है:
इसलिए:
कोई प्रतिक्रिया != कमजोर
सार्वजनिक BlueGate/RDG पहचान दृष्टिकोण एक असामान्य विखंडन गणना वाले RD Gateway विखंडन पैकेट का उपयोग करता है।
अवधारणात्मक रूप से:
DTLS कनेक्शन
|
v
+-----------------------+
| RD Gateway UDP पार्सर |
+-----------------------+
|
| विखंडन वैलिडेशन पैकेट
v
+-----------------------+
| विखंडन वैलिडेशन |
+-----------------------+
|
+---- पैच किया गया ----> अस्वीकृति
| 0x8000ffff
|
+---- अप्रत्याशित --> जांच की आवश्यकता
इस उपयोगिता द्वारा उपयोग किया जाने वाला वैलिडेशन पैकेट केवल एक बार भेजा जाता है।
यह परियोजना विशेष रूप से इसके लिए है:
केवल उन सिस्टमों का परीक्षण करें जिनके लिए आपके पास स्पष्ट प्राधिकरण है।
लेखक दुरुपयोग, अनधिकृत पहुंच, सेवा व्यवधान, डेटा हानि, या इस सॉफ़्टवेयर के उपयोग या संशोधन से उत्पन्न अन्य परिणामों के लिए कोई जिम्मेदारी नहीं लेता है।
पहचान पद्धति Microsoft RD Gateway कमजोरियों CVE-2020-0609 और CVE-2020-0610 में सार्वजनिक रूप से प्रलेखित अनुसंधान पर आधारित है, जिसमें BlueGate और RD Gateway सुरक्षा अनुसंधान समुदाय द्वारा किया गया कार्य शामिल है।
यह परियोजना मुख्य रूप से अप्रचलित pyOpenSSL DTLS आंतरिक के बजाय सिस्टम OpenSSL DTLS कार्यान्वयन का उपयोग करके वैलिडेशन कार्यप्रवाह को आधुनिक बनाती है।