راح نستخدم مكتبة Dlnvoke واللي فكرتها الاساسية هي نسخ الـ DLLs داخل الذاكرة وتحميل استدعاءات الـ API ديناميكياً بدلا من الاعتماد على استدعائات جاهزة من الـ DLL
مكتبة Dlnvoke
رابط المشروع على GitHub
-
البيئة اللي نشتغل بيها راح تكون ك التالي
Windwos VM مثبت عليه Visual Studio
مفعلين بيه Windows Defender وOpenEDR، ويا مستثني مجلد
الـ Administrator Documents حتى نشتغل بحرية
شلون نعدل على شل كود موجود؟ 🤔
بدلاً من البدء من الصفر، نكدر نعدل على مشروع جاهز لشيل كود لودر باستخدام DInvoke المشروع الأصلي تم تطويره بواسطة Kara-4search
🔗 مشروع Kara-4search على GitHub
رابط المشروع
بعد ما تفتح المشروع داخل Visual Studio، راح تلكي الكود يحتوي على شيل كود هارد كودد (Hardcoded Shellcode)، وكل اللي عليك تبدل الشيل كود الموجود بشيل كود خاص بيك
CH : @SparkSecurity
مكتبة Dlnvoke
رابط المشروع على GitHub
-
البيئة اللي نشتغل بيها راح تكون ك التالي
Windwos VM مثبت عليه Visual Studio
مفعلين بيه Windows Defender وOpenEDR، ويا مستثني مجلد
الـ Administrator Documents حتى نشتغل بحرية
شلون نعدل على شل كود موجود؟ 🤔
بدلاً من البدء من الصفر، نكدر نعدل على مشروع جاهز لشيل كود لودر باستخدام DInvoke المشروع الأصلي تم تطويره بواسطة Kara-4search
🔗 مشروع Kara-4search على GitHub
رابط المشروع
بعد ما تفتح المشروع داخل Visual Studio، راح تلكي الكود يحتوي على شيل كود هارد كودد (Hardcoded Shellcode)، وكل اللي عليك تبدل الشيل كود الموجود بشيل كود خاص بيك
CH : @SparkSecurity
❤4
صناعة البايلود اللي هو Dynamic Shellcode Loader استخدمنا لودر جاهز مبني على DInvoke، وعدلناه حتى يصير يحمل الـ shellcode من فايل بصيغة .bin يكون مخزن على سيرفر ويب
الادوات اللي استخدمتها هي System.net هذا يخليك تستخدم WebClient.DownloadData لتحميل الملف ك بايتس
Invisibility Cloak سوينا Obfuscation (تشفير) للبيلود حتى نتجنب الكشف
🔗 Invisibility Cloak GitHub
تكتيكات التخفي راح تكون ك التالي سمينا المشروع Jinzo عكسنا كل النصوص اللي بالكود حولنا المشروع الى Windows Application حتى ما تظهر نافذة Console كدام بدلنا كل كلمة "DInvoke" بكلمات عشوائية حتى نعقد الكشف
CH : @SparkSecurity
الادوات اللي استخدمتها هي System.net هذا يخليك تستخدم WebClient.DownloadData لتحميل الملف ك بايتس
Invisibility Cloak سوينا Obfuscation (تشفير) للبيلود حتى نتجنب الكشف
🔗 Invisibility Cloak GitHub
تكتيكات التخفي راح تكون ك التالي سمينا المشروع Jinzo عكسنا كل النصوص اللي بالكود حولنا المشروع الى Windows Application حتى ما تظهر نافذة Console كدام بدلنا كل كلمة "DInvoke" بكلمات عشوائية حتى نعقد الكشف
CH : @SparkSecurity
❤4👍1
استخدام Sliver C2
صنعنا Beacon بنظام HTTP يكون هو الأساس بالهجوم ومن خلال تجربتنا، الأفضل تحوله إلى .bin باستخدام Donut لتجنب الكشف
🔗 Donut GitHub
إعدادات Donut استخدمنا -e 3 للتشفير و-b 1 لتجنب Amsi
رفع البيلود
فتحنا سيرفر Python بسيط لاستضافة الـ .bin وتحميله لاحقاً من خلال البيلود
CH : @SparkSecurity
صنعنا Beacon بنظام HTTP يكون هو الأساس بالهجوم ومن خلال تجربتنا، الأفضل تحوله إلى .bin باستخدام Donut لتجنب الكشف
🔗 Donut GitHub
إعدادات Donut استخدمنا -e 3 للتشفير و-b 1 لتجنب Amsi
رفع البيلود
فتحنا سيرفر Python بسيط لاستضافة الـ .bin وتحميله لاحقاً من خلال البيلود
CH : @SparkSecurity
❤3👏2👍1
تنفيذ الهجوم ورفع الصلاحيات
تشغيل البايلود ب اعتبار الجهاز المستخدم شغل الملف وهنا اتصل الـ Beacon بالسيرفر الخاص بينا
تجاوز الـ UAC استخدمنا ملفات BOF
(Beacon Object Files) لتجاوز حماية User Access Control.
🔗 UAC BOF Bonanza GitHub
رفع الصلاحيات بعد ما تجاوزنا الـ UAC، حصلنا على High-Integrity Shell باستخدام طريقة
استخراج الـ Credentials بذكاء تجنبنا الـ Lsass لأن التلاعب بـ Lsass يولد إنذارات خطيرة فبدلاً من ذلك
استخدمنا SharpSAMDump لسحب بيانات الـ SAM.
🔗 SharpSAMDump GitHub
استخدمنا Impacket’s secretsdump.py بـ -skip-sam حتى نقلل الإنذارات ونستخرج بيانات الـ NTDS.dit للحصول على بيانات الشبكة.
مفاتيح Kerberos استخرجنا مفاتيح Kerberos لتوليد TGTs باستخدام أدوات مثل
Rubeus أو GetTGT.py
CH : @SparkSecurity
تشغيل البايلود ب اعتبار الجهاز المستخدم شغل الملف وهنا اتصل الـ Beacon بالسيرفر الخاص بينا
تجاوز الـ UAC استخدمنا ملفات BOF
(Beacon Object Files) لتجاوز حماية User Access Control.
🔗 UAC BOF Bonanza GitHub
رفع الصلاحيات بعد ما تجاوزنا الـ UAC، حصلنا على High-Integrity Shell باستخدام طريقة
CmstpElevatedCOM.
استخراج الـ Credentials بذكاء تجنبنا الـ Lsass لأن التلاعب بـ Lsass يولد إنذارات خطيرة فبدلاً من ذلك
استخدمنا SharpSAMDump لسحب بيانات الـ SAM.
🔗 SharpSAMDump GitHub
استخدمنا Impacket’s secretsdump.py بـ -skip-sam حتى نقلل الإنذارات ونستخرج بيانات الـ NTDS.dit للحصول على بيانات الشبكة.
مفاتيح Kerberos استخرجنا مفاتيح Kerberos لتوليد TGTs باستخدام أدوات مثل
Rubeus أو GetTGT.py
CH : @SparkSecurity
❤3🔥2