扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
网络安全一直以来就是一个热门话题,相信伴随着网络技术的发展这个话题也会无休止的延续下去。“道高一尺,魔高一丈”,针对现在越来越多的入侵检测产品,攻击者也在不断丰富自己攻击手段。介于目前大多数入侵检测都是针对单个报文的,攻击者将自己攻击信息分段隐藏在多个报文,甚至是多个乱序的分段报文中,以此来规避检测。本文介绍的FREL就是这样一种报文分段工具,其是Fragrouter的升级版本,与Fragrouter所不同的是其能够运行在流量发起的机器上。
应用场景
如上图所示,FREL运行在Client机器上,FREL分段所有从Client到Server的流量,这些分段流量都会经过Firewall。如果Client端没有运行FREL,攻击流量流经Firewall会被检测到,分段以后是否能够检测到,就需要考验Firewall的实力了。
具体应用
FREL通过option –i来指定其监听的物理端口,例如-i eth1,从这个端口上侦听流量,捕获它,分段以后再转发出去。对这些分段后的报文FREL并不进行路由查找和ARP查找,它只需要知道目的MAC。如上面TOPO,目的MAC就是Firewall的MAC。目的MAC的指定可以通过option –r 。报文的分段方式是由你的攻击模式来确定的,例如你想要分成顺序的8字节分段,选择参数-F1,如果想要乱序的8字节分段,选择-F5,具体的参数选择可以使用FREL –help来查看。因为是要将frel和流量发起端运行在同一台机器上,所以需要选定参数-m2,这样我们就有了如下的命令行:frel –m2 –i eth1 –r firewallmacaddress –F1。
但是仅仅这样仍然不能分段报文,FREL并不是捕获所有流出侦听端口的报文,它只能捕获去往特定MAC地址的报文,前面我们用-r指定了分段需要发往的目的MAC,这里我们还需要通过option –s来告诉它需要捕获什么目的MAC的报文。在上面的TOPO中,目的MAC也是Firewall的MAC,因此frel需要提供一个参数选择-s firewallmacaddress。现在完整的frel命令就是
frel –m2 –i eth1 –r firewallmacaddress –s firewallmacaddress –F1
命令行参数的具体解释如下:
1.-m2:运行在流量始发端的机器上
2.-i eth1:捕获并且分段发送流出该接口的报文
3.-r firewallmacaddress:分段以后将报文发往这个地址
4.-s firewallmacaddress:捕获并分段目的MAC为该值的报文
5.-F1:根据需要的攻击手段选择不同的值。
如何防止报文复制
现在一切配置妥当之后,还是以上面的TOPO为例,我们从Client端ping Server端,同时在Client/Firewall接口上运行tcpdump来观察报文。我们仔细观察,我们会发现两部分报文:
1. 正常的ping包
2. 这些正常ping包的分段报文
为什么会出现这两部分报文呢?原因是因为当报文发出去的时候frel并没有停止最初的报文发送,它只是捕获了报文的复制品,将其分段后再重新发送,所以这就导致了报文被发送了两次,一次是完整版的,一次是分段版的。出现复制报文,这在正常的情况下这是不允许的,所以我们需要阻止源报文的发送。要做到阻止源报文的发送,我们需要在Client机器上利用静态路由和静态ARP,本身Client要连接Server,在Client上也需要一条到Firewall的默认路由,同时Firewall的ARP也需要存在在Client的cache里。现在我们在Client上添加一条到Server的静态路由,该路由的gateway指向一个不存在的地址而不是Firewall,这样当Client需要发送报文到Server时,其会将报文发向这个不存在的地址而不是发到Firewall。
这个不存在的地址应该与Client在同一个网段,不需要一台实际的机器,只需要一个IP地址即可。同时我们还需要为这个不存在的IP配置一个静态ARP,否则,Client在发送报文的时候会出现ARP请求失败,导致报文不能发送。当然这个ARP我们也配置一个不存在的ARP。在Client上我们需要配置如下命令:
1. Route add –host victim gw dummyip-on-clients-network
2. Arp –s dummyip-on-clients-network 00:01:02:03:04:05
这样当Client ping Server的时候,所有的ping包都会被送往这个不存在的IP和ARP,frel的命令行需要做一下修改,我们捕获发往这个不存在的MAC的报文,但是仍然将分段后的报文发往Firewall的MAC,这样最初的ping包就会因为找不到目的IP而丢失,分段后的报文就正常的发往了Firewall,经Firewall转发后送往Server。这样也就避免了复制的报文。Frel命令行如下:frel –m2 –F1 –i eth1 –s 00:01:02:03:04:05 –r firewallmacaddress。
小结
综上所述,frel的具体使用步骤如下:
1. Client上添加一条到Server的静态路由,网关为一个同网段的假的地址
Route add –host gw
2.给假网关添加一条假的ARP
Arp –s 00:01:02:03:04:05
3. Frel –m2 –s 00:01:02:03:04:05 –i eth1 –r attacktype
4. 从Client发送攻击流量到Server
5. Client上删除ARP,删除静态路由
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。