科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道巧用FREL实现检测分段网络攻击流量

巧用FREL实现检测分段网络攻击流量

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

本文介绍的FREL是一种报文分段工具,其是Fragrouter的升级版本,与Fragrouter所不同的是其能够运行在流量发起的机器上。

作者:IT专家网 来源:IT专家网 2008年9月19日

关键字: FREL 网络攻击 无线安全

  • 评论
  • 分享微博
  • 分享邮件

  网络安全一直以来就是一个热门话题,相信伴随着网络技术的发展这个话题也会无休止的延续下去。“道高一尺,魔高一丈”,针对现在越来越多的入侵检测产品,攻击者也在不断丰富自己攻击手段。介于目前大多数入侵检测都是针对单个报文的,攻击者将自己攻击信息分段隐藏在多个报文,甚至是多个乱序的分段报文中,以此来规避检测。本文介绍的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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章