通过路由器绕过DDoS防御攻击web服务器实例DDoS
最近一直在学习研究DDOS攻击,大家知道所谓DDOS攻击俗称分布式拒绝服务,攻击者一般都是通过大量的傀儡主机向目标主机开启的端口发送大量的数据包,造成目标主机的数据拥塞,资源耗尽最后瘫痪宕机。在笔者测试中发现如果某些服务器在Internet接口处部署了防火墙对端口做了过滤,攻击往往很难达到预期的效果。对于这样的网站如何进行攻击测试呢?笔者在测试发现从路由器入手曲径通幽同样可以达到预期效果。下面笔者结合一次安全测试实例,解析这种攻击方法。
目标是一个日本站点,其网址是http://www.*.co.jp。经过扫描测试发现对方只开启了80端口,仅提供Web访问。通过对该WEB服务器的80端口实施DDOS攻击测试,效果很不理想。估计对方在外网接口部署了硬件防火墙,WEB服务器通过集群实施了负载均衡,因此攻击效果不明显。安全测试陷入僵局。
在命令行下ping网站的网址有回显,显示的IP地址为210.224.*.69,TTL为44,说不定是类linux服务器。笔者突发奇想,该服务器如此牛,Web后面的这家企业的规模一定不小,其网络中的主机一定比较多。既然如此应有比较专业的网络设备,比如大型的路由器、交换机什么的,说不定还是cisco的产品呢(谁让cisco这么牛呢)。另外,既然是大公司一定有他们自己的公网IP段。(图1)
基于上面的考虑,笔者决定通过IP Network Browser工具对范围为210.224.*.1~~~210.224.*.254的IP段进行扫描,看是否Cisco路由器或者交换机什么的网络设备。需要说明的是IP Network Browser是SolarWinds网管软件集中的一个工具,通过它可以扫描出某个IP段内的网络设备。
于是笔者运行IP Network Browser,输入210.224.*.1~~~210.224.*.254网段进行扫描,扫描的结果不出我所料,IP地址为210.224.*.1的设备是一个路由器,而且是cisco的,通过查看发现Community String的权限是private即完全权限。
这里不得不说说,cisco路由器的一个安全漏洞,如果是Private权限那就可以通过专门的工具下载下载路由器的配置文件。然后通过查看配置文件可以看到console及其vty的登陆密码,有了登陆密码就获得了该路由器的控制权。
利用SolarWinds工具包中的Config Download可以下载路由器的配置文件。在工具中输入该IP地址进行下载,很幸运下载成功。然后通过Config Viewer工具查看刚才下载下来的路由器配置文件,发现该路由器的特权密码加密了显示为:enable secret 5 $1$ugRE$xe/UCBrh2uCPYRYfr6nxn1。这是通过md5加密的破解的希望渺茫。继续往下查看,发现其console接口和vty也设置了密码,密码没有加密是明文cisco。利用社会工程学,说不定该路由器的特权密码也是cisoc呢!
打开命令提示符,输入命令telnet 210.224.*.1,连接路由器,成功连接,输入vty密码cisco成功进入用户模式。在命令提示符下输入en,回车后输入cisco竟然成功进入cisco路由器的特权模式!至此该cisco路由器的被完全控制了。安全期间,在路由器中输入命令show user,查看是否有其他人登录。结果显示没有其他的登录,我们可以进行进一步的安全测试。这里不得不说说,管理员的疏忽大意,缺乏安全意识。虽然特权密码采用了加密方式,但是竟然与console和vty密码一样,这样对特权密码加密有什么用呢?另外,密码设的比较简单,cisco这是很容易猜出来的。可见网络安全和木桶原理的类似,总是从最薄弱的环节中被突破。(图2)
既然控制了路由器,但是我们还不能确定该路由器就是这家公司的,以及它与web服务器的关系。通过在路由器上输入命令show ip interface brif,发现该路由器的几乎所有的servil(串口)接口都处于激活状态,而快速以太网接口只有fastEthernet 0/1处于激活状态,并且该接口的IP地址为210.224.*.1,子网掩码为255.255.255.0。因此我们基本可以断定,该路由器就是这家公司的,该公司的WEb服务器连接到了路由器的fastEthernet 0/1上。同时,我们也可以大概地推测出该公司的网络拓扑。应该是Internet后面有个硬件防火墙,在防火墙的后面连接了cisco路由器,而WEB服务器就连接在路由器上。通过路由器与外网相连。(图3)
既然控制了该公司与外网连接的唯一设备路由器,别说一个web服务器,该公司的所有的internet都被控制了。于是笔者就以web服务器为例进行了安全测试。在cisco路由器安全模式下输入如下命令:
cisco#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
cisco(config)#int
cisco(config)#interface fastEthernet 0/1
cisco(config-if)#access-list 101 deny ip host 210.224.*.69 any
cisco(config)#access-list 101 permit ip any any
上面的cisco命令是定义入站过滤,过滤掉所有针对目标地址为210.224.*.69的网络访问,这样就阻止或者隔绝了通过路由器的fastEthernet 0/1对IP地址为210.224.*.69(web服务器)的访问。(图4)
命令完成后我们在浏览器中输入http://www.*.co.jp访问,不出所料网页不能打开。至此我们过路由器曲径通幽,终结了该日本站点对其网站的访问中止。(图5)
由于是安全测试,我们恢复网站的访问,在cisco路由器上输入命令
cisco(config)#int fastEthernet 0/1
cisco(config)#no access-list 101 deny ip host 210.224.*.69 any
删除路由器对210.224.*.69的过滤,重新浏览该网站,可以访问了,至此我们的安全测试结束。(图6)
总结:笔者的这次安全测试,只是提供一个思路,从技术上分析演示通过路由器绕过DDOS防御体系,对web服务器实施攻击。总结这次安全测试,从安全的角度,我们应该思考的是:
1.必须重视路由器的安全,比如密码的设置、权限的设置。路由器是网络的灵魂,攻击者控制路由器比单纯控制一台服务器更危险,危害也更大,如果企业的核心路由器被控制,那么整个网络将沦陷。因此要为特权模式的进入设置强壮的密码。不要采用enable password设置密码,而要采用enable secret命令设置,并且要启用Service password-encryption,进行加密。
2.合理规划网络拓扑,本例中的网络结构就值得商榷。没有特殊需要,一般不要给路由器公网IP,把它暴露在公网上。控制对VTY的访问,如果不需要远程访问则禁止它。如果需要则一定要设置强壮的密码,由于VTY在网络的传输过程中没有加密,所以需要对其进行严格的控制。如:设置强壮的密码;控制连接的并发数目;采用访问列表严格控制访问的地址,实施入站过滤。本例中我们就是通过VTY远程登陆了路由器。