
فحص قائم على الويب لثغرات تصعيد الامتيازات في ويندوز
هذا هو قاعدة الكود للخدمة التي تعمل على: https://patchchecker.com. باختصار، PatchChecker هو تطبيق ويب (يعمل على Flask) يوفر مخرجات مشابهة لتلك التي يقدمها Watson. ومع ذلك، باستخدام PatchChecker، لا يلزم تنفيذ ملف ثنائي على الجهاز الهدف. يتضمن هذا المشروع أيضًا أداة كشط ويب تقوم تلقائيًا بتحديث قاعدة بيانات PatchChecker باستخدام المعلومات الموجودة على مواقع Microsoft، وهذا يوفر حلاً أكثر قابلية للتوسع وأسهل في الاستخدام لمشكلة العثور على الثغرات (CVEs) التي تم تصحيح (أو لم يتم تصحيح) نظام Windows ضدها. بالإضافة إلى ذلك، يمكن إضافة أي CVEs أخرى إلى إدخال جامع البيانات والتحقق منها طالما كان لها إدخال على https://portal.msrc.microsoft.com. يمكنك أيضًا استخدام هذا للحصول على البيانات لتحديث Watson.
يمكن العثور على مزيد من المعلومات حول هذا المشروع هنا.
لاستخدام patchchecker، يمكنك إما الذهاب إلى الموقع المستضاف علنًا هنا على patchchecker.com أو يمكنك استنساخ هذا المستودع باستخدام git، وتثبيت المكتبات المطلوبة، والتأكد من أن ملف patches.db موجود في نفس الدليل الذي يوجد به app.py، ثم تشغيل التطبيق باستخدام python3 ./app.py.
بمجرد بدء التطبيق، يمكنك فتح ملف "index.html" المضمن في متصفح لاستخدام الخدمة فعليًا والحصول على قائمة التصحيحات التي يكون النظام الذي يتم اختباره عرضة لها.




بدلاً من ذلك، يمكنك استخدام أمر curl والقيام بشيء مثل هذا:
الطلب:
ملاحظة: يمكنك استخدام أي فاصل تريده، أنا أستخدم المسافات هنا:
curl 'https://patchchecker.com/checkprivs/' --data-raw 'wmicinfo=KB1231411 KB1231441 KB1234141&build_num=17763'
الرد:
ملاحظة: استخدمت بعض KBs وهمية لذا فهي تظهر أنها عرضة لكل شيء، أي أنني لم أثبت شيئًا
ملاحظة: المخرجات مقتطعة
{
"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 التي تجتاز عدة مواقع Microsoft للحصول على البيانات المطلوبة للثغرات (cves) المحددة في ملف الوسيطة --cve-list.
للحصول على مثال على التنسيق المتوقع، انظر إلى ملف cves.txt داخل دليل samples. بشكل أساسي، إنه ملف مفصول بأسطر بحيث يحتوي كل سطر على التالي CVE-XXXX-XXXX|https://website.com/resource-pertaining-to-CVE,http://second_resource.com فهمت الفكرة. يمكن العثور على مثال على المخرجات الناتجة في ملف patches.db المضمن.
الكود ليس مثاليًا ولكنه يحصل على البيانات ويعمل في الوقت الحالي. كمرجع، مع 9 CVEs، يجب أن يستغرق حوالي 11 دقيقة لإكماله، قد تختلف النتائج (YMMV).
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