Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
rdpscan — CVE-2019-0708 "BlueKeep" कमजोरी के लिए एक त्वरित स्कैनर। | Kitploit
उपकरण/GitHubGitHub/robertdavidgraham/rdpscan
भेद्यता स्कैनरशोषणनेटवर्क सुरक्षा
GitHubrobertdavidgraham/rdpscan

rdpscan

CVE-2019-0708 "BlueKeep" कमजोरी के लिए एक त्वरित स्कैनर।

रिपॉजिटरी देखें
9212377 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Windows download macOS download Linux download Follow Build

rdpscan CVE-2019-0708 (ब्लूकीप) कमजोरी के लिए

यह माइक्रोसॉफ्ट रिमोट डेस्कटॉप में CVE-2019-0708 कमजोरी के लिए एक जल्दबाजी में बनाया गया स्कैनर है। अभी, सार्वजनिक इंटरनेट पर लगभग 900,000 मशीनें इस कमजोरी के प्रति संवेदनशील हैं, इसलिए उम्मीद है कि जल्द ही WannaCry और notPetya जैसा एक वर्म आएगा। इसलिए, अपने नेटवर्क को स्कैन करें और संवेदनशील सिस्टम पर पैच लगाएं (या कम से कम, NLA सक्षम करें)।

यह एक कमांड-लाइन उपकरण है। आप स्रोत डाउनलोड करके इसे स्वयं संकलित कर सकते हैं, या ऊपर दिए गए लिंक से विंडोज या macOS के लिए पूर्व-संकलित बाइनरी डाउनलोड कर सकते हैं।

यह उपकरण पूरी तरह से rdesktop पैच पर आधारित है https://github.com/zerosum0x0/CVE-2019-0708। मैंने कोड को केवल इतना छोटा किया है कि मैं इसे आसानी से macOS और Windows पर संकलित कर सकूं, साथ ही एकाधिक लक्ष्यों को स्कैन करने की क्षमता जोड़ी है।

स्थिति

यह केवल कुछ दिन पुराना और प्रयोगात्मक है। हालाँकि, मैं पूरे इंटरनेट को स्कैन करके इसका परीक्षण कर रहा हूँ (masscan की सहायता से), इसलिए मैं बहुत सी समस्याओं से जल्दी निपट रहा हूँ। आप मुझसे ट्विटर (@erratarob) पर संपर्क कर सकते हैं।

  • 2019-05-38 - बेहतर आउटपुट परिणाम विवरण, साथ ही उनके अर्थ का दस्तावेज़ीकरण (नीचे देखें)।
  • 2019-05-27 - Windows और macOS बाइनरी जारी की गईं (ऊपर बैज पर क्लिक करें)।
  • 2019-05-26 - विंडोज नेटवर्किंग समस्याओं को ठीक करना
  • 2019-05-25 - Linux और macOS ठीक काम कर रहे हैं, Windows में कुछ नेटवर्क त्रुटियाँ हैं
  • 2019-05-24 - Linux और macOS पर काम करता है, Windows में कुछ संकलन बग हैं
  • 2019-05-23 - वर्तमान में XCode के अंतर्गत macOS पर काम कर रहा हूँ

प्राथमिक उपयोग

किसी नेटवर्क को स्कैन करने के लिए, इसे इस प्रकार चलाएँ:

root@kitploit:~
rdpscan 192.168.1.1-192.168.1.255

यह प्रत्येक पते के लिए 3 परिणामों में से एक उत्पन्न करता है:

  • SAFE - यदि लक्ष्य पैच होने या कम से कम CredSSP/NLA की आवश्यकता होने पर निर्धारित होता है
  • VULNERABLE - यदि लक्ष्य की कमजोरी की पुष्टि हो गई है
  • UNKNOWN - यदि लक्ष्य प्रतिक्रिया नहीं देता है या कोई प्रोटोकॉल विफलता है

जब लक्ष्य IP पते पर कुछ भी मौजूद नहीं होता है, पुराने संस्करण "UNKNOWN - connection timed out" संदेश प्रिंट करते थे। बड़े नेटवर्क को स्कैन करते समय, यह उन सिस्टमों के बारे में बहुत अधिक जानकारी उत्पन्न करता है जिनकी आपको परवाह नहीं है। इसलिए, नया संस्करण डिफ़ॉल्ट रूप से यह जानकारी नहीं देता है जब तक कि आप कमांड-लाइन पर -v (वर्बोज़) नहीं जोड़ते।

आप कार्यकर्ताओं की संख्या बढ़ाकर बड़े नेटवर्क को स्कैन करने की गति बढ़ा सकते हैं:

root@kitploit:~
rdpscan --workers 10000 10.0.0.0/8

हालाँकि, मेरे कंप्यूटर पर, यह सिस्टम सीमाओं के कारण, इस पैरामीटर को कितना भी उच्च कॉन्फ़िगर करूँ, केवल लगभग 1500 वर्कर ही उत्पन्न करता है।

आप इसे masscan के साथ संयोजन में उपयोग करके और भी गति बढ़ा सकते हैं, जैसा कि नीचे दूसरे में वर्णित है।

परिणामों की व्याख्या

तीन सामान्य प्रतिक्रियाएँ हैं:

  • SAFE - जिसका अर्थ है कि लक्ष्य शायद पैच किया गया है या अन्यथा बग के लिए संवेदनशील नहीं है।
  • VULNERABLE: जिसका अर्थ है कि हमने पुष्टि की है कि लक्ष्य इस बग के लिए संवेदनशील है, और जब वर्म हमला करेगा, तो संभवतः संक्रमित हो जाएगा।
  • UNKNOWN: इसका अर्थ है कि हम किसी भी तरह से पुष्टि नहीं कर सकते, आमतौर पर क्योंकि लक्ष्य प्रतिक्रिया नहीं देता है या RDP नहीं चला रहा है, जो कि अधिकांश प्रतिक्रियाएँ हैं। इसके अलावा, जब लक्ष्य संसाधनों से बाहर होते हैं या नेटवर्क समस्याओं का सामना कर रहे होते हैं, तब भी हमें इनमें से बहुत कुछ मिलता है। अंत में, प्रोटोकॉल त्रुटियाँ भी बहुत सारी जिम्मेदार हैं। जबकि तीन मुख्य प्रतिक्रियाएँ SAFE, VULNERABLE और UNKNOWN हैं, उनमें निदान की व्याख्या करने वाला अतिरिक्त पाठ होता है। यह खंड उन विभिन्न स्ट्रिंग्स का वर्णन करता है जो आप देखेंगे।

SAFE

हमारे विचार में तीन मुख्य कारण हैं कि लक्ष्य सुरक्षित है:

  • SAFE - Target appears patched यह तब होता है जब लक्ष्य ट्रिगरिंग अनुरोध का जवाब नहीं देता है। इसका मतलब है कि यह एक विंडोज सिस्टम है जिसे पैच किया गया है, या एक ऐसा सिस्टम है जो शुरू से ही संवेदनशील नहीं था, जैसे Windows 10 या Unix।
  • SAFE - CredSSP/NLA required इसका मतलब है कि RDP कनेक्शन स्थापित होने से पहले लक्ष्य को पहले नेटवर्क स्तर प्रमाणीकरण की आवश्यकता होती है। उपकरण वैध क्रेडेंशियल्स के बिना इस बिंदु को पार नहीं कर सकता है, इसलिए यह निर्धारित नहीं कर सकता कि लक्ष्य को पैच किया गया है या नहीं। हालाँकि, हैकर्स भी संवेदनशील सिस्टमों का शोषण करने के लिए इस बिंदु को पार नहीं कर सकते हैं, इसलिए आप शायद "सुरक्षित" हैं। हालाँकि, जब शोषण सामने आते हैं, तो वैध उपयोगकर्ता नाम/पासवर्ड वाले अंदरूनी लोग सिस्टम का शोषण करने में सक्षम होंगे यदि वह अपैच्ड है।
  • SAFE - not RDP इसका मतलब है कि सिस्टम RDP नहीं है, बल्कि कोई अन्य सेवा है जो इसी पोर्ट का उपयोग करती है, और एक प्रतिक्रिया उत्पन्न करती है जो स्पष्ट रूप से RDP नहीं है। सामान्य उदाहरण HTTP और SSH हैं। ध्यान दें कि एक पहचान योग्य प्रोटोकॉल के बजाय, एक सर्वर RST या FIN पैकेट के साथ प्रतिक्रिया कर सकता है। इन्हें SAFE के बजाय UNKNOWN के रूप में पहचाना जाता है।

