首页
社区
课程
招聘
[求助]RPC服务为什么需要身份验证?
发表于: 2008-12-29 15:00 5109

[求助]RPC服务为什么需要身份验证?

2008-12-29 15:00
5109
最近开始研究RPC,翻阅了大量的资料,自己也动手做了很多例子,但是有一个问题始终没有得到解决:命名管道来调用其他电脑上的RPC服务的,均需要身份验证。否则调用时就会返回一个错误代码是5: Access is denied。

测试时服务端使用了windows2000和windows2003, 客户端使用了XP sp2,我用wireshark截取数据包后发现服务端都会返回登陆失败LOGON_FAILUE。如果我在服务端上建立一个和本机一样的用户(密码也一样),则验证可以通过,RPC服务也能正确调用。

微软的漏洞MS06-040和最近的MS08-067涉及到RPC调用,其中就是通过\pipe\browser的命名管道来调用漏洞函数NetpwPathCanonicalize的,但是我模拟的时候也需要登陆后才能调用,否则就会出错。

这个问题困扰了我两个星期了,在google,baidu上均找不到答案,最近几天都彻夜难眠。希望有大侠能指点迷津,感激不尽!!!

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
终于找到答案了,事先建立一个空连接就好了。net use \\192.168.1.1\IPC$ "" /user:""

RPC通过TCP来调用是不需要验证的,但是通过命名管道就需要验证,这是windows所谓的build-in的安全机制(鄙视一下), 命名管道是通过SMB协议来实现的, smb协议内建了授权机制,所以事先建立一个空连接,RPC就会使用这个空连接来调用,如果没有建立空连接,则会将当前的用户名密码传到服务器验证.

翻了很多资料,推荐一个网址,希望对大家有点帮助:
7cdK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3S2K6j5#2)9J5k6h3k6J5i4K6u0r3M7X3g2K6M7$3!0#2M7X3y4W2M7#2)9J5c8X3q4J5N6r3W2U0L8r3g2K6i4K6u0r3N6$3W2F1i4K6g2X3L8X3g2@1i4K6g2X3M7%4u0$3i4K6u0r3K9h3&6V1k6i4S2Q4x3X3g2Z5N6r3#2D9
2008-12-29 21:10
0
游客
登录 | 注册 方可回帖
返回