hacktricks/network-services-pentesting/135-pentesting-msrpc.md
2023-07-07 23:42:27 +00:00

13 KiB
Raw Blame History

135, 593 - MSRPCのペンテスト

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

HackenProofをフォロー して、web3のバグについてもっと学びましょう

🐞 web3のバグチュートリアルを読む

🔔 新しいバグバウンティについて通知を受ける

💬 コミュニティディスカッションに参加する

基本情報

Microsoft Remote Procedure CallMSRPCは、クライアントサーバーモデルを使用して、プログラムが他のコンピュータ上のプログラムにサービスを要求するためのプロトコルです。MSRPCはもともとオープンソースソフトウェアから派生していましたが、Microsoftによってさらに開発され、著作権が保護されています。

ホストの設定によっては、RPCエンドポイントマッパーはTCPおよびUDPポート135を介してアクセスでき、SMBを介してヌルまたは認証済みセッションTCP 139および445でアクセスでき、TCPポート593でリッスンするWebサービスとしても利用できます。

135/tcp   open     msrpc         Microsoft Windows RPC

MSRPCの動作原理は

MSRPCプロセスはクライアント側で始まります。クライアントアプリケーションは、手続きを実装するコードの代わりにローカルスタブ手続きを呼び出します。クライアントスタブコードは、必要なパラメータをクライアントアドレススペースから取得し、それらをクライアントランタイムライブラリに渡します。その後、クライアントランタイムライブラリはパラメータを標準のネットワークデータ表現形式に変換してサーバに送信します。

クライアントスタブは、RPCクライアントランタイムライブラリの関数を呼び出してリクエストとパラメータをサーバに送信します。サーバがリモートにある場合、ランタイムライブラリは適切なトランスポートプロトコルとエンジンを指定し、RPCをネットワークスタックに渡してサーバに転送します。
ここから:https://www.extrahop.com/resources/protocols/msrpc/

書籍「ネットワークセキュリティ評価 第3版」からの画像

公開されたRPCサービスの特定

書籍「ネットワークセキュリティ評価 第3版」からの抜粋

RPCロケーターサービスと個々のRPCエンドポイントをクエリすることで、TCP、UDP、HTTP、およびSMB名前付きパイプを介してで実行されている興味深いサービスをカタログ化することができます。このプロセスで収集された各IFID値は、RPCサービスを示します5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fcはMessengerインターフェースです

Todd Sabinのrpcdumpおよびifids Windowsユーティリティは、RPCロケーターと特定のRPCエンドポイントの両方をクエリしてIFID値のリストを表示します。rpcdumpの構文は次のとおりです

D:\rpctools> rpcdump [-p port] 192.168.189.1
IfId: 5a7b91f8-ff00-11d0-a9b2-00c04fb6e6fc version 1.0
Annotation: Messenger Service
UUID: 00000000-0000-0000-0000-000000000000
Binding: ncadg_ip_udp:192.168.189.1[1028]

RPCロケーターサービスには、以下の4つのプロトコルシーケンスを使用してアクセスできます

  • ncacn_ip_tcpおよびncadg_ip_udpTCPおよびUDPポート135
  • ncacn_npSMB経由の\pipe\epmapperという名前のパイプ
  • ncacn_httpTCPポート80、593などを介したRPC over HTTP
use auxiliary/scanner/dcerpc/endpoint_mapper
use auxiliary/scanner/dcerpc/hidden
use auxiliary/scanner/dcerpc/management
use auxiliary/scanner/dcerpc/tcp_dcerpc_auditor
rpcdump.py <IP> -p 135

Note that from the mentioned options all except of tcp_dcerpc_auditor can only be executed against msrpc in port 135.

注目すべきRPCインターフェース

IFID値 名前付きパイプ 説明
12345778-1234-abcd-ef00-0123456789ab \pipe\lsarpc ユーザーの列挙に使用されるLSAインターフェース
3919286a-b10c-11d0-9ba8-00c04fd92ef5 \pipe\lsarpc ドメインと信頼関係の列挙に使用されるLSAディレクトリサービスDSインターフェース
12345778-1234-abcd-ef00-0123456789ac \pipe\samr 公開SAMデータベース要素ユーザー名などにアクセスし、アカウントロックアウトポリシーに関係なくユーザーパスワードを総当たり攻撃するために使用されるLSA SAMRインターフェース Oreilly library
1ff70682-0a51-30e8-076d-740be8cee98b \pipe\atsvc タスクスケジューラーによるリモートコマンドの実行に使用される
338cd001-2244-31f1-aaaa-900038001003 \pipe\winreg システムレジストリへのアクセスに使用されるリモートレジストリサービス
367abb81-9844-35f1-ad32-98f038001003 \pipe\svcctl サービスコントロールマネージャーおよびサーバーサービスによるリモートでのサービスの開始と停止、およびコマンドの実行に使用される
4b324fc8-1670-01d3-1278-5a47bf6ee188 \pipe\srvsvc サービスコントロールマネージャーおよびサーバーサービスによるリモートでのサービスの開始と停止、およびコマンドの実行に使用される
4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 \pipe\epmapper WMIをサポートするDCOMインターフェース

IPアドレスの特定

https://github.com/mubix/IOXIDResolverを使用すると、_IOXIDResolverインターフェース内のServerAlive2_メソッドを悪用することができます。

このメソッドは、HTBボックス_APT_からIPv6アドレスのインターフェース情報を取得するために使用されました。0xdfのAPT解説についてはこちらを参照してください。rpcmap.pyを使用した代替方法については、Impacketの_stringbinding_を使用します上記を参照

参考文献:

ポート593

rpctoolsrpcdump.exeをこのポートとやり取りすることができます。

HackenProofをフォロー して、web3のバグについてもっと学びましょう

🐞 web3のバグチュートリアルを読む

🔔 新しいバグバウンティについて通知を受ける

💬 コミュニティディスカッションに参加する

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