
يوجد هذا المستودع كترسانة سريعة ومرتجلة من الأساليب والسكربتات للالتفاف على التحقق من شهادات SSL/TLS الخاصة بـ .NET في PowerShell والمضي قدمًا في الاختراق!
#Invoke-SelfSignedWebRequest
في مجال InfoSec، يُعد استخدام HTTPS آلية مفيدة للغاية لـ C2 والمناورة داخل مساحة الشبكة المستهدفة. علاوةً على ذلك، تُعد PowerShell أداة إنتاجية مذهلة يمكنها مساعدة المُشغِّل على تحقيق نتائج ديناميكية. والاستنتاج الطبيعي التالي هو الجمع بين قناة C2 (HTTPS) ومولّد التأثيرات (PowerShell). فقط أنشئ شهادة موقّعة ذاتيًا سريعة وستكون الحياة على ما يُرام، أليس كذلك؟ لسوء الحظ، وكما يتضح، فإن Microsoft (وبالامتداد PowerShell) لا تُحب حقًا اتصالات SSL المؤمَّنة بشهادات لا يمكن التحقق منها. وهي تبذل قصارى جهدها لمنع هذه الاتصالات عبر إغراقك بمستويات فظيعة من رسائل الخطأ (ERROR).
هذا المستودع موجود ليكون ترسانة سريعة وغير مصقولة من الأساليب والبرامج النصية للالتفاف على تلك الميزات الموجهة نحو الأمان والمضي قدمًا في الاختراق!
نيّتي هي إضافة أساليب جديدة كلما خطرت ببالي. طلبات السحب (Pull Requests) مرحّب بها!
##الأساليب:
Invoke-SelfSignedWebRequest - يحمّل شهادة SSL الخاصة بـ URI الهدف في مخزن الشهادات المحلي ويغلّف Invoke-WebRequest. يزيل الشهادة عند اكتمال استدعاء WebRequest غير الآمن. اسمه المستعار wget-ss
Disable-CertificateValidation - يعطّل التحقق من صحة شهادة SSL من خلال نقطة نهاية System.Net.ServicePointManager عبر تهيئة ServerCertificateValidationCallback يدويًا لإرجاع $true. يسمح لـ (New-Object System.Net.WebClient).DownloadFile() بالاتصال بنطاقات SSL الموقّعة ذاتيًا.
Disable-NetSSLValidation - يهيئ الإعدادات الداخلية لـ .NET لتعطيل التحقق من صحة شهادة SSL عبر useUnsafeHeaderParsing
المؤلف: Matthew Toussain (@0sm0s1z) الترخيص: BSD 3-Clause