
Ivanti Secure Access(旧称 Pulse Secure)の権限昇格 Cobalt Strike BOF(CVE-2023-35080)。
Ivanti Secure Access(旧 Pulse Secure)の特権昇格 Cobalt Strike BOF(CVE-2023-35080)。
エクスプロイト作成: Alex、BOF 作成: Tijme。実現に協力: Northwave Cyber Security
これは、Cobalt Strike(CS)Beacon Object File(BOF)と実行ファイルであり、Ivanti Secure Access(旧 Pulse Secure)VPN クライアント(CVE-2023-35080)を悪用するものです。低権限ユーザーモードから、カーネルドライバーの脆弱性を悪用して、ビーコンプロセスのトークン特権をシステムプロセスのトークン特権で上書きします。カーネルドライバーのシンボリックリンクには、Everyone がハンドルを開くことができるという ACL が定義されています。この脆弱性の発見に至った研究は、RedTreat 2023 および BSIDES London 2023 で発表されました(プレゼンテーション)。
本エクスプロイトは Windows 10 Pro 22H2 10.0.19045 (x64) 上で開発されました。その後、Windows 11 Pro 23H2 22631 (x64) で動作するように修正およびテストされました。他の Windows バージョンでは、そのままではサポートされない可能性があります。動作確認済みのサポート対象 Windows の一覧:
まず、このリポジトリをクローンしてください。次に、コードを確認し、ソースからコンパイルして(MinGW が必要)、Cobalt Strike またはスタンドアロン PE ファイルとして使用します。
make
重要! 以下の手順を順番に実行してください(低権限ユーザーモードから):
まず、脆弱なドライバーが実行されていることを確認してください。実行されていなくても心配はいりません! 低権限ユーザーモードから起動できます。ドライバー名は jnprTdi_ で始まり、HKLM\SYSTEM\CurrentControlSet\Services にあります。VPN クライアントのインストール時には常にインストールされますが、デフォルトでは実行されません。
脆弱なドライバーは、被害マシンの(低権限)ユーザーが TDI フェイルオーバーオプションを有効にした(不正な)VPN サーバーに接続したときに起動します。私たちはすでにシステムを侵害し、その上でマルウェアを実行しているため、その動作を再現することで、ドライバーを自分たちで簡単に起動できます。このガイドに従って、TDI フェイルオーバーを有効にした独自の不正アプライアンスを構成してください。
"%programfiles(x86)%\Common Files\Pulse Secure\Integration\pulselauncher.exe" -stop
ドライバーが実行され、VPN クライアントが停止している場合は、Cobalt Strike のスクリプトマネージャーを使用して PulsePrivEsc.cna スクリプトを読み込みます。次に、以下のコマンドを使用してエクスプロイトを実行します。
$ pulse_priv_esc
あるいは(テスト目的で)、コンパイル済みの実行ファイルを直接実行することもできます。これにより、SYSTEM としてコマンドプロンプトが起動します。
$ .\PulsePrivEsc.x64.exe
問題や新機能の要望は、イシュートラッカーから報告できます。新しいものを送信する前に、あなたの問題や機能要望が他の誰かによってまだ報告されていないことを確認してください。
Copyright (c) 2023 Northwave Cyber Security. All rights reserved.