☆ \pipe\epmapper > net use \\10.10.7.44\ipc$ "" /user:"" The command completed successfully. > ifids.exe -p ncacn_np -e \pipe\epmapper -t 10.10.7.44 Interfaces[11] : Interface UUID : e1af8308-5d1f-11c9-91a4-08002b14a0fa version 3.0 !!! Interface UUID : 0b0a6584-9e0f-11cf-a3cf-00805f68cb1b version 1.1 Interface UUID : 975201b0-59ca-11d0-a8d5-00a0c90d8051 version 1.0 Interface UUID : e60c73e6-88f9-11cf-9af1-0020af6e72f4 version 2.0 Interface UUID : 99fcfec4-5260-101b-bbcb-00aa0021347a version 0.0 Interface UUID : b9e79e60-3d52-11ce-aaa1-00006901293f version 0.2 Interface UUID : 412f241e-c12a-11ce-abff-0020af6e7a17 version 0.2 Interface UUID : 00000136-0000-0000-c000-000000000046 version 0.0 Interface UUID : c6f3ee72-ce7e-11d1-b71e-00c04fc3111a version 1.0 Interface UUID : 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 version 0.0 Interface UUID : 000001a0-0000-0000-c000-000000000046 version 0.0 建立空会话是必要步骤。有人什么也没得到,最大可能是忘记或不清楚需要提前建立 SMB会话才能访问远程命名管道。访问本地命名管道时无需提前建立SMB会话。 打开命名管道\pipe\epmapper,先做BIND操作,这次是"BIND Over Write AndX"。这 可是标准Windows API激发出来的报文。接口UUID是MGMT: afa8bd80-7d8a-11c9-bef4-08002b102989 可能你注意到MGMT并未出现在ifids.exe返回结果中,但通过\pipe\epmapper确实可 以访问到MGMT。这类情形以后你还会在不同场合碰上。 然后请求0号调用完成特定功能。 Ethereal 0.10.13未对响应报文的RPC数据区解码。最后关闭前面打开的命名管道。 现在让我们用ncacn_ip_tcp协议序列完成同样的0号调用: > ifids.exe -p ncacn_ip_tcp -e 135 -t 10.10.7.44 Interfaces[11] : Interface UUID : e1af8308-5d1f-11c9-91a4-08002b14a0fa version 3.0 !!! Interface UUID : 0b0a6584-9e0f-11cf-a3cf-00805f68cb1b version 1.1 Interface UUID : 975201b0-59ca-11d0-a8d5-00a0c90d8051 version 1.0 Interface UUID : e60c73e6-88f9-11cf-9af1-0020af6e72f4 version 2.0 Interface UUID : 99fcfec4-5260-101b-bbcb-00aa0021347a version 0.0 Interface UUID : b9e79e60-3d52-11ce-aaa1-00006901293f version 0.2 Interface UUID : 412f241e-c12a-11ce-abff-0020af6e7a17 version 0.2 Interface UUID : 00000136-0000-0000-c000-000000000046 version 0.0 Interface UUID : c6f3ee72-ce7e-11d1-b71e-00c04fc3111a version 1.0 Interface UUID : 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 version 0.0 Interface UUID : 000001a0-0000-0000-c000-000000000046 version 0.0 与前者相比,后者的通信数据量要少得多,但可以完成同样的0号调用。 前面都是铺垫,本节重点在于强调另一件事。在第一次ifids.exe的返回结果中看到 接口EPM: e1af8308-5d1f-11c9-91a4-08002b14a0fa 这意味着通过\pipe\epmapper可以访问到EPM,意味着可以不经135/TCP而访问EPM: > net use \\10.10.7.44\ipc$ /d /y \\10.10.7.44\ipc$ was deleted successfully. > net use \\10.10.7.44\ipc$ "" /user:"" The command completed successfully. > 135dump.exe -p ncacn_np -t 10.10.7.44 (略) 同样需要提前建立SMB会话,再执行135dump.exe。捕获操作: -------------------------------------------------------------------------- 1 162 SMB 10.10.7.2 10.10.7.44 4811 445 NT Create AndX Request, Path: \epmapper 2 193 SMB 10.10.7.44 10.10.7.2 445 4811 NT Create AndX Response, FID: 0x4001 3 194 DCERPC 10.10.7.2 10.10.7.44 4811 445 Bind: call_id: 1 UUID: EPM 4 105 SMB 10.10.7.44 10.10.7.2 445 4811 Write AndX Response, FID: 0x4001, 72 bytes 5 117 SMB 10.10.7.2 10.10.7.44 4811 445 Read AndX Request, FID: 0x4001, 1024 bytes at offset 0 6 190 DCERPC 10.10.7.44 10.10.7.2 445 4811 Bind_ack: call_id: 1 accept max_xmit: 4280 max_recv: 4280 7 242 EPM 10.10.7.2 10.10.7.44 4811 445 Lookup request 8 318 EPM 10.10.7.44 10.10.7.2 445 4811 Lookup response -------------------------------------------------------------------------- 这次SMB会话用了445/TCP,下次可能用139/TCP。访问动态注册过的RPC Server时往 往需要先访问EPM获取动态注册的端点信息,普遍是通过135/TCP完成的,但实际上通 过139、445/TCP、135/UDP也可以。比如: > 135dump.exe -p ncacn_ip_tcp -t 10.10.7.44 > 135dump.exe -p ncadg_ip_udp -t 10.10.7.44 关于135/UDP我单独写一节来讲,那个与135/TCP差别较大。再说\pipe\epmapper,可 能你测试的时候发现没有这个命名管道了,或者说没看到EPM绑定在其上,这也不奇 怪,这些东西MS说变就变的,天知道什么时候出个什么岔子就没了,但你最好清楚有 过这么件事,万一啥时候就用上了。