VULNERABLE

इसका मतलब है कि हमने पुष्टि की है कि सिस्टम इस बग के लिए संवेदनशील है।

  • VULNERABLE - got appid जब सिस्टम संवेदनशील होता है, तो केवल एक ही प्रतिक्रिया होती है, यही।

UNKNOWN

अज्ञात के लिए अनगिनत विविधताएँ हैं

  • UNKNOWN - no connection - timeout यह अब तक की सबसे आम प्रतिक्रिया है, और तब होती है जब लक्ष्य IP पता कोई प्रतिक्रिया नहीं देता है। वास्तव में, यह इतना सामान्य है कि बड़े पतों की श्रेणियों को स्कैन करते समय इसे आमतौर पर छोड़ दिया जाता है। इसे सक्षम करने के लिए आपको -v (वर्बोज़) फ़्लैग जोड़ना होगा।
  • UNKNOWN - no connection - refused (RST) यह अब तक की दूसरी सबसे आम प्रतिक्रिया है, और तब होती है जब लक्ष्य मौजूद होता है और नेटवर्क ट्रैफ़िक का जवाब देता है, लेकिन RDP नहीं चला रहा है, इसलिए TCP RST पैकेट के साथ कनेक्शन को अस्वीकार कर देता है।
  • UNKNOWN - RDP protocol error - receive timeout यह तीसरी सबसे आम प्रतिक्रिया है, और तब होती है जब हम सफलतापूर्वक एक RDP कनेक्शन स्थापित कर चुके होते हैं, लेकिन फिर सर्वर हमें जवाब देना बंद कर देता है। यह नेटवर्क त्रुटियों और जब लक्ष्य सिस्टम किसी कारण से ओवरलोड होता है, के कारण होता है। यह इस छोर पर नेटवर्क त्रुटियाँ भी हो सकता है, जैसे जब आप एक NAT के पीछे हैं और इसे बहुत अधिक कनेक्शनों से ओवरलोड कर रहे हैं।
  • UNKNOWN - no connection - connection closed इसका मतलब है कि हमने एक कनेक्शन स्थापित किया है (TCP SYN-ACK), लेकिन फिर कनेक्शन तुरंत बंद कर दिया जाता है (RST या FIN के साथ)। ऐसे कई कारण हैं जिनसे ऐसा होता है, जिन्हें हम अलग नहीं कर सकते:
    • यह RDP चला रहा है, लेकिन किसी कारण से कनेक्शन बंद कर देता है, संभवतः क्योंकि यह संसाधनों से बाहर है।
    • यह RDP नहीं है, और हमारे द्वारा भेजे गए RDP अनुरोध को पसंद नहीं करता है, इसलिए हमें एक अच्छा त्रुटि संदेश भेजने के बजाय (जो SAFE - not RDP को ट्रिगर करेगा), यह अचानक कनेक्शन बंद कर देता है।
    • कोई हस्तक्षेप करने वाला उपकरण, जैसे IPS, फ़ायरवॉल या NAT, ने कनेक्शन बंद कर दिया क्योंकि उसने इसे शत्रुतापूर्ण पहचाना, या संसाधन खत्म हो गए।
    • कोई अन्य कारण जिसकी मैंने पहचान नहीं की है, जब मैं इंटरनेट को स्कैन करता हूँ तो बहुत सी अजीब चीजें होती हैं।
  • UNKNOWN - no connection - host unreachable (ICMP error) दूरस्थ नेटवर्क रिपोर्ट करता है कि होस्ट तक नहीं पहुंचा जा सकता या वह चल नहीं रहा है। यदि आपको लगता है कि होस्ट को चालू होना चाहिए, तो बाद में पुनः प्रयास करें।
  • UNKNOWN - no connection - network unreachable (ICMP error) दूर के छोर पर एक (क्षणिक) नेटवर्क त्रुटि है, यदि आपको विश्वास है कि वह नेटवर्क चलना चाहिए, तो बाद में पुनः प्रयास करें।
  • UNKNOWN - RDP protocol error इसका मतलब है कि RDP प्रोटोकॉल में कुछ भ्रष्टाचार हुआ, या तो क्योंकि दूरस्थ पक्ष इसे गलत तरीके से लागू करता है (विंडोज सिस्टम नहीं), या क्योंकि यह एक क्षणिक नेटवर्क त्रुटि को बुरी तरह से संभाल रहा है, या कुछ और।
  • UNKNOWN - SSL protocol error विंडोज विस्टा के बाद से, RDP SSL पर चलने के लिए STARTTLS प्रोटोकॉल का उपयोग करता है। इस परत की अपनी समस्याएँ हैं जैसे ऊपर, जिसमें अंतर्निहित नेटवर्क त्रुटियों को बुरी तरह से संभालना, या उन सिस्टमों के साथ संवाद करने का प्रयास करना शामिल है जिनमें किसी प्रकार की असंगति है। यदि आपको यहाँ बहुत लंबा त्रुटि संदेश मिलता है (जैसे SSL3_GET_RECORD:wrong version), तो इसका कारण यह है कि दूसरे पक्ष में SSL में बग है, या आपके अपने SSL लाइब्रेरी में बग है जिसका आप उपयोग कर रहे हैं।

masscan के साथ उपयोग

यह rdpscan उपकरण काफी धीमा है, प्रति सेकंड केवल कुछ सौ लक्ष्यों को स्कैन करता है। आप इसके बजाय चीजों को गति देने के लिए masscan का उपयोग कर सकते हैं। masscan उपकरण लगभग 1000 गुना तेज है, लेकिन लक्ष्य पर केवल सीमित जानकारी देता है।

चरण हैं:

  • पहले masscan के साथ पता श्रेणियों को स्कैन करें ताकि उन होस्टों को जल्दी से ढूंढा जा सके जो पोर्ट 3389 (या आप जो भी पोर्ट उपयोग करते हैं) पर प्रतिक्रिया देते हैं।
  • दूसरा masscan के आउटपुट को rdpscan में फीड करें, ताकि उसे केवल उन लक्ष्यों को स्कैन करना पड़े जिन्हें हम जानते हैं कि सक्रिय हैं।

इसे चलाने का सरल तरीका उन्हें कमांड-लाइन पर संयोजित करना है:

root@kitploit:~
masscan 10.0.0.0/8 -p3389 | rdpscan --file -

जिस तरह से मैं इसे करता हूँ वह दो चरणों में है:

root@kitploit:~
masscan 10.0.0.0/8 -p3389 > ips.txt
rdpscan --file ips.txt --workers 10000 >results.txt

बिल्डिंग

कठिन हिस्सा OpenSSL लाइब्रेरीज़ को स्थापित करना है, और सिस्टम पर अन्य संस्करणों के साथ संघर्ष न करना है। कुछ उदाहरण Linux के उन संस्करणों के लिए जिन पर मैंने परीक्षण किया है, निम्नलिखित हैं, लेकिन वे एक वितरण से दूसरे में पैकेज नाम बदलते रहते हैं। साथ ही, OpenSSL-संगत API के लिए कई विकल्प हैं, जैसे BoringSSL और LibreSSL।

root@kitploit:~
$ sudo apt install libssl-dev
$ sudo yum install openssl-devel

एक बार जब आप उस समस्या को हल कर लेते हैं, तो आप सभी .c फ़ाइलों को इस तरह एक साथ संकलित करें:

root@kitploit:~
$ gcc *.c -lssl -lcrypto -o rdpscan

मैंने निर्देशिका में एक Makefile रखा है जो ऐसा करता है, इसलिए आप संभवतः केवल यह कर सकते हैं:

root@kitploit:~
$ make

कोड C में लिखा गया है, इसलिए एक C कंपाइलर स्थापित होना चाहिए, जैसे निम्नलिखित करना:

root@kitploit:~
$ sudo apt install build-essential

सामान्य बिल्ड त्रुटियाँ

यह खंड अधिक स्पष्ट बिल्ड त्रुटियों का वर्णन करता है।

root@kitploit:~
ssl.h:24:25: fatal error: openssl/rc4.h: No such file or directory

इसका मतलब है कि आपके पास या तो OpenSSL हेडर स्थापित नहीं हैं, या वे किसी पथ में नहीं हैं। याद रखें कि भले ही आपके पास OpenSSL बाइनरी स्थापित हों, इसका मतलब यह नहीं है कि आपने डेवलपमेंट सामग्री स्थापित की है। आपको हेडर और लाइब्रेरी दोनों स्थापित करने की आवश्यकता है।

