135, 593 - Pentesting MSRPC

Reading time: 8 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

基本情報

Microsoft Remote Procedure Call (MSRPC) プロトコルは、クライアント-サーバーモデルであり、プログラムが別のコンピュータ上にあるプログラムからサービスを要求することを可能にし、ネットワークの詳細を理解することなく機能します。このプロトコルは、最初はオープンソースソフトウェアから派生し、その後Microsoftによって開発され、著作権が付与されました。

RPC エンドポイントマッパーは、TCP および UDP ポート 135、TCP 139 および 445 の SMB(ヌルまたは認証されたセッション)、および TCP ポート 593 のウェブサービスを介してアクセスできます。

135/tcp   open     msrpc         Microsoft Windows RPC

MSRPCはどのように機能しますか?

クライアントアプリケーションによって開始されるMSRPCプロセスは、ローカルスタブプロシージャを呼び出し、その後クライアントランタイムライブラリと対話して、リクエストをサーバーに準備して送信します。これには、パラメータを標準のネットワークデータ表現形式に変換することが含まれます。サーバーがリモートの場合、トランスポートプロトコルの選択はランタイムライブラリによって決定され、RPCがネットワークスタックを通じて配信されることを保証します。

https://0xffsec.com/handbook/images/msrpc.png

公開されているRPCサービスの特定

TCP、UDP、HTTP、SMBを介したRPCサービスの公開は、RPCロケータサービスおよび個々のエンドポイントをクエリすることによって判断できます。rpcdumpなどのツールは、IFID値によって示されるユニークなRPCサービスの特定を容易にし、サービスの詳細と通信バインディングを明らかにします:

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

RPCロケータサービスへのアクセスは、特定のプロトコルを通じて有効になります:ポート135を介してアクセスするためのncacn_ip_tcpおよびncadg_ip_udp、SMB接続用のncacn_np、ウェブベースのRPC通信用のncacn_httpです。以下のコマンドは、主にポート135に焦点を当てて、MSRPCサービスを監査および対話するためのMetasploitモジュールの利用を示しています:

bash
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 を除いて、ポート135でMSRPCをターゲットにするために特別に設計されています。

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

  • IFID: 12345778-1234-abcd-ef00-0123456789ab
  • Named Pipe: \pipe\lsarpc
  • Description: LSAインターフェース、ユーザーを列挙するために使用されます。
  • IFID: 3919286a-b10c-11d0-9ba8-00c04fd92ef5
  • Named Pipe: \pipe\lsarpc
  • Description: LSAディレクトリサービス(DS)インターフェース、ドメインと信頼関係を列挙するために使用されます。
  • IFID: 12345778-1234-abcd-ef00-0123456789ac
  • Named Pipe: \pipe\samr
  • Description: LSA SAMRインターフェース、公開SAMデータベース要素(例:ユーザー名)にアクセスし、アカウントロックアウトポリシーに関係なくユーザーパスワードをブルートフォースするために使用されます。
  • IFID: 1ff70682-0a51-30e8-076d-740be8cee98b
  • Named Pipe: \pipe\atsvc
  • Description: タスクスケジューラ、リモートでコマンドを実行するために使用されます。
  • IFID: 338cd001-2244-31f1-aaaa-900038001003
  • Named Pipe: \pipe\winreg
  • Description: リモートレジストリサービス、システムレジストリにアクセスして変更するために使用されます。
  • IFID: 367abb81-9844-35f1-ad32-98f038001003
  • Named Pipe: \pipe\svcctl
  • Description: サービスコントロールマネージャーおよびサーバーサービス、リモートでサービスを開始および停止し、コマンドを実行するために使用されます。
  • IFID: 4b324fc8-1670-01d3-1278-5a47bf6ee188
  • Named Pipe: \pipe\srvsvc
  • Description: サービスコントロールマネージャーおよびサーバーサービス、リモートでサービスを開始および停止し、コマンドを実行するために使用されます。
  • IFID: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57
  • Named Pipe: \pipe\epmapper
  • Description: DCOMインターフェース、ブルートフォースパスワードグラインディングおよびWMを介した情報収集に使用されます。

IPアドレスの特定

https://github.com/mubix/IOXIDResolverを使用すると、Airbus researchからの_ServerAlive2メソッドをIOXIDResolver_インターフェース内で悪用することが可能です。

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

有効な資格情報を使用したRCEの実行

有効なユーザーの資格情報が利用可能な場合、dcomexec.pyを使用して、マシン上でリモートコードを実行することが可能です。

利用可能な異なるオブジェクトで試すことを忘れないでください

  • ShellWindows
  • ShellBrowserWindow
  • MMC20

ポート593

rpctoolsrpcdump.exeは、このポートと対話できます。

参考文献

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする