New stealthy techniques let hackers gain Windows SYSTEM privileges

セキュリティ研究者は、Windows フィルタリング プラットフォームを悪用してユーザーの権限を昇格させ、Windows の最高の権限レベルである SYSTEM への権限を増やすツールである NoFilter をリリースしました。

このユーティリティは、攻撃者がより高い権限で悪意のあるコードを実行したり、別のユーザーがすでに感染したデバイスにログインしているため被害者のネットワーク上を横方向に移動したりする必要があるエクスプロイト後のシナリオで役立ちます。

アクセストークンの複製

Microsoft は、Windows フィルタリング プラットフォーム (WFP) を「ネットワーク フィルタリング アプリケーションを作成するためのプラットフォームを提供する API とシステム サービスのセット」と定義しています。

開発者は WFP API を使用して、ネットワーク データが宛先に到達する前にフィルタリングまたは変更できるコード、ネットワーク監視ツール、侵入検知システム、またはファイアウォールで見られる機能を作成できます。

サイバーセキュリティ企業 Deep Instinct の研究者は、あまり多くの証拠を残さず、多数のセキュリティ製品に検出されることなく、Windows マシンの特権を昇格する 3 つの新しい攻撃を開発しました。

最初の方法では、WFP を使用してアクセス トークン、つまりスレッドとプロセスのセキュリティ コンテキストでユーザーとそのアクセス許可を識別するコード部分を複製できます。

スレッドが特権タスクを実行すると、関連付けられたトークンに必要なレベルのアクセス権があるかどうかがセキュリティ識別子によって検証されます。

Deep Instinct のセキュリティ研究者である Ron Ben Yizhak 氏は、NtQueryInformationProcess 関数を呼び出すと、プロセスが保持するすべてのトークンを含むハンドル テーブルを取得できると説明しています。

「これらのトークンのハンドルは、別のプロセスが SYSTEM にエスカレーションするために複製できる」と Yizhak 氏は技術ブログ投稿で述べています。

研究者は、 tcpip.sysと呼ばれる Windows オペレーティング システムの重要なドライバーには、ステートフル フィルター処理のための WPF ALE ( Application Layer Enforcement ) カーネル モード レイヤーへのデバイス IO 要求によって呼び出される可能性のあるいくつかの機能があると説明しています。

「デバイス IO リクエストは、WfpAleProcessTokenReference を呼び出すために送信されます。これはサービスのアドレス空間に接続され、SYSTEM に属するサービスのトークンを複製し、ハッシュ テーブルに保存します。」 – Ron Ben Yizhak

NoFilterツールは、この方法で WPF を悪用してトークンを複製し、権限昇格を実現します。

WFPを悪用してアクセストークンを複製する
Windows フィルタリング プラットフォームを悪用してアクセス トークンを複製する
出典: ディープ・インスティンクト

研究者によると、DuplicateHandle の呼び出しを回避することでステルス性が向上し、多くのエンドポイント検出および対応ソリューションは悪意のあるアクションを見逃す可能性が高くなります。

SYSTEM と管理者アクセス トークンの取得

2 番目の手法では、IPSec 接続をトリガーし、印刷スプーラー サービスを悪用して SYSTEM トークンをテーブルに挿入します。

RpcOpenPrinter関数を使用すると、プリンターの -handle を名前で取得します。名前を「127.0.0.1」に変更すると、サービスはローカルホストに接続します。

RPC 呼び出しに続いて、SYSTEM トークンを取得するには、WfpAleQueryTokenById に対する複数のデバイス IO リクエストが必要です。

Print Spooler を悪用して SYSTEM アクセスを取得する
印刷スプーラー経由で SYSTEM アクセス トークンを取得する
出典: ディープ・インスティンクト

Yizhak 氏は、IPSec ポリシーの構成は通常、ネットワーク管理者のような正当な特権ユーザーによって行われる操作であるため、この方法は最初の方法よりもステルスであると述べています。

「また、このポリシーはコミュニケーションを変えるものではありません。どのサービスも影響を受けるはずはなく、ネットワーク アクティビティを監視する EDR ソリューションはローカル ホストへの接続を無視する可能性が高くなります。」

Yizhak の投稿で説明されている 3 番目の手法では、水平方向の移動を目的として、侵害されたシステムにログインしている別のユーザーのトークンを取得できます。

研究者によると、ハッシュテーブルにアクセストークンを追加できれば、ログインユーザーの権限でプロセスを起動できるという。

彼は、ログイン ユーザーとして実行されているリモート プロシージャ コール (RPC) サーバーを探し、スクリプトを実行して、ドメイン管理者として実行され、RPC インターフェイスを公開するプロセスを見つけました。

トークンを取得し、ログインしているユーザーの権限で任意のプロセスを起動するために、研究者は、攻撃的ツールの世界における新しいコンポーネントである OneSyncSvc サービスと SyncController.dll を悪用しました。

検出アドバイス

これら 3 つの手法を Microsoft セキュリティ レスポンス センターに報告した結果、同社はその動作は意図したとおりであると回答したため、ハッカーやペネトレーション テスターはこれら 3 つの手法を採用する可能性があります。これは通常、修正や軽減策がないことを意味します。

ただし、Deep Instinct は他の方法よりもステルスであるにもかかわらず、3 つの攻撃を検出する方法をいくつか提供しており、次のイベントを探すことをお勧めします。

  • 既知のネットワーク構成と一致しない新しい IPSec ポリシーを構成する。
  • IPSec ポリシーがアクティブな間、RPC はスプーラー / OneSyncSvc を呼び出します。
  • WfpAleQueryTokenById への複数の呼び出しを介してトークンの LUID をブルート フォースで取得します。
  • BFE サービス以外のプロセスによるデバイス WfpAle へのデバイス IO リクエスト。

Yizhak氏は今月初めに開催されたハッカーカンファレンス「DEF CON」で3つの新しい手法を発表した。技術的な詳細については、 Deep Instinct の投稿を参照してください。