العمليات الهجومية - Offensive Operationsمواضيع ومقالات

كيف يقوم الهاكرز بأخفاء الملفات وتخطي الحمايات بأستخدام Alternate Data Stream وشرح نظام الـNTFS

عدت لكم بعد غيبه طويله بـمقال جديد سنتكلم فيه بشكل أساسي عن تكنيك قد يكون قديما لكن كثير من الناس لا تعلمه ويستخدمه الهاكرز وصانعوا البرمجيات الخبيثه لأخفاء الباكدورز والـrootkits الخاصه بهم وهو الـADS أو الـAlternate Data Stream لكن قبل أن نبدأ يجب أن تفهم كيف يعمل نظام الـNTFS.

ما هو نظام الـNTFS ؟

نظام الـNTFS هو نظام للملفات يقوم الويندوز لتخزين الملفات أو للتعامل معها بشكل عام, أذا حاولت في مره أن تقوم بعمل Format لـDrive علي جهازك من خلال نظام الويندوز فا بالتأكيد هذا الكلام حتى الأن ليس بالجديد عليك.

والأن كيف يعمل هذا النظام ؟

داخل هيكل الـNTFS يخزن كل ملف علي هذه الهيئه

<filename>:<stream-name>:<type>

أي أسم الملف ومن ثم أسم الـStream الخاص به (سنتكلم عنه بالتفصيل بعد قليل) وأخيرا نوع الملف.
علي سبيل المثال أذا قمت بعمل ملف نصي وفرضا سميناه thing.txt فشوف يخزن بهذا الشكل :

thing.txt::$DATA

لاحظ أن مكان الستريم فارغ حيث أنه يكون فارغ دوما بشكل أفتراضي والنوع $DATA هو النوع الأفتراضي لجميع الملفات أيضا.
الخدعه هنا أنه يمكن تخزين بيانات داخل الستريم علي هيئه ملف وطالما الستريم دوما فارغ فمن المفترض أنه لن يؤثر علي عمل الملف أليس كذلك ؟ نعم صحيح وعندما تقوم بعمل هذا معناه أنك تكتب في الـAlternate data stream وهذا هو موضوعنا اليوم 😀

لنوضح العمليه قليلا

الستريم ينقسم الي نوعين: النوع الرئيسي وهو الأفتراضي والنوع البديل أو الذي يسمى alternate data stream فعند تعاملك مع أي ملف كل ما تقرأه أو تكتبه يكون داخل الستريم الرئيسي فا كل البرامج تتعامل معاه هو بشكل أفتراضي فعند تعاملك مع ملف أسمه thing.txt مثلا فهذا يساوي بالظبط كتابتك لـthing.txt::$DATA

لاحظ الأن أنه أذا أردت أن تكتب بداخل ستريم بديل لهذا الملف (ولنسميه مثلا secure) فأنت تستطيع أن تكتب بداخل هذا الستريم مباشرا حتى أن لم يكن هناك ستريم بديل بهذا الأسم موجود فبدل أن تكتب أسم الملف العادي فأنت تكتب  thing.txt:secure:$DATA بداخل الأمر الذي تقوم بتنفيذه ولاحظ أيضا أنه أذا كتبت الأسم thing.txt:secure فسيعطيك نفس النتيجه.

مثال: أذا كنت تريد أن تقرأ ما بداخل الملف فا ستستخدم الأمر more أو type وهذا هو العادي

more < thing.txt

لكن أذا أردت أن تقرأ ما بداخل الستريم ستكتب

more < thing.txt:secure

وبنفس الطريقه تستطيع أن تكتب بداخله ومن ثم تقرأ, مثال:

echo test > thing.txt:secure
more < thing.txt:secure

الأن بعد أن أتضحت الفكره كيف نستغلها ؟

أول شئ هل لاحظت في الصوره بالأعلي أن حجم الملف صفر ؟ 😀 ما يعني أن حجم الملف لم يتغير بعد الكتابه في ستريم بديل.
وذلك بسبب أنني كما قلت من قبل التعامل بشكل أفتراضي يكون مع الستريم الرئيسي وهنا لم يحصل أي تغيير في الستريم الرئيسي والطريقه الوحيده لأظهار الستريم هو بأستخدام سويتش /r مع الأمر dir

كما ترى ظهر الملف مرتين مره بشكله وحجمه الأساسي والذي هو صفر ومره بالستريم البديل تحته مع حجمه وأسمه “secure” وبالطبع الستريم البديل لا وجود له داخل الفولدر.

لاحظ أنه تستطيع أن تكتب في ستريم بديل للفولدرات أيضا وهو أفضل لأنه هنا لا يوجد شئ داخل الفولدر أو المجلد يشك به أحد.

كما تري لا يوجد أثر علي الفولدر فقط الستريم البديل الذي سميته secured وكتبت بداخله كلمه hidden.

الأن ننتقل الي الأكشن: كيف نستغل هذا لصالحنا ؟

اولا لنرى ما لدينا حتى الأن:

  1. نستطيع أن نخفي أي بيانات داخل أي ملف أو مجلد داخل الستريم البديل أو بصيغه أعم قليلا “نستطيع أن نحقن داتا داخل أي ملف”
  2. أي داتا يتم حقنها لا تأثر علي التي داخل الملف نفسه وتغير أي منهما لا يؤثر علي الأخر بشئ.
  3. بالطبع حجم الملف لا يتأثر بعد الحقن ولا يوجد شئ يجعل المستخدم يشك بأن أي شئ تغيير أو تم العبث به ما لم يدقق عن طريق الـcmd أو عن طريق برامج خارجيه.

الأن هل تعلم أنك تستطيع أن تجعل الستريم البديل الذي تكتب بداخله هذا عباره عن ملف تكتب بداخله ؟ لنرى النتيجه

