remoteKrbRelayx:DCOMおよびRPCを介したKerberos認証の強制・中継ツール

Security

概要

remoteKrbRelayxは、Kerberos認証をMicrosoftのDCOM(Distributed Component Object Model)およびRPC(Remote Procedure Call)プロトコルを介して強制し、中継することを目的としたPython製ツールです。元々Michael Zhmaylo氏のRemoteKrbRelayから着想を得ており、Sylvain Heiniger氏のpotato.pyやrpcrelayserver.py、Dirk-jan Mollema氏のKrbRelayxなど既存の複数ツールを統合・拡張しています。これにより、攻撃者は特権昇格や横展開の際にKerberos認証をリレーしやすくなり、セキュリティ評価や侵入テストに役立てられます。一方、環境やオプションの組み合わせが多岐にわたり、完全な安定性はまだ確保されていませんが、実用性の高い機能を備えています。

GitHub

リポジトリの統計情報

  • スター数: 33
  • フォーク数: 4
  • ウォッチャー数: 33
  • コミット数: 3
  • ファイル数: 8
  • メインの言語: Python

主な特徴

  • Kerberos認証情報をDCOMおよびRPCプロトコルで強制取得しリレーできる
  • potato.pyやrpcrelayserver.py、KrbRelayxなど既存ツールの機能を統合・拡張
  • 柔軟なオプション設定により多様な環境に対応可能
  • セキュリティ評価やペネトレーションテストでの攻撃シナリオに活用

技術的なポイント

remoteKrbRelayxは、Windows環境でよく使われるDCOMやRPCといったリモート通信プロトコルの特性を利用し、Kerberos認証のリレー攻撃を実現しています。KerberosはWindowsドメイン環境で広く使われる認証プロトコルであり、正当な認証チケット(TGTやTGS)を用いてクライアントの身元を証明します。

本ツールの技術的な肝は、リモートのDCOM/RPCサービスに対し認証を強制させ、その認証情報を傍受・再利用(リレー)する点にあります。これにより、攻撃者は中間者のように振る舞い、正規利用者の認証情報を不正に利用して権限を乗っ取ることが可能です。

remoteKrbRelayxは、既存の複数ツールを連携させる設計となっています。例えば、Sylvain Heiniger氏が開発したpotato.pyは「potato系」と呼ばれる特権昇格ツールの一つで、RPCの脆弱性を突く機能を持ちます。また、rpcrelayserver.pyはRPC通信の中継を担い、Dirk-jan Mollema氏のKrbRelayxはKerberos認証をリレーするメカニズムを提供します。

これらをPythonで統合し、ユーザーは一つのツールでKerberos認証の強制取得からリレーまでを実行可能です。オプションは多彩で、環境に応じた細かな設定ができますが、その分動作検証が十分でない組み合わせもあります。

さらに、Kerberosリレー攻撃は標的環境のセキュリティ設定やネットワーク構成に大きく依存するため、実運用での利用には環境理解と試行錯誤が必要です。remoteKrbRelayxはこうした実務的な課題に対応するための有力なツールとして評価されています。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: Gitで管理しないファイルを指定
  • LICENSE: ライセンス情報
  • README.md: ツールの概要や使い方を記載
  • images: ツール説明用の画像を格納
  • remoteKrbRelayx.py: メインのPythonスクリプト。Kerberos認証の強制およびリレー処理を実装
  • potato.py(統合対象の一部)
  • rpcrelayserver.py(統合対象の一部)
  • その他設定ファイルやヘルパースクリプト

まとめ

Kerberos認証リレー攻撃の実践的ツールとして有用なPython製プロジェクト。

リポジトリ情報: