
Windows - Update Session Orchestrator サービスを使用した特権ファイル書き込みの武器化
⚠️ 2020-06-06 更新: このトリックは、Windows 10 Insider Preview の最新ビルドでは動作しなくなりました。つまり、Windows 10 の主流バージョンではまだ動作しますが、数か月以内に修正されることが予想されます。
このPoCは、Windows上で 特権ファイル書き込みの脆弱性 を悪用するために使用できる テクニック を示しています。これは、James Forshaw(別名 @tiraniddo)が見つけたDiagHub DLL読み込みの「エクスプロイト」に代わる手段を提供します。この手法は、Microsoftによってビルド1903以降で修正されました。
Windows 10以降、Microsoftは Update Session Orchestrator サービスを導入しました。通常のユーザーとして、COMを使用してこのサービスと対話し、「更新スキャン」の開始(つまり利用可能な更新があるか確認)や、保留中の更新のダウンロード開始などを行うことができます。この目的のために、usoclient.exe と呼ばれる文書化されていない組み込みツールさえ存在します。
攻撃者の観点から見ると、このサービスは NT AUTHORITY\System として実行され、更新セッションが作成されるたびに、存在しないDLL(windowscoredeviceinfo.dll)を読み込もうとするため興味深いものです。
つまり、Windows またはサードパーティソフトウェアに特権ファイル書き込みの脆弱性を見つけた場合、独自の windowscoredeviceinfo.dll を C:\Windows\System32\ にコピーし、その後USOサービスに読み込ませることで、NT AUTHORITY\System として任意のコードを実行できる可能性があります。
詳細情報:
Part 1 - https://itm4n.github.io/usodllloader-part1/
Part 2 - https://itm4n.github.io/usodllloader-part2/
このソリューションは2つのプロジェクトで構成されています: WindowsCoreDeviceInfo と UsoDllLoader。
QueryDeviceInformation() 関数が呼び出されたときに、ポート1337(localhostのみ)でバインドシェルを起動するPoC DLLを提供します。これはUSOワーカーが使用する関数の名前です。
usoclient.exe の簡略化版です。通常のユーザーとして実行し、USOサービスと対話して windowscoredeviceinfo.dll を読み込ませることができます。その後、バインドシェルへの接続を試みます。エラーが発生した場合は、「既知の問題」セクションを参照してください。
ソリューションは既に設定済みなので、コンパイルは簡単です。Visual Studio 2019 を使用しています。古いバージョンでは動作しない可能性があります。
Release 構成と x64 アーキテクチャを選択します。.\x64\Release\WindowsCoreDeviceInfo.dll とローダー .\x64\Release\UsoDllLoader.exe。テスト目的で、次の手順を実行できます:
WindowsCoreDeviceInfo.dll を C:\Windows\System32\ にコピーします。NT AUTHORITY\SYSTEM としてシェルを取得できます。UsoDllLoader.exe が失敗した場合は、上記を 手動で 実行できます。
WindowsCoreDeviceInfo.dll を C:\Windows\System32\ にコピーします。usoclient StartInteractiveScan を使用します。このコマンドからはフィードバックが得られないことに注意してください。nc.exe 127.0.0.1 1337 を使用してバインドシェルに接続します。この方法は、1つ以上の更新プログラムのインストールが待機中の場合、または更新プログラムがインストール中の場合に失敗する可能性があります。
Windowsのバージョンによっては、UsoDllLoader.exe が さまざまなエラーコードで失敗する 可能性があります。これらの問題についてはあまり調査していません。その理由は、これは利便性のために開発したPoCに過ぎないからです。最も重要なのはDLLであって、ローダーではありません。詳細は「使用方法2」を参照してください。