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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2017-0199-Fix — OLE2が.hta経由でコードを実行する問題に対する即席の修正 | Kitploit
ツール/GitHubGitHub/notawful/cve-2017-0199-fix
脆弱性分析エクスプロイト構成監査学習と教育インシデントレスポンスArchived
GitHubnotawful/cve-2017-0199-fix

CVE-2017-0199-Fix

OLE2が.hta経由でコードを実行する問題に対する即席の修正

リポジトリを見る
13269年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2017-0199 修正

.hta ファイルの既定のハンドラーを変更することで、CVE-2017-0199 によるコード実行を無効化します。OLE2(COM オブジェクト)を介して呼び出されるファイルの既定のハンドラーは、ローカルシステムの既定のアプリケーションとは別にレジストリに保存されており、レジストリ経由でしか変更できません。

基本的なエクスプロイトのロジック

これはこのエクスプロイトの実際の一例であり、私が理解している範囲で説明しています。すべての事例がこのパターンに従うわけではなく、私の評価が誤っている可能性もあります。ただし、次のセクションで示す修正は、私がテストした状況では機能します。

  1. Web サーバーでホストされている RTF 文書には、悪意のあるハイパーテキストアプリケーション(HTA)ペイロードが末尾に連結(cat)されている。
  2. ホスティングサーバーは、そのファイルへの GET リクエストに対し、コンテンツが HTA ファイルであることを示すヘッダーで応答する。
  3. Microsoft Word は OLE2 オブジェクトを実行して、Web サーバーから RTF 文書を取得する。
  4. Microsoft Word は、拡張子 .rtf が HTA のコンテンツタイプと一致しないため、ファイルタイプの検証を強制される。
  5. Microsoft Word はファイルの末尾から認識可能なデータ構造をチェックし、HTA データ構造を HTA コンテンツタイプに一致させる。
  6. Microsoft Word はファイルタイプを自動修正し、HTA ファイル用の COM ハンドラー(mshta.exe)に渡す。
  7. Mshta.exe はファイルの末尾にある悪意のあるハイパーテキストアプリケーションコードを実行する。

COM ハンドラーは、ファイルタイプ検証プロセスでのエラーを防ぐために、レジストリ内でシステムハンドラーとは別に保存されています。

基本的な修正

  1. RegEdit.exe で HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon に移動する
  2. DefaultIcon の詳細なアクセス許可を開く
  3. 所有者を Administrators(グループ)に変更する
  4. 現在のユーザーアカウントをセキュリティプリンシパルの一覧に追加し、「フルコントロール」を割り当てる
  5. (Default) キーを C:\Windows\System32\notepad.exe,1 に編集する
  6. DefaultIcon の詳細なアクセス許可で自分のユーザーを削除し、所有者として SYSTEM を再割り当てする
  7. HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32 について手順 1 から 6 を繰り返し、(Default) キーの値を C:\Windows\System32\notepad.exe に変更する

これにより、OLE2 を介して呼び出される .hta オブジェクトの既定のハンドラーがメモ帳に変更され、CVE-2017-0199 によるコード実行ができなくなります。これは、OLE2 が .hta ファイルを呼び出すすべてのインスタンスに適用されます。メモ帳が開きエラーが発生しますが、コードは実行されません。

元のレジストリキー

root@kitploit:~
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
	C:\Windows\SysWOW64\mshta.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
	C:\Windows\SysWOW64\mshta.exe

編集後のレジストリキー

root@kitploit:~
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\DefaultIcon\(Default)
	C:\Windows\System32\notepad.exe,1
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{3050f4d8-98B5-11CF-BB82-00AA00BDCE0B}\LocalServer32\(Default)
	C:\Windows\System32\notepad.exe

環境

  • 1台のUbuntu 16.04.2 LTSサーバー(LAMPスタックとSSHサーバー搭載)
  • 1台のWindows 10クライアント(Office 365 (2016) 搭載)

参考

  • エクスプロイトのPoC: https://rewtin.blogspot.ca/2017/04/cve-2017-0199-practical-exploitation-poc.html (アクセス日: 2017-04-17)
  • CVE-2017-0199の解析: https://www.fireeye.com/blog/threat-research/2017/04/cve-2017-0199-hta-handler.html (アクセス日: 2017-04-17)

教訓

  • HKCR を直接編集しないこと。関連するキーは HKCU または HKLM のどちらかで編集すること。
  • レジストリキーの所有権を取得した後、SYSTEM や他のユーザーに戻すことができる。
  • レジストリをいじらないこと。変更を行ったら、元の状態に戻すこと。
  • Process Monitor には、ノイズを減らすための強力な右クリックフィルタリングがある。
  • Process Monitor の検索機能は、すべてのフィールドで文字列を検索する。
  • pscp.exe (Putty) はコマンドラインのSSHファイル転送ツールである。
  • Linux はやはり大きな面倒だ。

結びのコメント

この緩和策によって生じたいかなる損害や問題、またメモ帳と多数のエラーによるユーザーの混乱についても、私は一切責任を負いません。これは汚い修正であり、本番環境でより広範な問題を引き起こすかどうかは不明です。いつものように、各自の環境とニーズに合わせて緩和策を評価してください。

後でこの緩和策の前後の効果を示すスクリーンショットを追加する予定です。また、これはスクリプトでも実行できますが、レジストリキーのアクセス許可を変更する際に問題があるため、それは後で対応します。

ツールをダウンロード