hacktricks/network-services-pentesting/135-pentesting-msrpc.md

14 KiB
Raw Blame History

135, 593 - MSRPCのペンテスト

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

HackenProofはすべての暗号バグバウンティの場所です。

遅延なしで報酬を受け取る
HackenProofのバウンティは、顧客が報酬予算を入金した後にのみ開始されます。バグが検証された後に報酬を受け取ることができます。

Web3ペンテストの経験を積む
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです上昇期のWeb3セキュリティをマスターしましょう。

Web3ハッカーレジェンドになる
各検証済みのバグごとに評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。

HackenProofでサインアップして、ハッキングから報酬を得ましょう!

{% embed url="https://hackenproof.com/register" %}

基本情報

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

上記のオプションから、tcp_dcerpc_auditor以外は、ポート135msrpcに対してのみ実行できます。

注目すべき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はすべての暗号バグバウンティの場所です。

遅延なしで報酬を受け取る
HackenProofのバウンティは、顧客が報酬予算を入金した後に開始されます。バグが検証された後に報酬を受け取ることができます。

Web3ペントestingの経験を積む
ブロックチェーンプロトコルとスマートコントラクトは新しいインターネットです成長段階のweb3セキュリティをマスターしましょう。

Web3ハッカーレジェンドになる
各検証済みのバグで評判ポイントを獲得し、週間リーダーボードのトップを制覇しましょう。

HackenProofでサインアップしてハッキングから報酬を得ましょう!

{% embed url="https://hackenproof.com/register" %}

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