
CVE-2021-26700のVS Code npm拡張機能における教育目的のRCEエクスプロイト。悪意のあるpackage.jsonの実行を介してCaldera C2サーバーへのDNSトンネリングを示す。
(注記: このマニュアルはDSNSラボのメンバーのみ有効です。)
これは、Microsoftが開発したVisual Studio Code (VS Code)の拡張機能であるnpmに存在したリモートコード実行(RCE)脆弱性です。この拡張機能は、package.jsonファイルで定義されたnpmスクリプトの実行をサポートすることを目的としていました。
この脆弱性を悪用するために、攻撃者は悪意のあるスクリプトをファイルに隠して自分の公開GitHubリポジトリにアップロードし、npm拡張機能が使用する設定を少し変更する可能性があります。誰かがこのリポジトリをダウンロードして、指定された拡張機能がインストールされたVS Code環境で開き、package.jsonファイルを表示するとすぐに、悪意のあるスクリプトが実行されます。私のシナリオでは、悪意のあるスクリプトはcalc.batというバッチファイルで、deployagent.ps1プログラムを実行します。その後、http://192.168.1.29:8888 上のDSNSラボのCalderaサーバーへのDNSトンネリングを確立します。
このCVEは2021年に発見され、Microsoftチームは後のバージョンで修正しました。そのため、npm拡張機能の古いバージョン([v0.3.13](https://eg2.gallery.vsassets.io/_apis/public/gallery/publisher/eg2/extension/vscode-npm- script/0.3.13/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage))をダウンロードする方法を見つける必要があります。代わりに、便利なようにGitHubに含めました。また、WindowsにVS Codeをインストールするためのスクリプトも含まれています。
Windowsシステム(例:DSNSラボのAPT3)で、次のコマンドを実行してこのリポジトリを取得します。
git clone https://github.com/jason-ntu/CVE-2021-26700.git
(GUIを使用してリポジトリをダウンロードおよび解凍することもできます)。以下の手順は、リポジトリ内(つまりクローンされたCVE-2021-26700ディレクトリ)で実行されることを想定しています。
WindowsにVS Codeをインストールするには、.\install-vscode.bat を実行します。
VS Codeのsettings.jsonに以下の設定を追加して、codeコマンドをVS Codeを開くためのショートカットとして設定します。
必要なバージョンのnpm拡張機能をインストールするには、.\install-extension.bat を実行します。
CVEを悪用するには、VS Codeでリポジトリを開き、package.jsonファイルを表示する必要があります。数秒待つと、http://192.168.1.29:8888 のCalderaから被害者へのDNS接続が確立されます。RCEの完了です!