
ماسح ثغرات الويب وأداة استغلال مع أوضاع POC/EXP لثغرات CVE المعروفة عبر تطبيقات الويب مثل Weblogic وShiro وStruts2 وTomcat؛ مع دعم الفحص الجماعي عبر FOFA/Shodan.
Vulmap هي أداة لفحص الثغرات والتحقق منها على تطبيقات الويب، وتتيح استغلال الثغرات. تطبيقات الويب المدعومة حالياً تشمل activemq, flink, shiro, solr, struts2, tomcat, unomi, drupal, elasticsearch, fastjson, jenkins, nexus, weblogic, jboss, spring, thinkphp
تجمع Vulmap بين فحص الثغرات والتحقق منها (استغلال الثغرات)، مما يسهل على المختصين اتخاذ الخطوة التالية فور اكتشاف الثغرة. الأداة تسعى للكفاءة والسرعة
الكفاءة: يتم تطويرها تدريجياً مع إدخال المسح الجماعي، ودمج Fofa و Shodan في المسح الجماعي، مع دعم تعدد المهام وافتراضياً coroutine، لفحص عدد كبير من الأصول بأسرع وقت.
السرعة: يمكن استغلال الثغرة فور اكتشافها، ويمكن إخراج النتائج بتنسيقات متعددة لمسح الأصول الكبيرة.
بدءاً من الإصدار Vulmap 0.8 أصبح من الممكن فحص الثغرات مباشرة من ملف نتائج dismap باستخدام
-f output.txt
يجب أن يكون النظام يحتوي على python3، ويفضل python3.8 أو أحدث
# git أو احصل على الكود المصدري من صفحة release
git clone https://github.com/zhzyker/vulmap.git
# تثبيت اعتمادات python المطلوبة
pip3 install -r requirements.txt
# Linux & MacOS & Windows
python3 vulmap.py -u http://example.com
إعداد Fofa Api و Shodan Api و Ceye
لاستخدام Fofa أو Shodan يجب تعديل معلومات التهيئة في ملف vulmap.py:
# استبدل xxxxxxxxxx ببريد fofa الإلكتروني
globals.set_value("fofa_email", "xxxxxxxxxx")
# استبدل xxxxxxxxxx بمفتاح fofa
globals.set_value("fofa_key", "xxxxxxxxxx")
# استبدل xxxxxxxxxx بمفتاح shodan الخاص بك
globals.set_value("shodan_key", "xxxxxxxxxx")
# استبدل xxxxxxxxxx باسم النطاق الخاص بك
globals.set_value("ceye_domain","xxxxxxxxxx")
# استبدل xxxxxxxxxx برمز ceye الخاص بك
globals.set_value("ceye_token", "xxxxxxxxxx")
يُضاف إخلاء المسؤولية التالي إلى الاتفاقية الأصلية LICENSE. في حال تعارضه مع الاتفاقية الأصلية، يُعتمد إخلاء المسؤولية.
يمنع استخدام هذه الأداة لأغراض تجارية غير مرخصة، ويمنع إعادة تطويرها واستخدامها لأغراض تجارية غير مرخصة.
هذه الأداة موجهة فقط لأنشطة أمنية مشروعة للمؤسسات بعد الحصول على التصريح الكافي. عند استخدام هذه الأداة للفحص، يجب عليك التأكد من أن هذا الإجراء يتوافق مع القوانين المحلية وأنك حصلت على التصريح اللازم.
إذا قمت بأي نشاط غير قانوني أثناء استخدام هذه الأداة، تتحمل المسؤولية الكاملة عن العواقب، ولا نتحمل أي مسؤولية قانونية أو تضامنية.
قبل استخدام هذه الأداة، يرجى قراءة وفهم جميع البنود بعناية. قد تكون بنود التحديد والإخلاء أو غيرها من البنود التي تمس حقوقك الرئيسية مكتوبة بالخط العريض أو تحتها خط لتذكيرك.除非你已充分阅读、完全理解并接受本协议所有条款,否则,请不要使用本工具。استخدامك للأداة أو أي طريقة صريحة أو ضمنية لقبول هذه الاتفاقية يعتبر قبولاً ملزماً بهذه الاتفاقية.
YouTube: https://www.youtube.com/watch?v=g4czwS1Snc4
Bilibili: https://www.bilibili.com/video/BV1Fy4y1v7rd
Gif:
الوسائط الاختيارية:
-h, --help عرض رسالة المساعدة هذه والخروج
-u URL, --url URL عنوان الهدف (مثال: -u "http://example.com")
-f FILE, --file FILE اختيار ملف قائمة أهداف، كل عنوان يجب أن يكون في سطر منفصل (مثال: -f "/home/user/list.txt")
--fofa keyword استخدام واجهة fofa للمسح الجماعي (مثال: --fofa "app=Apache-Shiro")
--shodan keyword استخدام واجهة shodan للمسح الجماعي (مثال: --shodan "Shiro")
-m MODE, --mode MODE الوضع يدعم "poc" و "exp"، يمكن حذف هذا الخيار، الافتراضي هو وضع "poc"
-a APP [APP ...] تحديد تطبيقات الويب (مثال: "weblogic")، إذا لم تحدد يتم التعرف تلقائياً
-c CMD, --cmd CMD تحديد الأمر المراد تنفيذه عن بُعد، الافتراضي هو echo لـ md5 عشوائي
-v VULN, --vuln VULN استغلال الثغرة، يجب تحديد رقم الثغرة (مثال: -v "CVE-2019-2729")
-t NUM, --thread NUM عدد خيوط المسح، الافتراضي 10 خيوط
--dnslog server خادم dnslog (hyuga,dnslog,ceye)، الافتراضي هو التناوب التلقائي
--output-text file إخراج نتائج المسح إلى ملف txt (مثال: "result.txt")
--output-json file إخراج نتائج المسح إلى ملف json (مثال: "result.json")
--proxy-socks SOCKS استخدام وكيل socks (مثال: --proxy-socks 127.0.0.1:1080)
--proxy-http HTTP استخدام وكيل http (مثال: --proxy-http 127.0.0.1:8080)
--user-agent UA السماح بتخصيص User-Agent
--fofa-size SIZE عدد الأصول التي تستدعيها fofa api، الافتراضي 100، يمكن (1-10000)
--delay DELAY وقت التأخير، المدة بين كل إرسال، الافتراضي 0 ثانية
--timeout TIMEOUT وقت المهلة، الافتراضي 5 ثوانٍ
--list عرض قائمة الثغرات المدعومة
--debug في وضع exp يعرض request و responses، في وضع poc يعرض قائمة الثغرات الممسوحة
--check فحص بقاء الهدف (on and off)، الافتراضي on
# اختبار جميع ثغرات poc بدون تحديد -a all، سيتم تفعيل التعرف التلقائي
python3 vulmap.py -u http://example.com
# فحص ما إذا كان الموقع يحتوي على ثغرات struts2
python3 vulmap.py -u http://example.com -a struts2
# استغلال ثغرة CVE-2019-2729 في WebLogic على http://example.com:7001
python3 vulmap.py -u http://example.com:7001 -v CVE-2019-2729
python3 vulmap.py -u http://example.com:7001 -m exp -v CVE-2019-2729
# مسح جماعي للعناوين في ملف list.txt
python3 vulmap.py -f list.txt
# تصدير نتائج المسح إلى result.json
python3 vulmap.py -u http://example.com:7001 --output-json result.json
# استدعاء fofa api للمسح الجماعي
python3 vulmap.py --fofa app=Apache-Shiro