• 可能未启动 RPC 服务。
• 无法解析 DNS 或 NetBIOS 名称。
• 无法建立 RPC 通道。
1、 RPC服务未启动。解决:控制面板-管理工具-服务-“Remote Procedure Call(RPC)”/“Remote Procedure Call(RPC)Locator”,启动一下,服务状态“启动”;
2、 用Windows光盘重新安装IIS服务,在控制面板中;
3、 新安装TD,成功后,进入“计算机管理”->“Internet信息服务”->“默认Web站点”->“TDBIN”->"属性"->”虚拟目录”,修改应用程序保护,将起改成“低(IIS进程)”,重新启动TD,或者重新启动机器。不过该方法在用CheckTD是可能会出现TD Virtual Directory的警告。
4、 解决由IIS WebSite Statue的错误时,进入“计算机管理”- >“Internet信息服务”->“默认Web站点”->“TDBIN”->"属性"->”虚拟目录”,将脚本访问资源钩上,否则错误提示不能访问脚本资源。
5、 解决由OTAServer配置类型不正确,要求检查用户名和密码的问题时,可以进行以下操作:
在TD应用服务器中打开[开始]-[运行],输入Dcomcnfg.exe命令来打开分布式COM配置属性,然后选择[应用程序]- [Mercury OTAServer Server]-[属性]-[安全性]-[编辑]-[显示用户],将以IUSR_为开头的用户和 TD_IUSER_LOCAL添加进入用户列表(我是在所有的编辑中都添加了这2个用户)。
重启IIS或机器。(如果以上2步还不行的话,可以继续第三步)
选择[应用程序]-[Mercury OTAServer Server]-[属性]-[身份标志],选择制定用户,将用户名和密码改为本机管理员帐号和密码。
6、 如果TD服务器管理员帐号/密码或者数据库的被修改过,一定要将它们修改回安装TD时的帐号/密码,否则也会出现RPC错误。
方法一:修改注册表
运行注册表编辑器,打开HKEY_LOCAL_MACHINE/system/CurrentControl-Set/Services/RpcSs分支,将Start项的值由“4”修改为“2”,即把启动类型设为自动,重新启动系统即可。
方法二:使用“SC”命令
进入“命令提示符”窗口,键入“sc config RpcSs start=auto”命令,系统会显示“SC ChangeServiceConfig SUCCESS”,这样就可以成功启用RPC服务。
方法三:使用故障恢复控制台
以Windows 2003系统为例,用安装光盘启动,系统进入到Windows 2003安装界面,按下“R”键登录到故障恢复控制台。在故障恢复控制台下,键入“enable RpcSs service_auto_start”命令,然后再键入“exit”命令,重新启动系统,以正常模式登录,即可成功启用RPC服务。
笔者使用上面的几种方法都不成功,看来只有自己动手解决了。我想注册表中的某些键值一定要变,这样才能启用。
把禁用前的备份注册表恢复到被禁用后的注册表中,提示无法导入,不成功。无法启用。
把禁用前和禁用后的两个注册表(只取HKEY_LOCAL_MACHINE/SYSTEM分支)内容转化成Word文档,再使用Word中的“比较并合并文档”功能,就能自动找到两个注册表的不同之处。我通过比较分析,发现禁用后的注册表中有以下分支:
1. HKEY_LOCAL_MACHINE/SYSTEM/Curr-
entControlSet/HardwareProfiles/0001/System/CurrentControlSet/Enum/ROOT/LEGACY_RPCSS
2.HKEY_LOCAL_MACHINE/SYSTEM/Curr-
entControlSet/HardwareProfiles/Current/System/CurrentControlSet/Enum/ROOT/LEGACY_RPCSS
禁用前的注册表中没有以上两个分支。通过进一步操作,发现只要删除第1个分支即可重新起用RPC服务。
原来上面三种方法,只能应用于把RPC服务启动类型改为禁止后的情况。笔者关闭RPC服务不是改变启动类型,而是禁止与之相关联的硬件配置文件服务,“Start”项的值仍是“2”,没有变。所以先要将硬件配置文件服务启用,才能启用RPC服务。
问:什么是 RPC(远程过程调用)?
答:远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。
问:Microsoft 的“远程过程调用”(RPC) 实现过程存在什么问题?
答:RPC 中处理 TCP/IP 上的消息交换的部分存在一个缺陷。错误地处理格式不正确的消息会导致出现错误。这种特定的错误会影响底层的 DCOM 接口,此接口侦听 TCP/IP 端口 135。通过发送格式不正确的 RPC 消息,攻击者可以使一台计算机上的 RPC 服务出现问题,进而使任意代码得以执行。
问:这是 RPC 终结点映射器中的缺陷吗?
答:不是。尽管 RPC 终结点映射器侦听 TCP 端口 135,此缺陷实际上出现在 RPC 过程中的低级别 DCOM 接口中。RPC 终结点映射器允许 RPC 客户端确定当前分配给特定 RPC 服务的端口号。终结点是服务器应用程序在其上侦听有无远程过程调用的协议端口或命名管道。客户端/服务器应用程序可以使用已知的端口或动态端口。
问:攻击者可利用此漏洞做什么?
答:如果攻击者能够成功利用此漏洞,他将能够在受影响的系统上运行拥有本地系统特权的代码。攻击者将能够对系统执行任何操作,包括安装程序,查看、更改或删除数据,或者创建拥有完全权限的新帐户。
问:攻击者会如何利用此漏洞?
答:攻击者可以通过编程方式来寻求利用此漏洞,在一台能够通过 TCP 端口 135 与易受影响的服务器通信的计算机上,发送特定类型的、格式错误的 RPC 消息。接收此类消息会导致易受影响的计算机上的 RPC 服务出现问题,进而使任意代码得以执行。
问:哪些人可能利用该漏洞?
答:任何能够向受影响的计算机上的 135 端口发送 TCP 请求的用户都能利用此漏洞。因为 Windows 的各种版本中的 RPC 请求在默认情况下是打开的,这实际上意味着任何能够与受影响的计算机建立连接的用户都能利用此漏洞。
