Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2020-0753-and-CVE-2020-0754 — CVE-2020-0753、CVE-2020-0754、および6つの修正されたWindows DOS脆弱性の解説とPOC | Kitploit
ツール/GitHubGitHub/afang5472/cve-2020-0753-and-cve-2020-0754
特権昇格脆弱性分析エクスプロイト論文と研究学習と教育バイナリエクスプロイト
GitHubafang5472/cve-2020-0753-and-cve-2020-0754

CVE-2020-0753-and-CVE-2020-0754

CVE-2020-0753、CVE-2020-0754、および6つの修正されたWindows DOS脆弱性の解説とPOC

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
14816年前未レビュー

CVE-2020-0753、CVE-2020-0754および修正された6つのWindows DOS脆弱性に関するWriteupとPOC

ファイルシステムの競合状態バグの悪用 - CVE-2020-0753およびCVE-2020-0754の解析

Windows Error Reportingサービスは、先月のPatch Tuesdayで2つの特権昇格(EoP)バグを修正しました。これらの2つのバグにはCVE-2020-0753およびCVE-2020-0754が割り当てられています。両方のバグは、サービスのファイルシステム操作における競合状態のバグを利用しています。しかし、これらの2つのバグは、競合ウィンドウが狭く、ファイルのドロップ場所が不確実であるため、悪用は容易ではありません。ここでは、それらを悪用するための手法を紹介します。

2つの競合バグの根本原因は、私たちのレポートで示されています。実際の原因は予測可能であることが脆弱性であると表現できます。WERサービスが一時ファイルを処理する際、C:\ProgramData\Microsoft\Windows\WER\Tempというファイル位置を操作します。これは認証されたユーザーに対して読み取り/書き込みが有効なディレクトリです。つまり、medium-ILの一般ユーザーは、WERサービスによって作成されたファイルを上書きしたり、それをファイルシステムリンクに変換して、本来触れることができない他のファイルを破損/削除したりすることができます。

安全なファイル操作を維持するために、WERサービスはGetTempFileNameWという標準APIに依存し、それをwersvc.dll->UtilGetTempFileでラップしています。このAPIは、WERサービスが"WER****.tmp"の形式で未使用のランダムなファイル名を生成するのを支援します。

ファイル名のランダム部分は、0000-FFFFの4バイトの16進数で生成されます。ある番号がファイル作成に使用された場合、APIは別のランダムなファイル名を取得します。

この戦略には明らかに欠陥があります。WER0000.tmpからWERFFFE.tmpまでの65535個のファイルを作成した場合、APIはランダムな番号(WERA560.tmpなど)を選び、そのファイル名が存在するかテストします。ファイルが既に存在することを検出すると、WERA560.tmpからWERFFFF.tmpまでテストを続けます。テストが進行する間に、準備ウィンドウが現れます。これは、WERサービスをGetTempFileNameWコールで4〜5秒間スタックさせる方法を見つけたためで、これはかなり大きなタイミングギャップです。その間に、固定ファイル名WERFFFF.tmpの一時ファイルをサービスに強制的にドロップさせます。

サービスがWERFFFF.tmpという名前の一時ファイルを作成した後、APIは自動的にファイルへのハンドルを閉じ、ファイル名をサービスに返して、そのファイルに対するさらなる操作(書き込みや削除)を行います。これがまさにバグが発生する位置です。以下の3つの条件が満たされます。

  1. サービスによって作成されたファイルは、通常のユーザーが制御可能な位置にある。
  2. サービスはファイルへのすべてのハンドルを閉じる。
  3. サービスは後でファイルを使用する(書き込みまたは削除)。

ここで、サービスはファイルに内容を書き込み、それを削除します。書き込みと削除の両方が、ファイルシステムリンクと特定の悪用技術を利用して特権昇格を引き起こします。

このバグを任意のファイル削除に変えるために、私たちは創造的に複数のディレクトリジャンクションを利用して悪用を完了させました。私たちのエクスプロイトには次の手順が含まれます。

  • すべてのWER***.tmpを$pwd\1\に配置し、$pwd\2\ -> $pwd\1\のジャンクションを作成します。
  • この関数をパス$pwd\2\で継続的にトリガーするプロセスを作成し、別のプロセスでSetOplock $pwd\1\WERFFFF.tmpコマンドを継続的に実行します。
  • Oplockがトリガーされたら、$pwd\2\ -> \RPC CONTROL\をジャンクションし、次にオブジェクトシンボリックリンク\RPC CONTROL\WERFFFF.tmp -> $targetおよび\RPC CONTROL\WERFFFF.tmp.etl -> $targetを作成します。
  • Oplockを解放すると、ターゲットファイルがシステム権限で削除されます。

詳細な悪用手順とPOCはWERReport-CVE-2020-0753に提供されています。

GetTempFileNameWの欠陥を悪用することで、サービスが操作する予測可能な場所を取得します。複数レベルのファイルシステムジャンクションを利用することで、競合状態を確実に悪用可能にします。

同時に、この種の競合バグは、ファイルの上書き問題を引き起こす可能性もあることに気づきました。特定の状況下で特権昇格のバグにつながる可能性があります。

部分的な制御による任意のファイル破損から特権昇格へ

任意のファイル破損(ファイル内容のごく一部(63バイト未満)を制御できる場合)がEoPに変わる理由を説明するには、Windows Defenderの動作メカニズムに注目する必要があります。

Windows Defenderにはマルウェアシグネチャデータベースがあります。ファイルにマルウェアシグネチャが含まれている場合、Defenderはそれをマルウェアと見なして削除します。しかし、この機能は追加の攻撃面をもたらします。例えば、WCTF2019でtokyowesternsの@icchyが設計したWindows CTFチャレンジ"Gyotaku The Flag"は、この機能をオラクルとして情報漏洩に利用しています。

ここでは、Windows Defenderのこの機能を利用して、ファイル内容の部分的な制御を伴う任意のファイル破損がある場合に任意のファイルを削除します。マルウェアシグネチャをファイルに書き込み、Windows Defenderによるデフォルトスキャンをトリガーするだけで、ファイルはDefenderの隔離エリアに配置され、通常のユーザー(medium-ILの非管理者ユーザー)がスキャン操作を2回トリガーするだけで削除できます。

つまり、任意のファイル破損バグは、バグを使用してターゲットファイルにマルウェアシグネチャ文字列を配置できれば、任意のファイル削除に変換できます。

  • ステップ1: バグを使用してターゲットファイルを破損し、Windows Defenderが認識できる特徴的な文字列を書き込みます。

  • ステップ2: Windows Defenderをトリガーしてターゲットファイルをスキャンさせ、ファイルを隔離させます。

  • ステップ3: 再度スキャンをトリガーし、ターゲットファイルを削除します。

この技術を利用することで、Defenderの助けを借りて任意のファイル削除を取得します。

任意のファイル削除は、さらに特権を得るためにはるかに簡単に悪用できます。

Microsoft OneDriveで修正された6つのファイルシステムDoS脆弱性

Microsoft OneDriveは、パーソナルクラウドストレージサービスを提供するアプリケーションバンドルです。このアプリケーションは、Windows 8以降、デフォルトのインストールオプションとしてWindowsに統合されています。調査中に、OneDriveのサービススケジュールタスクにおいて6つの脆弱性が発見され、MSRCに報告されました。


以下は、Microsoft OneDrive関連のスケジュールタスクで公開する脆弱性の表です。

これらの6つのバグはすべて、サービスがハードリンクとシンボリックリンクを不適切に処理し、通常のユーザーが制御可能な場所で操作を行うことに起因しています。これらのバグの悪用における難しさは、ファイル名に現在のプロセスのPIDやファイルが操作された時刻を示すタイムスタンプが含まれていることです。これは、サービスが実行トリガーされたときにロードしようとする一意のDLLファイルにoplockを設定することで解決できます。これにより、サービスが後で操作しようとするファイル名を予測するために必要なすべての情報を取得できます。POCの例はFileSyncConfigTemp_hardlinkディレクトリに提供されています。

脆弱性の影響

上記の6つの脆弱性はすべて、完全なレポートとPOCプログラムとともに提供されています。ほとんどのバグは最初に任意のファイル破損を引き起こしますが、この種のバグは依然としてシステムクラッシュ(重要なシステム設定ファイルの上書きによる)を引き起こし、それらすべてがWindowsの再インストールを必要とします。したがって、Windowsシステムのサービス拒否(DoS)バグタイプの基準を満たしています。

さらに、この種のバグは特定の状況下で実際に特権昇格を引き起こす可能性があります。任意のファイル上書き問題を利用して任意のファイル削除プリミティブを達成する悪用技術について説明しました。したがって、特権昇格は達成可能です。

脆弱性のクレジット

Fangming Gu

Zhiniang Peng of Qihoo 360 Core Security

タイムライン

2020年2月2日: 脆弱性を報告

2020年2月8日: MSRCが調査し、提出したOneDriveの6つのバグについて回答。結論は、ユーザーの操作が多すぎる/信頼性の高いエクスプロイトを構築するのが難しすぎるため修正しない。

2020年2月8日: 私たちの返答: ユーザーの操作は必要ありません。タスクスケジューラが実行されるのを待つだけです。したがって、このシナリオは典型的です。

2020年2月11日: MSRCの返答: ユーザーのマシン上の特定のファイルをどのように取得しますか?また、そのファイルのすべての順列をそのフォルダに配置しますか?日付/時刻/PIDに正確に一致する必要がありますか?これらの理由から、ユーザーの労力が多すぎるように思われます。

2020年2月11日: 私たちの返答: POCは簡略化されたバージョンです。ファイル名の予測の労力を減らすためです。実際には、oplockを設定するだけで、{pid}、{hour}、{data}のすべてを取得できます。したがって、ユーザーの操作は必要ありません。

2020年2月12日: これらの6つの脆弱性に関するWriteupを公開できるか質問。

2020年2月13日: MSRCの返答: Writeupを公開しても構いません。

2020年2月22日: 詳細を公開

ステータス更新: 6つの脆弱性はすべて、2020年3月のPatch Tuesdayで修正を受けました。

ツールをダウンロード
脆弱なプログラムタイプPOC提供
FileSyncConfig.exeHardLinkあり
FileSyncHelper.exeHardLinkあり
OneDriveFileSyncConfig.exeSymLinkあり
OneDriveSetup.exeHardLinkあり
OneDriveSetup.exeHardLinkあり
OneDriveStandaloneUpdater.exeHardLinkあり