डेबियन पर इन चीजों को स्थापित करने के लिए, करें:

root@kitploit:~
$ sudo apt install libssl-dev

पथ समस्या को ठीक करने के लिए, एक संकलन फ़्लैग -I/usr/local/include, या कुछ इसी तरह जोड़ें।

एक लिंकर समस्या का उदाहरण निम्नलिखित है:

root@kitploit:~
Undefined symbols for architecture x86_64:
"_OPENSSL_init_ssl", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_RSA_get0_key", referenced from:
    _rdssl_rkey_get_exp_mod in ssl-d5fdf5.o
"_SSL_CTX_set_options", referenced from:
    _tcp_tls_connect in tcp-fac73c.o
"_X509_get_X509_PUBKEY", referenced from:
    _rdssl_cert_to_rkey in ssl-d5fdf5.o

मुझे यह macOS पर मिलता है क्योंकि OpenSSL के कई संस्करण हैं। मैं इसे पथों को हार्ड-कोड करके ठीक करता हूँ:

root@kitploit:~
$ gcc *.c -lssl -lcrypto -I/usr/local/include -L/usr/local/lib -o rdpscan

दूसरों की टिप्पणियों के अनुसार, यदि आपने होमब्रे के माध्यम से चीजें स्थापित की हैं, तो निम्नलिखित कमांड-लाइन macOS पर काम कर सकती है। फिर भी, मुझे ऊपर लिंकिंग त्रुटियाँ मिलती हैं, क्योंकि मैंने अन्य OpenSSL घटक स्थापित किए हैं जो संघर्ष कर रहे हैं।

root@kitploit:~
gcc $(brew --prefix)/opt/openssl/lib/libssl.a $(brew --prefix)/opt/openssl/lib/libcrypto.a -o rdpscan *.c

चलाना

ऊपर दिया गया खंड प्रोग्राम चलाने के लिए त्वरित प्रारंभ सुझाव देता है। यह खंड अधिक गहन सहायता देता है।

एकल लक्ष्य को स्कैन करने के लिए, बस लक्ष्य का पता पास करें:

root@kitploit:~
./rdpscan 192.168.10.101

आप IPv6 पतों और DNS नामों को पास कर सकते हैं। आप एकाधिक लक्ष्य पास कर सकते हैं। इसका एक उदाहरण होगा:

root@kitploit:~
./rdpscan 192.168.10.101 exchange.example.com 2001:0db8:85a3::1

आप पतों की श्रेणियों को भी स्कैन कर सकते हैं, या तो begin-end IPv4 पतों का उपयोग करके या IPv4 CIDR विनिर्देश। IPv6 श्रेणियाँ समर्थित नहीं हैं क्योंकि वे बहुत बड़ी हैं।

root@kitploit:~
./rdpscan 10.0.0.1-10.0.0.25 192.168.0.0/16

डिफ़ॉल्ट रूप से, यह एक बार में केवल 100 लक्ष्यों को स्कैन करता है। आप --workers पैरामीटर के साथ इस संख्या को बढ़ा सकते हैं। हालाँकि, आप इस पैरामीटर को कितना भी उच्च सेट करें, व्यवहार में आपको एक बार में अधिकतम लगभग 500 से 1500 वर्कर मिलेंगे, जो आपके सिस्टम पर निर्भर करता है।

root@kitploit:~
./rdpscan --workers 1000 10.0.0.0/24

कमांड-लाइन पर लक्ष्य निर्दिष्ट करने के बजाय, आप उन्हें एक फ़ाइल से लोड कर सकते हैं, जिसमें अच्छी तरह से नामित --file पैरामीटर का उपयोग करें:

root@kitploit:~
./rdpscan --file ips.txt

फ़ाइल का प्रारूप प्रति पंक्ति एक पता, नाम या श्रेणी है। यह masscan द्वारा उत्पन्न पाठ का भी उपभोग कर सकता है। अतिरिक्त व्हाइटस्पेस ट्रिम किया जाता है, खाली पंक्तियों को अनदेखा किया जाता है, और किसी भी टिप्पणी पंक्तियों को अनदेखा किया जाता है। एक टिप्पणी # वर्ण, या // वर्णों से शुरू होने वाली पंक्ति है।

