Chinaunix首页 | 论坛 | 博客
  • 博客访问: 398574
  • 博文数量: 77
  • 博客积分: 2031
  • 博客等级: 大尉
  • 技术积分: 855
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 19:54
文章分类

全部博文(77)

文章存档

2011年(1)

2009年(52)

2008年(24)

我的朋友

分类: 网络与安全

2009-07-17 18:21:06

Tcpreplay是网络安全中一种常用的工具,对于其报文重放的功能大家都非常清楚,但是对于其能够在重放过程中改写报文的内容的功能应用却不是 很多,如果能够熟练的应用Tcpreplay的报文改写功能就有可能使攻击者安全的规避的防火墙的检测手段。针对目前很多防火墙产品并不检测报文的载荷, 只是根据规则来阻止某个协议字段来达到防范的目的,这样通过Tcprepaly就可以改写敏感的报文字段,使其安全的通过防火墙的检测。

  

  重写二层头

  以上图为例,从Client端发送攻击流量到Server端,如果在Firewall上配置了策略,阻止了Client的MAC地址,Client端可以通过Tcprepaly将攻击报文的源MAC地址重写。具体使用如下:

./tcpreplay -i eth0 -k 00:02:02:03:04:05 /tmp/1.pcap

  参数-i用来指定发送的Primary接口,-k用来指定重写源MAC地址。通过-k指定一个Firewall的可信MAC地址,攻击流量就有可能瞒天过海。如果Firewall工作在transparent模式下,那么我们的攻击流量需要重放,目的MAC则需要改为Server的MAC,我们则可以通过命令行

./tcpreplay -i eth0 -I 00:01:02:03:04 -k 00:02:02:03:02:07 /tmp/1.pcap

  亦即通过添加参数-I来重写通过Primary端口流量的目的MAC。如果我们需要在Client的多个端口上将攻击流量重放,那么我们则可以 通过添加参数-j来指定Secondary接口,通过参数-J来重写Secondary接口流量的目的MAC,通过参数-K来重写Secondary端口 的源MAC,具体应用如下:

./tcpreplay -j eth1 -J 00:01:02:03:04 -K 00:02:02:03:02:07 /tmp/1.pcap

  同样,我们也可以综合运用以上各个参数将同一个攻击报文在Client的不同端口上以不同的目的MAC和源MAC发送,这样乱拳出击,可以充分考验Firewall的应用,具体使用如下:

./tcpreplay -i eth0 -I 00:01:01:02:02:03 -k 00:02:02:04:04:05 -j eth1 -J 00:01:02:03:04 -K 00:02:02:03:02:07 /tmp/1.pcap

  重写三层头

  仍旧以上面的TOPO为例,如果Firewall上配置了策略阻止了特定的IP地址,Client端就可以通过Tcpreplay来重写攻击报文的源与目的IP,以此来规避Firewall的规则,达到其攻击的效果。具体的应用如下:

./tcpreplay -e 1.1.1.1:2.2.2.2 -i eth1 /tmp/2.pcap

  通过参数-e来具体的指定攻击报文的源、目的IP,以此来修改成Firewall能够允许通过的IP地址以此来达到攻击的目的。这在修改三层头 中是最常用的一种方式。如果你获得了一个pcap报文,你想把它重放给某人同时又不愿意暴露自己的IP地址,那么可以利用参数-s来随机的选用IP地址, 具体使用如下:

./tcpreplay -s 11 -i eth1 /tmp/2.pcap

  其中参数-s决定了你随机选用的IP地址,不同的seed值会导致不用的pcap报文的IP地址。Tcprepaly在再深一点的应用是可以把报文的IP地址进行映射,类似于NAT的应用,可以将攻击报文的IP地址映射到不用的网段,具体应用如下:

./tcpreplay -N 10.0.0.0/8:11.0.0.0/8 -i eth1 /tmp/2.pcap

  其中参数-N来指定需要映射的网段。

  重写四层头

  Tcprepaly可以修改二、三层头来修改传输层面的信息,同样也可以修改四层头来修改session层面的信息,例如我们可以修改运行在8080端口上的HTTP的流量使其运行在80端口上,具体应用如下:

./tcpreplay -4 80:8080 -i eth1 /tmp/2.pcap

  我们通过参数-4来重新映射需要重放的报文的端口号。在修改报文头的过程中面临一个checksum的问题,因为许多网卡支持TCP/UDP /IP checksun的offloading,所以如果我们捕获的流量是同一个系统产生的,则checksum就会是错误的,这在以后的重放中就会产生问题, 所以我们需要通过参数-F来固定checksum,在重放的过程中编辑报文时不会改变checksum的值。具体应用如下:

./tcpreplay -4 80:8080 -i eth1 -F /tmp/2.pcap

  参数-F来固定checksum。

  小结

  灵活的运用tcpreplay的重写功能,相信会在网络的攻防检测给大家带来很大的帮助。

阅读(2112) | 评论(0) | 转发(0) |
0

上一篇:DMZ

下一篇:/etc/sysconfig/i18n文件详解

给主人留下些什么吧!~~