
विंडोज प्रिवेस्क भेद्यताओं के लिए वेब-आधारित जांच
यह https://patchchecker.com पर चलने वाली सेवा के लिए कोड बेस है। संक्षेप में, पैचचेकर एक वेब एप्लिकेशन (फ्लास्क पर चलने वाला) है जो Watson के समान आउटपुट प्रदान करता है। हालांकि, पैचचेकर का उपयोग करके, किसी को लक्ष्य मशीन पर बाइनरी निष्पादित करने की आवश्यकता नहीं है। इस प्रोजेक्ट में एक वेब स्क्रैपर भी शामिल है जो माइक्रोसॉफ्ट साइटों पर मौजूद जानकारी का उपयोग करके पैचचेकर के लिए डेटाबेस को स्वचालित रूप से अपडेट करेगा, यह विंडोज सिस्टम पर पैच किए गए (या नहीं) CVEs को खोजने की समस्या के लिए अधिक स्केलेबल और उपयोग में आसान समाधान की अनुमति देता है। इसके अतिरिक्त, किसी भी अन्य CVEs को डेटा कलेक्टर इनपुट में जोड़ा जा सकता है और जांचा जा सकता है, जब तक उनके पास https://portal.msrc.microsoft.com पर एक प्रविष्टि है। आप इसका उपयोग Watson को अपडेट करने के लिए डेटा प्राप्त करने के लिए भी कर सकते हैं।
इस प्रोजेक्ट के बारे में अधिक जानकारी यहाँ पाई जा सकती है।
पैचचेकर का उपयोग करने के लिए, आप या तो सार्वजनिक रूप से होस्ट की गई वेबसाइट patchchecker.com पर यहाँ जा सकते हैं या आप इस रेपो को git clone कर सकते हैं, आवश्यक लाइब्रेरीज़ इंस्टॉल कर सकते हैं, सुनिश्चित करें कि patches.db app.py के समान निर्देशिका में है और फिर python3 ./app.py के साथ एप्लिकेशन शुरू करें।
एक बार एप्लिकेशन शुरू होने के बाद आप ब्राउज़र में शामिल "index.html" फ़ाइल खोल सकते हैं ताकि वास्तव में सेवा का उपयोग कर सकें और उन पैचों की सूची प्राप्त कर सकें जिनके लिए परीक्षण किया जा रहा सिस्टम असुरक्षित है।




वैकल्पिक रूप से, आप curl कमांड का उपयोग कर सकते हैं और कुछ इस तरह कर सकते हैं:
अनुरोध:
नोट: आप अपनी इच्छानुसार किसी भी delimiter का उपयोग कर सकते हैं, मैं यहाँ spaces का उपयोग कर रहा हूँ:
curl 'https://patchchecker.com/checkprivs/' --data-raw 'wmicinfo=KB1231411 KB1231441 KB1234141&build_num=17763'
प्रतिक्रिया:
नोट: कुछ फर्जी KB का उपयोग किया गया है इसलिए यह सब कुछ के लिए असुरक्षित दिखा रहा है, अर्थात मेरे पास कुछ भी इंस्टॉल नहीं है
नोट: आउटपुट संक्षिप्त है
{
"total_vuln": 9,
"kbs_parsed": [
"KB1231411",
"KB1231441",
"KB1234141"
],
"total_kbs_parsed": 3,
"build": "17763",
"results": [
{
"refs": [
"https://exploit-db.com/exploits/46718",
"https://decoder.cloud/2019/04/29/combinig-luafv-postluafvpostreadwrite-race-condition-pe-with-diaghub-collector-exploit-from-standard-user-to-system/"
],
"name": "CVE-2019-0836",
"vulnerable": true
}
]
}
इस रेपो में कोड स्वयं चलाने के लिए यह न भूलें: python3 -m pip install -r requirements.txt चलाएँ और python3 के साथ चलाएँ। संदर्भ के लिए, मैंने python 3.7.3 का उपयोग किया।
patchdata_collector.py स्क्रिप्ट pyppeteer स्क्रैपर है जो --cve-list arg फ़ाइल में निर्दिष्ट CVEs के लिए वांछित डेटा प्राप्त करने के लिए कई माइक्रोसॉफ्ट साइटों पर पुनरावृति करता है।
अपेक्षित प्रारूप का उदाहरण samples निर्देशिका के अंदर cves.txt फ़ाइल देखें। मूल रूप से यह एक लाइन-सेपरेटेड फ़ाइल है जिसमें प्रत्येक पंक्ति में निम्नलिखित होता है CVE-XXXX-XXXX|https://website.com/resource-pertaining-to-CVE,http://second_resource.com
आप समझ गए होंगे। परिणामी आउटपुट का एक उदाहरण शामिल patches.db फ़ाइल में पाया जा सकता है।
कोड सही नहीं है लेकिन यह डेटा प्राप्त करता है और फिलहाल काम करता है। संदर्भ के रूप में, 9 CVEs के साथ, इसे पूरा होने में लगभग 11 मिनट लगने चाहिए, आपका अनुभव भिन्न हो सकता है।
usage: patchdata_collector.py [-h] --cve-list CVE_LIST [--db DB] [--new-db] [-v]
[-vv] [--no-headless] [--json JSON]
optional arguments:
-h, --help show this help message and exit
--cve-list CVE_LIST line and pipe separated list containing CVEs and
related-URLs with information example: CVE-2020-1048|https://github.com/ionescu007/faxhell,https://github.com/ionescu007/PrintDemon
--db DB sqlite database filename
--new-db erases old database (if exists)
-v set output to debug (verbose)
-vv set output to annoying
--no-headless run browser with headless mode disabled
--json JSON json format output, argument should be json filename
time ./patchdata_collector.py --cve-list cves.txt --db antest.db --new-db चलाने पर निम्नलिखित आउटपुट मिलता है:
2020-06-05 20:38:49.292 | INFO | __main__:main:181 - Loaded 10 CVEs
2020-06-05 20:38:49.430 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-0836
2020-06-05 20:40:27.183 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-1064
2020-06-05 20:41:07.158 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-0841
2020-06-05 20:41:31.675 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-1130
2020-06-05 20:42:58.527 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-1253
2020-06-05 20:43:25.069 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-1315
2020-06-05 20:44:57.974 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-1385
2020-06-05 20:45:22.026 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-1388
2020-06-05 20:46:48.407 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2019-1405
2020-06-05 20:48:07.026 | INFO | __main__:parsekb:33 - Parsing KBs for: CVE-2020-1048
finished
real 11m27.793s
user 1m21.632s
sys 0m14.559s