आउटपुट stdout पर भेजा जाता है जो VULNERABLE, SAFE या UNKNOWN की स्थिति देता है। प्रत्येक के अतिरिक्त कारण हो सकते हैं। इन कारणों का वर्णन ऊपर किया गया है।

root@kitploit:~
211.101.37.250 - SAFE - CredSSP/NLA required
185.11.124.79 - SAFE - not RDP - SSH response seen
125.121.137.42 - UNKNOWN - no connection - refused (RST)
40.117.191.215 - SAFE - CredSSP/NLA required
121.204.186.182 - SAFE - CredSSP/NLA required
99.8.11.148 - SAFE - CredSSP/NLA required
121.204.186.114 - SAFE - CredSSP/NLA required
49.50.145.236 - SAFE - CredSSP/NLA required
106.12.74.155 - VULNERABLE - got appid
222.84.253.26 - SAFE - CredSSP/NLA required
144.35.133.109 - UNKNOWN - RDP protocol error - receive timeout
199.212.226.196 - UNKNOWN - RDP protocol error - receive timeout
183.134.58.152 - UNKNOWN - no connection - refused (RST)
83.162.246.149 - VULNERABLE - got appid

आप इसे grep और cut जैसे अतिरिक्त यूनिक्स कमांड के साथ संसाधित कर सकते हैं। केवल संवेदनशील मशीनों की सूची प्राप्त करने के लिए:

root@kitploit:~
./rdpscan 10.0.0.0/8 | grep 'VULN' | cut -f1 -d'-'

पैरामीटर -dddd का अर्थ डायग्नोस्टिक जानकारी है, जहाँ जितने अधिक ds जोड़ेंगे, उतने अधिक विवरण मुद्रित होंगे। यह stdout के बजाय stderr पर भेजा जाता है ताकि आप स्ट्रीम को अलग कर सकें। bash का उपयोग करके यह इस प्रकार किया जाता है:

root@kitploit:~
./rdpscan --file myips.txt -ddd 2> diag.txt 1> results.txt

डायग्नोस्टिक जानकारी

-d पैरामीटर जोड़ने से कनेक्शनों पर डायग्नोस्टिक जानकारी stderr पर डंप होती है।

root@kitploit:~
./rdpscan 62.15.34.157 -d

[+] [62.15.34.157]:3389 - connecting...
[+] [62.15.34.157]:3389 - connected from [10.1.10.133]:49211
[+] [62.15.34.157]:3389 - SSL connection
[+] [62.15.34.157]:3389 - version = v4.8
[+] [62.15.34.157]:3389 - Sending MS_T120 check packet
[-] [62.15.34.157]:3389 - Max sends reached, waiting...
62.15.34.157    - SAFE - Target appears patched

macOS/Linux पर, आप सामान्य तरीके से stdout और stderr को अलग-अलग फ़ाइलों में रीडायरेक्ट कर सकते हैं:

root@kitploit:~
./rdpscan --file ips.txt 2> diag.txt 1> results.txt

SOCKS5 और Tor lulz

इसमें SOCKS5 समर्थन शामिल है:

root@kitploit:~
./rdpscan --file ips.txt --socks5 localhost --socks5port 9050

यह कनेक्शन समस्याओं को बदतर बनाता है, इसलिए आपको बहुत अधिक "UNKNOWN" परिणाम मिलते हैं।

OpenSSL को स्थिर रूप से लिंक करना

इस परियोजना से जुड़े रिलीज़ के रूप में Windows और macOS बाइनरी जारी करने के लिए मैं OpenSSL को स्थिर रूप से लिंक करता हूँ, ताकि इसे अलग से शामिल करने की आवश्यकता न हो, और प्रोग्राम बस काम करें। यह खंड इसे करने के तरीके पर कुछ नोट्स का वर्णन करता है, विशेष रूप से जब OpenSSL के अपने पेज पर विवरण पुराना लगता है।

ये दोनों चरण OpenSSL स्रोत को डाउनलोड करने और इसे rdpscan निर्देशिका के बगल में रखने से शुरू होते हैं:

root@kitploit:~
git clone https://github.com/openssl/openssl

Windows

Windows के लिए, आपको पहले Perl का कुछ संस्करण स्थापित करना होगा। मैं ActiveState वाले का उपयोग करता हूँ।

इसके बाद, आपको एक विशेष "असेंबलर" की आवश्यकता होगी। मैं अनुशंसित एक का उपयोग करता हूँ जिसे NASM कहा जाता है।

इसके बाद, आपको एक कंपाइलर की आवश्यकता होगी। मैं VisualStudio 2010 का उपयोग करता हूँ। आप इसके बजाय Microsoft से नवीनतम "Visual Studio Community Edition" (जो 2019 है) डाउनलोड कर सकते हैं।

अब आपको मेकफ़ाइल बनाने की आवश्यकता है। यह OpenSSL निर्देशिका में जाकर और Configure Perl प्रोग्राम चलाकर किया जाता है:

root@kitploit:~
perl Configure VC-WIN32

मैंने Windows के लिए 32-बिट चुना क्योंकि बहुत से पुराने Windows मौजूद हैं, और मैं प्रोग्राम को पुराने संस्करणों के साथ यथासंभव संगत बनाना चाहता हूँ।

मैं पूरी तरह से स्थिर बिल्ड चाहता हूँ, जिसमें C रनटाइम भी शामिल है। ऐसा करने के लिए, मैंने परिणामी मेकफ़ाइल को एक संपादक में खोला, और C संकलन फ़्लैग को /MD (जिसका अर्थ है DLLs का उपयोग) से /MT में बदल दिया। वहाँ रहते हुए, मैंने CPPFLAGS में -D_WIN32_WINNT=0x501 जोड़ा, जो OpenSSL को उन सुविधाओं तक सीमित करता है जो Windows XP और Server 2003 पर काम करती हैं। अन्यथा, यदि आप उन पुराने सिस्टमों पर चलाते हैं तो आपको त्रुटियाँ मिलती हैं कि bcrypt.dll नहीं मिला।

अब आपको यह सुनिश्चित करना होगा कि सब कुछ आपके पथ में है। मैंने nasm.exe को PATH में एक निर्देशिका में कॉपी किया। Visual Studio 2010 के लिए, मैंने कंपाइलर के लिए पथ चर सेट करने के लिए प्रोग्राम vcvars32.bat चलाया।

इस बिंदु पर कमांड-लाइन पर, मैंने टाइप किया:

root@kitploit:~
nmake

यह लाइब्रेरी बनाता है। स्थिर वाले libssl_static.lib और libcrypto_static.lib हैं, जिनका उपयोग मैं rdpscan में लिंक करने के लिए करता हूँ।

macOS

सबसे पहले, आपको एक कंपाइलर स्थापित करने की आवश्यकता है। मैं Apple से डेवलपर टूल का उपयोग करता हूँ, XCode और कंपाइलर स्थापित करता हूँ। मुझे लगता है कि आप इसके बजाय gcc स्थापित करने के लिए Homebrew का उपयोग कर सकते हैं।

फिर OpenSSL के लिए स्रोत निर्देशिका में जाएँ और एक मेकफ़ाइल बनाएँ:

root@kitploit:~
perl Configure darwin64-x86_64-cc

अब बस इसे बनाएँ:

root@kitploit:~
make depend
make

इस बिंदु पर, इसने डायनामिक (.dylib) और स्थिर (.lib) दोनों लाइब्रेरी बनाई हैं। मैंने डायनामिक लाइब्रेरी को हटा दिया ताकि यह डिफ़ॉल्ट रूप से स्थिर वालों को पकड़ ले।

अब rdpscan में, बस macOS मेकफ़ाइल बनाएँ:

root@kitploit:~
make -f Makefile.macos

यह सभी rdpscan स्रोत फ़ाइलों को संकलित करेगा, फिर आपके द्वारा अभी बनाई गई निर्देशिका ../openssl में OpenSSL लाइब्रेरी से लिंक होगा।

इससे एक 3-मेगाबाइट का निष्पादन योग्य बनना चाहिए। यदि इसके बजाय आपको केवल 200-किलोबाइट का निष्पादन योग्य मिला, तो आपने गलती की है और डायनामिक लाइब्रेरी से लिंक किया है।

टूल डाउनलोड करें