
أداة كشط لمحركات البحث مكتوبة بلغة Golang تهدف إلى تحديد عمليات نشر ClickOnce المنشورة
أداة صدرت بالتزامن مع عرض Less SmartScreen More Caffeine: ClickOnce (Ab)Use for Trusted Code Execution عرض المؤتمر / منشور المدونة من قِبل 0xthirteen وأنا.
ماسح ويب بلغة Golang يستخدم كلاً من chromedp بالإضافة إلى طلبات HTTP العادية لاستخراج تطبيقات ClickOnce المنشورة من محركات البحث. يتضمن دعمًا لتدوير عنوان IP المصدر عبر AWS API Gateway وتحديد وكيل HTTP لاستكشاف الأخطاء وإصلاحها. محركا البحث Google وSwisscows مدعومان حاليًا لعملية الاستخراج.
يتم التحكم في وظائف ClickonceHunter عبر config.yml. يوجد حاليًا وضعان يمكن للتطبيق العمل بهما:
awsapigateway داخل الإعداداتتشمل القيم ذات الصلة بطلبات محركات البحث في ملف config.yml ما يلي:
تشمل القيم الأخرى ذات الصلة في ملف config.yml ما يلي:
تم تنفيذ استخراج بيانات Swisscows باستخدام بروتوكول Chrome DevTools مع مشروع chromedp. تتضمن عمليات البحث التي تتم على محرك بحث Swisscows فحوصات تكامل شبيهة بـ CSRF، والتي تظهر في شكل ترويسات X-Request-Signature وX-Request-Nonce. لكل طلب dork، يتم استخدام متصفح Chromium بدون واجهة للانتقال إلى الصفحة الرئيسية لـ Swisscows باستخدام الدالة getSwissSecrets()، ويتم إنشاء مستمع حدث باستخدام الدالة listenForSwissSecrets() للتعرف على هذه الترويسات. ثم يتم تعبئة الترويسات في طلب dork الخاص بنا لاجتياز فحص التكامل.
تمت إضافة خيار وكيل HTTP لمساعدة المستخدمين في استكشاف هذه المشكلة إذا/عندما تغيّر محركات البحث المطبقة بالتأكيد تنسيق استجاباتها أو نقاط نهاية API المستخدمة لإجراء الطلبات. طلبات السحب (PRs) مرحب بها!
لم يتم تنفيذ دعم تعدد الخيوط / goroutine لعمليات البحث التي تتم. ولغرض العثور على تطبيقات ClickOnce المنشورة، لم يبدُ ذلك ضروريًا.