RFC和RPC
RFC是requestforcomment的缩写,是由IETF管理,实际上就是Internet有关服务的一些标准。所有关于Internet的正式标准都以文档出版,但不是所有的RFC都是正式的标准,很多RFC的目的只是为了提供信息。RFC每一篇都用一个数字来标识,如RFC2401,数字越大说明RFC的内容越新。RFC是免费公开的,任何人都可以写RFC并提交IETF,一旦正式通过就可以正式发布,一旦发布RFC内容将不能再作任何修改,以后的修改只能通过新的RFC来处理,因此可以看到有很多新的RFC文档obsolete(废除)或update(更新)老的RFC。要真正了解一个协议的内容,就需要看相关的RFC。
RFC文档可在http://www.faqs.org/rfcs/获取,很多地方也都有,google就可以得到。目前遗憾的是几乎没有国内人员写的RFC,有的RFC虽然有中国人名字,但不是在国内作出的。
常见协议RFC号:
IP:791 TCP:793 UDP:768 ICMP:792 FTP:959 SOCK5:1928 CHAP:1994 SMTP:2821 POP3:1957 NTP:1305 HTTP1.1:2616 IMAP:2060 PPP:1661-1663 DHCP:2131 OSPF:2328 IPSec:2401-2412 IPv6: 2460 SIP: 3261 RTP:3550 RADIUS:3575,3576,3579,3580 L2TP:3931
远程过程调用 (RPC) 是一种协议,程序可使用这种协议向网络中的另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。 RPC 中处理 TCP/IP 上的消息交换的部分存在一个缺陷。错误地处理格式不正确的消息会导致出现错误。这种特定的错误会影响底层的 DCOM 接口,此接口侦听 TCP/IP 端口 135。通过发送格式不正确的 RPC 消息,攻击者可以使一台计算机上的 RPC 服务出现问题,进而使任意代码得以执行。 远程过程调用 (RPC) 是 Windows 操作系统使用的一个协议。RPC 提供了一种进程间通信机制,通过这一机制,在一台计算机上运行的程序可以顺畅地执行某个远程系统上的代码。该协议本身是从 OSF(开放式软件基础)RPC 协议衍生出来的,只是增加了一些 Microsoft 特定的扩展。 RPC 中处理通过 TCP/IP 的消息交换的部分有一个漏洞。此问题是由错误地处理格式不正确的消息造成的。这种特定的漏洞影响分布式组件对象模型 (DCOM) 与 RPC 间的一个接口,此接口侦听 TCP/IP 端口 135。此接口处理客户端计算机向服务器发送的 DCOM 对象激活请求(例如通用命名约定 (UNC) 路径)。 为利用此漏洞,攻击者可能需要向远程计算机上的 135 端口发送特殊格式的请求。 减轻影响的因素: 为利用此漏洞,攻击者可能需要拥有向远程计算机上的 135 端口发送精心编造的请求的能力。对于 Intranet 环境,此端口通常是可以访问的;但对于通过 Internet 相连的计算机,防火墙通常会封堵 135 端口。如果没有封堵该端口,或者在 Intranet 环境中,攻击者就不需要有任何其他特权。 最佳做法是封堵所有实际上未使用的 TCP/IP 端口。因此,大多数连接到 Internet 的计算机应当封堵 135 端口。RPC over TCP 不适合在 Internet 这样存在着危险的环境中使用。像 RPC over HTTP 这样更坚实的协议适用于有潜在危险的环境。 这是一个缓冲区溢出漏洞。成功利用此漏洞的攻击者有可能获得对远程计算机的完全控制。这可能使攻击者能够对服务器随意执行操作,包括更改网页、重新格式化硬盘或向本地管理员组添加新的用户。 要发动此类攻击,攻击者需要能够向 RPC 服务发送一条格式不正确的消息,从而造成目标计算机受制于人,攻击者可以在它上面执行任意代码。 防范来自 Internet 的远程 RPC 攻击的最佳方法是:将防火墙配置为封堵 135 端口。RPC over TCP 不适合在 Internet 这样存在着危险的环境中使用。 此漏洞是由于 Windows RPC 服务在某些情况下不能正确检查消息输入而造成的。如果攻击者在 RPC 建立连接后发送某种类型的格式不正确的 RPC 消息,则会导致远程计算机上与 RPC 之间的基础分布式组件对象模型 (DCOM) 接口出现问题,进而使任意代码得以执行。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lzj1980/archive/2008/06/11/2536469.aspx