Microsoft SMBv3の脆弱性(CVE-2020-0796)を検証

概要

SMB(Server Message Block)は、ファイル共有やプリンタ共有に利用されるプロトコルです。今回検証する脆弱性は、SMB バージョン3.1.1に含まれるリモートコード実行の脆弱性です。

CVE-2020-0796とは

簡単な説明と影響

SMB Version3.1.1(SMBv3)では、通信データの圧縮機能が追加されています。この圧縮データが処理される際に、値が正しく処理されないことでバッファオーバーフローが発生する、というのがこの脆弱性のざっくりとした説明です。悪用されると、ブルースクリーンエラーやリモートコード実行が引き起こされる可能性があります。

影響を受けるOS

この圧縮機能はWindows10のビルド1903で導入されたので、脆弱性の影響を受けるビルドバージョンは以下の通り1903と1909です。

  • Windows 10 ビルド1903
  • Windows 10 ビルド1909
  • Windows Server ビルド1903
  • Windows Server ビルド1909

検証環境

攻撃用マシン被攻撃用マシン
OSUbuntu18 LTSWIndows 10 Home 64bit 1909
IPアドレス192.168.0.2192.168.0.3

攻撃

ポートスキャン

まず、nmap等を利用してWindowsマシンで445番ポートが空いていることを確認します。

445/TCPが空いており、SMBプロトコルバージョン3.1.1が利用されていることが確認できました。

PoC実行

Githubで公開されているPoCを実行します。(リンク)

圧縮されたリクエストが上手く処理されずバッファオーバーフローが発生し、Windows上でブルースクリーンが表示されました。

対策

Microsoftから修正パッチが公開されています。(リンク)

また、445番ポートのブロックもしくはSMBv3での圧縮の無効化により、脆弱性を回避できます。

以下のPowerShellコマンドでSMBv3の圧縮を無効化できます。(該当のレジストリを手動で書き換えてもOKです。)

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force

まとめ

今のところリモートコード実行のPoCは確認できていませんが、今後この脆弱性を狙った攻撃は増加すると思われます。

使用していないポートを閉じておくのはセキュリティの基本ですが、今回をきっかけにファイアウォールの設定等を見直すことをおすすめします。

参考

Microsoft SMBv3 の脆弱性 (CVE-2020-0796) に関する注意喚起
Build software better, together
GitHub is where people build software. More than 50 million people use GitHub to discover, fork, and contribute to over 100 million projects.
UPDATED: Advisory: New "Wormable" Vulnerability in Microsoft SMBv3 (CVE-2020-0796)
Claroty’s research team will continue to investigate this issue and provide additional detection and mitigation recommendations as needed.

コメント

タイトルとURLをコピーしました