وقمت بفتح الستريم البديل من النوتباد أيضا 😀

الأن لنحاول نسخ ملف عادي داخل ستريم بديل لملف أخر علي هيئه ملف

لنقوم بقرائه ملف من داخل الـcmd هناك عده أوامر لعمل هذا لكنني سأستخدم أمر type هذه المره.

الأن ما سنقوم بفعله هو قرائه الملف بأستخدام الأمر type فا الناتج سيظهر في الـoutput للأمر بداخل الـcmd لذلك سأكتب الأوتبوت بداخل الستريم البديل لملف أخر علي هيئه ملف كالتالي :

في السطر الأول قمت بنسخ محتويات ملف الـcmd بداخل ستريم بديل بأسم ملف cmd.exe داخل ملف thing.txt

قبل شرح ما قمت به في السطر الثاني أريدك أن تعلم أن تنفيذ أو تشغيل الملفات التي بداخل ستريم بديل ما لا يتم في العاده بنفس طرق تنفيذ الملفات العاديه وأنما يتم في الغالب عن طريق طرق خاصه وسنتكلم عنها بالتفصيل قليلا بعد قليل.

الأن سريعا ما هو  الأمر WMIC ؟

هو أختصار لـWindows Management Interface Command وكما يقول الأسم هو واجهه أمريه لـWindows Management Interface خاصه بموجه الأوامر ولذلك أنت تستطيع من خلاله جلب المعلومات التي تريدها عن تقريبا أي شئ في الجهاز أو تتعامل مع الـInterfaces المتعدده الخاصه بالويندوز لتنفيذ ما تريد وللقرائه أكثر عن هذا الأمر أقرأ هذا المقال.

فا في السطر الثاني قمت بأستخدام الأمر wmic لعمل بروسيس جديد عباره عن الستريم البديل للملف مما نتج عنه أنني قمت بتشغيل الcmd من داخل الستريم البديل لهذا الملف وبنفس الشكل يمكن أن يطبق نفس الأمر علي أي ملف أخر بالطبع مما يجعلك الأن تستطيع أن تخبئ عدد الملفات الذي تريده داخل الملف الذي تريد دون أن يتأثر حجم الملف ودون أن يشعر صاحب الجهاز وتستطيع تشغيله بتنفيذ أمر علي الجهاز في أي وقت فا أذا كنت مخترق جهازا فهذه الطريقه من الطرق المثاليه التي تمكنك من عمل persist طويل المدى علي جهاز المستخدم فمثلا تقنعه بتشغيل أمر ما أنت تريده ليفعل شيئا ما أنت أقنعته أنه يفعله فا يقوم بتشغيل الباكدور الذي أنت مخبأه في جهازه منذ أسابيع فمثلا:

> type nc.exe > C:\windows\system32\calc.exe:emergency.exe
> start /B C:\windows\system32\calc.exe:emergency.exe -d -L -p 1337 -e cmd.exe

وقد قام الباحث الأمني Matt Nelson المعروف بـenigma بعمل سكربت باورشيل لتثبيت الأتصال بالجهاز المخترق أو persistence عن عمل عده ستريمات بديله في الجهاز لأخفاء الملفات ومن ثم عمل مفتاح في الستارت أب في الريجيستري ليقوم بتشغيله عند تشغيل الجهاز وهذا رابط المقاله الكامله لفهم الطريقه أكثر والسكربت.

الأن لنتكلم قليلا عن تنفيذ الملفات من داخل الستريم البديل

كما قلنا من قبل تنفيذ الملفات التنفيذيه من داخل الستريم البديل غالبا لا يتم بالطريقه العاديه فعلى سبيل المثال الطريقه الأخيره السابق ذكرها التي تستخدم الأمر start لا تعمل علي جميع الأنظمه لكن طريقه الأمر wmic التي سبقته تعمل علي جميع الأنظمه وهكذا فهذا يعتمد ايضا علي الذي تقوم بتشغيله فبعض الناس يقومون بتخبأه ملفات DLL فلذلك يستخدمون RUNDLL32 لتشغيلها وفكره أخرى أن تخزن سكربتات باورشيل أو vbs أو يخزنون ملفات hta (والتي سنتكلم عنها في مقال أخر أذا سنحت الفرصه) ويقومون بتشغيلها بأستخدام mshta.

لذلك قام الباحث الأمني المعروف Oddvar Moe بعمل ليسته تتجدد بأستمرار بها جميع الأوامر التي يكتشف أنه يمكن من خلالها الكتابه بداخل ستريم بديل أو التي تدعمه والأوامر والخدع الأخرى التي تستخدم في تنفيذها ويمكنك رؤيتها من هذا الرابط.

وهذا مقال من MalwareBytes للحمايه من الـADS وكيفيه أكتشافه

وهذا فيديو يشرح بالتفصيل كيف يعمل الـNTFS

الي هنا تنتهي مقالتنا اليوم أرجوا أن تكونوا قد أستفدتم منها ونراكم في المقاله القادمه.

Karim Shoair

كريم, عمري 21 سنه, هاكر أخلاقي ومطور أجيد العديد من اللغات وأكثرهم أستخداما هى البايثون ومهتم بالعديد من المجالات المتعلقه بالحمايه وعلوم الكومبيوتر بشكل عام. لي العديد من الأدوات المعروفه مثل Dr0p1t ,QRLJacker ,Cr3dOv3r , One-Lin3r و PasteJacker فأنا أحب برمجه أدوات أختبار الأختراق وأكتشاف الثغرات الأمنيه بشكل عام وما الى ذلك.

مقالات ذات صلة

‫2 تعليقات

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى