Appearance
Appearance
DCE/RPC 是一种远程过程调用机制规范,它同时定义了 API 和网络传输协议。
DCE/RPC 服务器的 endpoint mapper (EPMAP) 会监听传入调用。客户端会调用这个 endpoint mapper,并请求某个特定接口,该接口将在另一个连接上访问。之后,客户端就可以向服务器请求调用。
正因为如此,你不能简单地通过捕获某个特定 TCP 端口来查看所有流量,因为还会使用更多连接。
二进制 blob 可能会在客户端和服务器端点之间传输:除了 packet type 和 opnum 之外,对 DCE/RPC 来说,该会话是不透明的。
按发布日期排序的规范文档:
DCE/RPC 可以运行在多种协议之上,包括:
Frame 16 (156 bytes on wire, 156 bytes captured) Arrival Time: Jan 25, 2006 13:30:30.722061000 Time delta from previous packet: 0.003745000 seconds Time since reference or first frame: 0.072939000 seconds Frame Number: 16 Packet Length: 156 bytes Capture Length: 156 bytes Protocols in frame: eth:ip:tcp:nbss:smb:dcerpcEthernet II, Src: 00:50:56:c0:00:08 (00:50:56:c0:00:08), Dst: 00:0c:29:90:06:7c (00:0c:29:90:06:7c) Destination: 00:0c:29:90:06:7c (00:0c:29:90:06:7c) Source: 00:50:56:c0:00:08 (00:50:56:c0:00:08) Type: IP (0x0800)Internet Protocol, Src: 192.168.29.1 (192.168.29.1), Dst: 192.168.29.133 (192.168.29.133) Version: 4 Header length: 20 bytes Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00) 0000 00.. = Differentiated Services Codepoint: Default (0x00) .... ..0. = ECN-Capable Transport (ECT): 0 .... ...0 = ECN-CE: 0 Total Length: 142 Identification: 0x0d71 (3441) Flags: 0x04 (Don't Fragment) 0... = Reserved bit: Not set .1.. = Don't fragment: Set ..0. = More fragments: Not set Fragment offset: 0 Time to live: 128 Protocol: TCP (0x06) Header checksum: 0x3122 [correct] Good: True Bad : False Source: 192.168.29.1 (192.168.29.1) Destination: 192.168.29.133 (192.168.29.133)Transmission Control Protocol, Src Port: 1107 (1107), Dst Port: 139 (139), Seq: 1777360425, Ack: 1042911032, Len: 102 Source port: 1107 (1107) Destination port: 139 (139) Sequence number: 1777360425 Next sequence number: 1777360527 Acknowledgement number: 1042911032 Header length: 20 bytes Flags: 0x0018 (PSH, ACK) 0... .... = Congestion Window Reduced (CWR): Not set .0.. .... = ECN-Echo: Not set ..0. .... = Urgent: Not set ...1 .... = Acknowledgment: Set .... 1... = Push: Set .... .0.. = Reset: Not set .... ..0. = Syn: Not set .... ...0 = Fin: Not set Window size: 16974 Checksum: 0x3bfe [validation disabled] SEQ/ACK analysis This is an ACK to the segment in frame: 15 The RTT to ACK the segment was: 0.003745000 secondsNetBIOS Session Service Message Type: Session message Flags: 0x00 .... ...0 = Add 0 to length Length: 98SMB (Server Message Block Protocol) SMB Header Server Component: SMB Response in: 17 SMB Command: Trans (0x25) Error Class: Success (0x00) Reserved: 00 Error Code: No Error Flags: 0x00 0... .... = Request/Response: Message is a request to the server .0.. .... = Notify: Notify client only on open ..0. .... = Oplocks: OpLock not requested/granted ...0 .... = Canonicalized Pathnames: Pathnames are not canonicalized .... 0... = Case Sensitivity: Path names are case sensitive .... ..0. = Receive Buffer Posted: Receive buffer has not been posted .... ...0 = Lock and Read: Lock&Read, Write&Unlock are not supported Flags2: 0x0001 0... .... .... .... = Unicode Strings: Strings are ASCII .0.. .... .... .... = Error Code Type: Error codes are DOS error codes ..0. .... .... .... = Execute-only Reads: Don't permit reads if execute-only ...0 .... .... .... = Dfs: Don't resolve pathnames with Dfs .... 0... .... .... = Extended Security Negotiation: Extended security negotiation is not supported .... .... .0.. .... = Long Names Used: Path names in request are not long file names .... .... .... .0.. = Security Signatures: Security signatures are not supported .... .... .... ..0. = Extended Attributes: Extended attributes are not supported .... .... .... ...1 = Long Names Allowed: Long file names are allowed in the response Process ID High: 0 Signature: 0000000000000000 Reserved: 0000 Tree ID: 2048 Process ID: 1764 User ID: 2048 Multiplex ID: 0 Trans Request (0x25) Word Count (WCT): 16 Total Parameter Count: 0 Total Data Count: 24 Max Parameter Count: 1024 Max Data Count: 65504 Max Setup Count: 0 Reserved: 00 Flags: 0x0000 .... .... .... ..0. = One Way Transaction: Two way transaction .... .... .... ...0 = Disconnect TID: Do NOT disconnect TID Timeout: Return immediately (0) Reserved: 0000 Parameter Count: 0 Parameter Offset: 74 Data Count: 24 Data Offset: 74 Setup Count: 2 Reserved: 00 Byte Count (BCC): 31 Transaction Name: \PIPE\SMB Pipe Protocol Function: TransactNmPipe (0x0026) FID: 0x4000DCE RPC Request, Fragment: Single, FragLen: 24, Call: 1 Ctx: 0, [Resp: #17] Version: 5 Version (minor): 0 Packet type: Request (0) Packet Flags: 0x03 0... .... = Object: Not set .0.. .... = Maybe: Not set ..0. .... = Did Not Execute: Not set ...0 .... = Multiplex: Not set .... 0... = Reserved: Not set .... .0.. = Cancel Pending: Not set .... ..1. = Last Frag: Set .... ...1 = First Frag: Set Data Representation: 10000000 Byte order: Little-endian (1) Character: ASCII (0) Floating-point: IEEE (0) Frag Length: 24 Auth Length: 0 Call ID: 1 Alloc hint: 0 Context ID: 0 Opnum: 4 Response in frame: 17DCE/RPC dissector 功能完整。它还提供了一些高级功能,例如 DCE/RPC defragmentation 等。
你可以使用菜单项 "Statistics/Service Response Time/DCE-RPC..." 获取 DCE/RPC 接口调用的响应时间(请求与其响应之间的时间)。
如果你没有在面向连接的 DCE/RPC 会话开始时捕获 binding sequence,可以使用菜单项 "Analyze/Decode As..." 将特定接口附加到所选会话。
(XXX 添加影响 DCE/RPC 解析方式的首选项设置链接)。
XXX - 添加一个简单的示例捕获文件。保持简短,最好也用 gzip 压缩以使其更小,因为 Wireshark 可以自动打开 gzipped 文件。
完整的 DCE/RPC 显示过滤器字段列表可以在显示过滤器参考中找到
仅显示基于 DCE/RPC 的流量(包括面向连接和无连接):
dcerpc捕获时不能直接过滤 DCE/RPC 协议。
无论使用 NTLMSSP 还是 Kerberos,"encrypted stub data" 都可以被解密
Ulf Lamping:也许可以解释一下 ncacn_ip_tcp 用在什么地方,因为我仍然不知道 😃 Ronnie:参见示例捕获 mapi.cap.gz,其中有 dcerpc 使用 ncacn_ip_tcp 的示例
导入自 https://wiki.wireshark.org/DCE/RPC,时间为 2020-08-11 23:12:33 UTC