
BlueKeep scanner supporting NLA
BlueKeep (CVE-2019-0708) स्कैनर जो अनप्रमाणित और प्रमाणित दोनों स्थितियों में काम करता है (अर्थात जब नेटवर्क स्तर प्रमाणीकरण (NLA) सक्षम हो)।
आवश्यकताएँ:
यह FreeRDP पर आधारित है और संकलन/निष्पादन को आसान बनाने के लिए Docker का उपयोग करता है। इसे किसी भी UNIX वातावरण पर काम करना चाहिए और इसका परीक्षण मुख्य रूप से Linux/Ubuntu पर किया गया है।
पूर्व-आवश्यकताएँ स्थापित करें:
sudo apt-get install docker.io
bkscan नामक Docker कंटेनर के अंदर कस्टम FreeRDP क्लाइंट बनाएँ:
$ git clone https://github.com/nccgroup/BKScan.git
$ cd BKScan
$ sudo docker build -t bkscan .
[...]
Successfully built f7666aeb3259
Successfully tagged bkscan:latest
अपनी मशीन से bkscan.sh स्क्रिप्ट चलाएँ। यह नव निर्मित bkscan Docker कंटेनर के अंदर कस्टम FreeRDP क्लाइंट को चलाएगा:
$ sudo ./bkscan.sh -h
Usage:
./bkscan.sh -t <target_ip> [-P <target_port>] [-u <user>] [-p <password>] [--debug]
NLA सक्षम और मान्य क्रेडेंशियल वाले एक असुरक्षित Windows 7 के विरुद्ध।
$ sudo ./bkscan.sh -t 192.168.119.141 -u user -p password
[+] Targeting 192.168.119.141:3389...
[+] Using provided credentials, will support NLA
[-] Max sends reached, please wait to be sure...
[!] Target is VULNERABLE!!!
NLA सक्षम और मान्य क्रेडेंशियल वाले Windows 10 (गैर-असुरक्षित) या पैच किए गए Windows 7 के विरुद्ध:
$ sudo ./bkscan.sh -t 192.168.119.133 -u user -p password
[+] Targeting 192.168.119.133:3389...
[+] Using provided credentials, will support NLA
[-] Max sends reached, please wait to be sure...
[*] Target appears patched.
एक Windows 7 (असुरक्षित या पैच किया हुआ) जिसमें NLA सक्षम है, लेकिन हम उसे NLA समर्थन के बिना क्लाइंट से स्कैन कर रहे हैं:
$ sudo ./bkscan.sh -t 192.168.119.141
[+] Targeting 192.168.119.141:3389...
[+] No credential provided, won't support NLA
[-] Connection reset by peer, NLA likely to be enabled. Detection failed.
NLA सक्षम और मान्य क्रेडेंशियल वाले Windows 7 (असुरक्षित या पैच किया हुआ) के विरुद्ध, लेकिन उपयोगकर्ता "Remote Desktop Users" समूह का हिस्सा नहीं है:
$ sudo ./bkscan.sh -t 192.168.119.141 -u test -p password
[+] Targeting 192.168.119.141:3389...
[+] Using provided credentials, will support NLA
[-] NLA enabled, credentials are valid but user has insufficient privileges. Detection failed.
NLA सक्षम और अमान्य क्रेडेंशियल वाले Windows 7 (असुरक्षित या पैच किया हुआ) के विरुद्ध:
$ sudo ./bkscan.sh -t 192.168.119.141 -u user -p badpassword
[+] Targeting 192.168.119.141:3389...
[+] Using provided credentials, will support NLA
[-] NLA enabled and access denied. Detection failed.
NLA सक्षम और अमान्य क्रेडेंशियल वाले Windows 10 (गैर-असुरक्षित) के विरुद्ध:
$ sudo ./bkscan.sh -t 192.168.119.133 -u user -p badpassword
[+] Targeting 192.168.119.133:3389...
[+] Using provided credentials, will support NLA
[-] NLA enabled and logon failure. Detection failed.
नोट: Windows 7 और Windows 10 के बीच आउटपुट में अंतर संभवतः Windows CredSSP संस्करणों के कारण है और आपका आउटपुट भिन्न हो सकता है।
एक असुरक्षित Windows XP (बिना NLA समर्थन) के विरुद्ध:
$ sudo ./bkscan.sh -t 192.168.119.137
[+] Targeting 192.168.119.137:3389...
[+] No credential provided, won't support NLA
[-] Max sends reached, please wait to be sure...
[!] Target is VULNERABLE!!!
RDP अक्षम या अवरुद्ध पोर्ट वाले Windows 7 के विरुद्ध:
$ sudo ./bkscan.sh -t 192.168.119.142
[+] Targeting 192.168.119.142:3389...
[+] No credential provided, won't support NLA
[-] Can't connect properly, check IP address and port.
@JaGoTu और @zerosum0x0 को उनका Unauthenticated CVE-2019-0708 "BlueKeep" स्कैनर जारी करने के लिए विशेष धन्यवाद, यहाँ देखें। इस रिपॉजिटरी में BKScan स्कैनर उनके स्कैनर के समान काम करता है, लेकिन NLA का समर्थन करने के लिए इसे FreeRDP पर पोर्ट किया गया है।
Docker में FreeRDP चलाने के लिए स्क्रिप्ट जारी करने हेतु mi2428 को धन्यवाद, यहाँ देखें।
साथ ही योगदान देने वाले निम्नलिखित लोगों को धन्यवाद:
यदि आपको BlueKeep स्कैनर में कोई समस्या है, तो कृपया इस github रिपॉजिटरी पर ./bkscan.sh --debug का उपयोग करके विस्तृत आउटपुट के साथ एक issue बनाएँ।
Linux के कुछ हालिया संस्करण (जैसे Ubuntu 18.04 या Kali 2019.2 Rolling) $DISPLAY और $XAUTHORITY पर्यावरण चरों के साथ ठीक से काम नहीं करते।
$ sudo ./bkscan.sh -t 192.168.119.137
[+] Targeting 192.168.119.137:3389...
[+] No credential provided, won't support NLA
[07:58:35:866] [1:1] [ERROR][com.freerdp.client.x11] - failed to open display: :0
[07:58:35:866] [1:1] [ERROR][com.freerdp.client.x11] - Please check that the $DISPLAY environment variable is properly set.
यह Ubuntu 18.04 की नई स्थापना पर ठीक काम करता है, लेकिन उस स्थापना पर नहीं जिसका मैं कुछ समय से उपयोग कर रहा हूँ, इसलिए मैं किसी अद्यतन X11-संबंधित पैकेज या कॉन्फ़िगरेशन को दोष दे रहा हूँ।
docker-org इसका दस्तावेजीकरण करता है और एक समाधान प्रस्तावित करता है, लेकिन मैं इसे स्वयं कार्यशील नहीं कर पाया हूँ। इसलिए मुझे यकीन नहीं है कि वे उसी समस्या का वर्णन कर रहे हैं। यदि आपको शुरुआत में यह समस्या है और आप इसे ठीक कर पाते हैं, तो कृपया PR करने में संकोच न करें।