مع هذه المقالة ، نبدأ سلسلة من المنشورات حول البرامج الضارة المراوغة. برامج القرصنة التي لا تترك أي أثر للهجوم ، والمعروفة أيضًا باسم بلا ملف ("غير مألوف" ، غير مرئي ، بدون ملفات) ، عادةً ما تستخدم PowerShell على أنظمة Windows لتنفيذ الأوامر سرًا للبحث عن محتوى قيم واستخراجه. يعد اكتشاف نشاط المتسلل بدون ملفات ضارة مهمة صعبة. تعمل مضادات الفيروسات والعديد من أنظمة الكشف الأخرى على أساس تحليل التوقيع. لكن الخبر السار هو أن مثل هذه البرامج موجودة بالفعل. على سبيل المثال،
عندما بدأت في التعرف على المخترقين الرائعين ،
بوويرشيل العظيم والرهيب
لقد كتبت عن بعض هذه الأفكار من قبل في
بالإضافة إلى العينات نفسها ، يمكنك أن ترى على الموقع ما تفعله هذه البرامج. يقوم التحليل المختلط بتشغيل البرامج الضارة في وضع الحماية الخاص به ويراقب مكالمات النظام وتشغيل العمليات وأنشطة الشبكة واستخراج السلاسل النصية المشبوهة. للثنائيات والملفات التنفيذية الأخرى ، أي حيث لا يمكنك حتى إلقاء نظرة على الكود الفعلي عالي المستوى ، يقرر التحليل المختلط ما إذا كان البرنامج ضارًا أو مشبوهًا فقط بناءً على نشاط وقت التشغيل. وبعد ذلك ، تم تقييم العينة بالفعل.
في حالة PowerShell ونماذج البرامج النصية الأخرى (Visual Basic و JavaScript وما إلى ذلك) ، تمكنت من رؤية الكود نفسه. على سبيل المثال ، صادفت مثال PowerShell هذا:
يمكنك أيضًا تشغيل PowerShell بتشفير base64 لتجنب الاكتشاف. لاحظ استخدام الخيارين غير التفاعلي والمخفي.
إذا كنت قد قرأت منشورات التشويش الخاصة بي ، فأنت تعلم أن الخيار -e يشير إلى أن المحتوى بترميز base64. بالمناسبة ، يساعد التحليل الهجين أيضًا في فك تشفير كل شيء. إذا كنت تريد محاولة فك تشفير base64 PowerShell (المشار إليه فيما بعد - PS) بنفسك ، فأنت بحاجة إلى تشغيل هذا الأمر:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
الخوض أعمق
لقد قمت بفك تشفير برنامج PS الخاص بنا باستخدام هذه الطريقة ، فيما يلي نص البرنامج ، على الرغم من تعديله قليلاً من قبلي:
لاحظ أنه تم تعيين النص البرمجي على 4 سبتمبر 2017 وتم تمرير ملفات تعريف الارتباط للجلسة.
لقد كتبت عن هذا النمط من الهجوم في
ما هو؟
بالنسبة لبرامج الأمان التي تفحص Windows أو سجلات أحداث جدار الحماية ، يمنع ترميز base64 اكتشاف سلسلة نمط النص العادي "WebClient" للحماية من طلب الويب هذا. وبما أنه يتم بعد ذلك تنزيل جميع البرامج الضارة "الشريرة" وتمريرها إلى PowerShell الخاص بنا ، فإن هذا الأسلوب يتيح لنا بالتالي تجنب الاكتشاف تمامًا. في الواقع ، هذا ما اعتقدته في البداية.
اتضح أنه مع تمكين التسجيل المتقدم لـ Windows PowerShell (راجع مقالتي) ، ستتمكن من رؤية السلسلة المحملة في سجل الأحداث. أنا مثل
إضافة المزيد من البرامج النصية
يخفي المتسللون بذكاء هجوم PowerShell في وحدات ماكرو Microsoft Office المكتوبة بلغة Visual Basic ولغات البرمجة النصية الأخرى. الفكرة هي أن الضحية يتلقى رسالة ، على سبيل المثال ، من خدمة التوصيل ، مع تقرير مرفق بتنسيق doc. تفتح هذا المستند ، الذي يحتوي على الماكرو ، وينتهي الأمر بتشغيل PowerShell الضار نفسه.
غالبًا ما يتم إخفاء نصوص Visual Basic نفسها بحيث تتجنب بحرية الفيروسات وبرامج فحص البرامج الضارة الأخرى. انطلاقا من روح ما سبق ، قررت كتمرين لتشفير PowerShell أعلاه في JavaScript. فيما يلي نتائج عملي:
جافا سكريبت المبهمة تخفي PowerShell الخاص بنا. يقوم المتسللون الحقيقيون بذلك مرة أو مرتين.
هذه تقنية أخرى صادفتها على الويب: استخدام Wscript.Shell لتشغيل PowerShell المشفر. بالمناسبة ، جافا سكريبت نفسها
في حالتنا ، يتم تضمين نص JS الضار كملف doc.js. سيعرض Windows عادةً اللاحقة الأولى فقط ، لذا سيظهر كمستند Word للضحية.
يظهر رمز JS فقط في أيقونة التمرير. ليس من المستغرب أن يفتح العديد من الأشخاص هذا المرفق معتقدين أنه مستند Word.
في المثال الخاص بي ، قمت بتعديل PowerShell أعلاه لتنزيل البرنامج النصي من موقع الويب الخاص بي. نص PS الذي تمت إزالته يطبع فقط "Evil Malware". كما ترون ، إنه ليس شريرًا على الإطلاق. بالطبع ، يهتم المتسللون الحقيقيون بالوصول إلى كمبيوتر محمول أو خادم ، على سبيل المثال ، من خلال أمر shell. في المقالة التالية ، سأوضح لك كيفية القيام بذلك باستخدام PowerShell Empire.
آمل أنه بالنسبة للمقال التمهيدي الأول ، لم نتعمق كثيرًا في الموضوع. الآن سوف أتركك تأخذ نفسًا ، وفي المرة القادمة سنبدأ في تحليل أمثلة حقيقية للهجمات باستخدام البرامج الضارة الخالية من الملفات دون مقدمات وتحضير غير ضروريين.
المصدر: www.habr.com