Netipia R7100 DSL路由器出厂后默认没有密码。例如,有590个使用DSL Netopia 路由器的重要的ISP,我们发现其中有290家大约59%的没有密码。一次登录进一台路由器,我们可以对这台路由器的防火规则,静态路由和网络地址映射进行配置。一个简单应用就是在路由器后进行的一次有效的拒绝服务攻击。
对于7100,他还能够被任何主机telnet ,ping ,traceroute。默认情况下,路由器记录telnet连接,但是一个攻击者能清除路由器的日志或者关闭记录功能。很多的日志能够在没有新的日志记录的情况下通过http被恢复。那290个没有密码的路由器,能够被自动软件所控制,在一次DDOS攻击中可以聚集4.5Mbit/s的ICMP带宽。路由器的防火墙被远程更新的能力将会被攻击者用更多的办法所滥用。我们会在附录A讨论详细的攻击过程,在附录B中讲述网络认证过程和结果。
措施:
路由器的所有者:给你的路由器加上个密码。(telnet进入后,选择System Configuration / Security / Add User)如果你有一个连接着其他的Netopia R7100或你的网络的路由器,你要把所有的管理接口都改成没有密码不能登录(在Netopia R9500上默认用户名和密码都是netopia/netopia,这就好像没有密码)
设备制造者:这个在商业上可能是非常普遍的,但是他是非常危险的。你可以限制提供给用户的为了能减少危害对于单一设备所能接受的级别的接口,但是如果你配置数千台路由器时犯了错误,在很多电脑盲的手中将会是最后升级这些机器的。如果你一定需要允许没有密码访问,那么就只允许他在局域网内部登录吧。
ISP和组织:在配置他之前要有安全认证设备。检查你的网络查找受影响的路由器,制定安全策略并且检查这些策略是否通过。反复检查直到所有的受影响路由器都被更正。如果你没有检查你努力制订的认证机制的效力,那么你就是在浪费时间。
讨论:
连接到internet的设备越来越多。像传统的OS销售商,很多设备的制造者经常在用户易用性,投入市场销售时间和安全性之间做出不负责任的决定。这个劝告包含的信息是来自一次对Internet的审计。没有人统计有缺陷的设备所占的百分比,服务提供商和设备制造者可以非常简单的为他们的那些有问题的用户弥补他们的过失。现在我们能说,如果按照现在的策略,每天增加100个用户就会有59个(误差为±5)有缺陷的路有器。
*.net,顺便说一下,不应该装作不知道而去责备用户,在2350个telnet登录到路由器的连接中,有599个(25%,也就是说平均245个路由器每个有2.4个连接)来自*.net的两个主机。*.net的雇员们非常清楚的知道他们的许多客户不需要密码就可以被访问到而且可能使用他们的知识给他们的客户做一些远程的支持。
今天专业的安全人员需要做的就是统计,因为cracker们正在这么做。很多的cracker宁愿在一台特殊的机器上寻找一次攻击,寻找一些由缺陷的机器发动一次特殊的攻击。在Internet上的每一台主机正在被有规律的扫描,包括我们上面的例子中的路由器。这些主机在我们上例说到的那种在一个维吉尼亚ISP路由器创造了telnet连接的第三大数字,在一个星期内在77个路由器上又95个telnet连接(每个路由平均1.2个连接)此外还有5个连接,这5个连接持续还不到17秒。
象DSL路由器这样的设备已经被应用到小型的SOHO环境下,在这里可能运作着一个小型的或者中等的电子商务环境。在SOHO环境下潜在的经济损失要比在一个家庭网络上的损失大的多。在这样的环境中人们很少知道什么安全,也不太可能去找个顾问。自然的,网络设备在接好后成了透明的了。虽然SOHO的用户可能知道他们的机器有被攻击的缺陷,在问题发生前,他们不会考虑他们的设备。
附录 A:
一个Netopia R7100提供的服务:如果你是用nmap,你将会读到
--------------------------------------------------------------------------
# nmap -sT ###.###.##.##
Starting nmap V. 2.3BETA14 by
fyodor@insecure.org (
www.insecure.org/nmap/ )
Interesting ports on w###.z#########.###-##.dsl.*.net (###.###.##.##):
Port State Protocol Service
23 open tcp telnet
80 open tcp http
Nmap run completed -- 1 IP address (1 host up) scanned in 2 seconds
-------------------------------------------------------------------------
# nmap -sU ###.###.##.##
Starting nmap V. 2.3BETA14 by
fyodor@insecure.org (
www.insecure.org/nmap/ )
Interesting ports on w###.z#########.###-##.dsl.*.net (###.###.##.##):
Port State Protocol Service
53 open udp domain
67 open udp bootps
68 open udp bootpc
161 open udp snmp
520 open udp route
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds
-------------------------------------------------------------------------
在这里我们是通过telnet,http和snmp来论述这个漏洞。这篇文章里忽略了Netopia提供的配置路由器的win32应用程序管理接口(可能是通过telnet,http或snmp)。
telnet:
假设 victim.dsl.*.net 是一个没有密码的路由器。
$ telnet victim.dsl.*.net
你将看到一个漂亮的文本模式接口:
-------------------------------------------------------------------------
Netopia R7100-C v4.3.1
Easy Setup...
WAN Configuration...
System Configuration...
Utilities & Diagnostics...
Statistics & Logs...
Quick Menus...
Quick View...
Return/Enter goes to Easy Setup -- minimal configuration.
You always start from this main screen.
-------------------------------------------------------------------------
从这个屏幕上我们就能看出我们能够配置路由器那些配置。我们可以非常直接的关闭这个路由器,或者添加防火墙规则来阻止某些种类的交换。而后,一个攻击者能设置一个密码,防止受害人修正错误。恢复被破坏的路由的第一步是阅读密码恢复过程,从新设置这个路由器到他的最初没有密码状态。
我们没有研究局域网没有密码的R7100其它的影响,就好像改变internet连接方向从而导致使用局域网内的一个主机攻击网内另一台主机。一个没有密码的R7100可能是局域网内主机的一大威胁。我们没有尝试,但是cracker们很可能会从新配置这个路由器从定向这个网络。
没有密码的R7100是internet内的所有主机的一个威胁,下列菜单选项:
----------------------------------------------------------------------------
Utilities & Diagnostics
Ping...
Trace Route...
Telnet...
Disconnect Telnet Console Session...
Trivial File Transfer Protocol (TFTP)...
Revert to Factory Defaults...
Restart System...
Send ICMP Echo Requests to a network host.
------------------------------------------------------------------------
能够过滤连接(限制,就好像只能telnet到23端口)。他还能够以最大到 1600 byte大小且每秒一次的速率发送包。单独一个路由器的危害是非常小的,但是4个路由器同时操作就能够淹没掉一个56K拨号上网的带宽。350个具有这种漏洞的路由器,在一些自动攻击的软件控制下,可以集中4.5M的ICMP包发向一个目标。虽然这个就是完全的限制TCPl连接启动在一个T-1或者SDSL线路上,但是这个却是一个大的站点最讨厌的。
R7100的日志系统记录telnet通信和其他事件可以帮助你捕获那些人做了什么,
----------------------------------------------------------------------------
Device Event History
Current Date -- 3/4/00 02:20:51 PM
-Date-----Time-----Event------------------------------------------------------
----------------------------------SCROLL UP-----------------------------------
01/28/00 12:20:36 Telnet connection down, address 216.112.32.84
01/28/00 12:16:12 Telnet connection down, address 216.112.32.84
01/28/00 12:15:41 Telnet connection up, address 216.112.32.84
01/28/00 12:15:21 Telnet connection up, address 216.112.32.84
01/28/00 11:18:13 * IP address server configuration error; server disabled
01/28/00 11:18:13 --BOOT: Cold start v4.3.1 ---------------------------------
01/26/00 18:33:47 * IP address server configuration error; server disabled
01/26/00 18:33:47 --BOOT: Warm start v4.3.1 ---------------------------------
01/26/00 18:32:35 IP address server initialization complete
01/26/00 18:32:35 --BOOT: Cold start v4.3.1 ---------------------------------
11/15/99 11:29:10 IP address server initialization complete
11/15/99 11:29:10 BOOT: Reverted to default configuration
11/15/99 11:29:10 --BOOT: Warm start v4.3.1 ---------------------------------
---------------------------------SCROLL DOWN----------------------------------
Clear History...
Return/Enter on event item for details or SCROLL [UP/DOWN] item for scrolling
------------------------------------------------------------------------------------------
无论怎样,一个攻击者都能够清除路由器的记录并且停止记录连接情况。R7100已经有了通过系统日志设备传送日志文件到一个远程服务器的选项了。如果你拥有一个R7100并且重视你的系统日志,激活这个选项吧。
------------------------------------------------------------------------------------------
Logging Configuration
WAN Event Log Options
Log Boot and Errors: Yes
Log Line Specific: Yes
Log Connections: Yes
Log PPP, DHCP, CNA: Yes
Log IP and IPX: Yes
Syslog Parameters
Syslog Enabled: No
Hostname or IP Address:
Facility... Local 0
Return/Enter accepts * Tab toggles * ESC cancels.
-------------------------------------------------------------------------------------
http:
每一个Netopia R系列路由器都有一个web页。连接到netopia 路由器的80端口上,你将s 看到一些像这个页似的东西。虽然http接口比telnet接口功能少的多,但是http在R系列路由器大规模泛滥的今天是比不缺少的:通过http扫描可以找到netopia路由器(还可做其他更多事情)。发送一个/DevEvtLog请求,他还可能告诉你这个路由器是否有密码。不仅http比telnet端口扫描更直接,而且路由器还不会有日志。
在80端口上自动检测是非常广泛的。这些不仅包括"robots"而且还有可以扫描IP地址段的http扫描器。两个众所周知的http扫描器是 Netcraft web server audit, and the operation that creates Domaingo's proprietary marketing database。
snmp:
默认的Netopia 路由器接受使用公共字符串"public"的SNMP GET请求。这个能够使外来者查看路由器的网络静态用法规则。使用就好像Crictet这种工具,每一个人都能够看某个时间段内通过这个路由器的来往的过客。通过SNMP,这个路由器还可提供一个连接到这个局域网内的IP地址和MAC地址列表。
附录 B: 网络认证
实验中的技术:
找到一个路由器并且估计没有密码的可能性,我们完成一个internet认证。下面是他的一些步骤:
1.从ftp.arin.net获得一个分配网络netblocks的列表。使用grep去连接netblocks并且反向DNS查询 nameservers1.*.net
2.使用jdresolve (
http://www.jdrowell.com/Linux/Projects/jdresolve/)去寻找 *.*.*.1在可能的netblocks。保留netblocks中返回一个名字类似*.dsl.*net的部分。
3.推测路由器IP空间间隔,使用nmap -sP(ping scan)扫描9280可能正在工作的网络主机。
4.使用http扫描扫描3240个主机GET /鉴别是否为Netopia routers
5.使用http扫描扫描590个主机GET /DevEvtLog 判断路由器是否为空。
所有这些步骤都是在一台使用56k modem 拨号连接到网络上的计算机上完成的。 所有这些扫描总共用了不到2个小时。没有任何的隐藏的扫描,就像使用多台机器或者任何形式的随机遍历。
结果:
在这4个步骤中我们发现590个 *.net 使用Netopia 路由器的用户。在第5步就确定了350个路由器没有密码。就像许多DSL服务商(和许多56k拨号服务商),*.net 按照地理编址的地址被DNS反向查询。反向查询一个dsl线路的名字位于 aaa.bbb.ccc.ddd 位于某某城市(city)就会有想这样一些东西,wddd.zaaabbbccc.city.dsl.*.net这些城市像like nyc-ny, tuc-az or mia-fl。我们发现下面这些:
City Routers (% of total) Vulnerable (% in city)
sjc-ca 162 (27%) 103 64%
nyc-ny 121 (21%) 78 64%
chi-il 84 (14%) 52 62%
lax-ca 66 (11%) 33 50% (*)
bos-ma 38 (6%) 26 68%
was-dc 25 (4%) 19 76%
det-mi 3 3 100%
san-ca 1 1 100%
phl-pa 1 0%
uncodable 90 (15%) 35 38% (**)
(*) >90% statistical significance
(**) >99% statistical significance
如果反向查询失败则路由器是uncodable的,或者反向查询名字不是从一个普通的*.net DSL地址返回的正确的名字。不必说,反向DNS地理编址能被用作处理统计地域性广告,缩小网络扫描范围,或者在一地区能自动进行集中攻击。