TcpReplay使用方法

TcpReplay使用方法
【转】TcpReplay使用方法
2010-12-08 12:06
转载自 xiao___q
最终编辑 地狱的福音
第1章.    说明
本文档只适用于Tcpreplay3.x。
第2章.    Tcpreplay系列工具
2.1. 概述冠心病的护理计划
首先推荐一个网站:/,上面有Tcpreplay的安装包和很多文档,包括手册、man页和FAQ等。本文也是在参考这个网站的基础上,通过一些实验而得出的。
Tcpreplay是一系列工具的总称,包括tcpreplay、tcprewrite和tcpprep等工具,这也是Tcpreplay的第一个字母大写的原因。它用来在Unix系统或类Unix系统上重放网络包。这些包是由tcpdump、ethereal和wireshark等软件抓取到的,即pcap格式的数据包
正因为Tcpreplay有重放数据包的功能,所以它常被用来模拟IDS攻击等测试环境,被广泛地用来测试防火墙和IDS工具的安全性。
2.2. 功能
安装Tcpreplay包时,默认情况下是安装了如表1所示的这些工具的。表 1还给出了各个工具的功能。
in189
工具扭矩表
功能
tcpreplay
重发pcap文件中的数据包。
tcprewrite
改写pcap数据包的2-4层的头部信息,即MAC地址、IP地址和PORT等。
tcpprep
区分pcap数据包的流向,即区分出客户端和服务器
表 1 Tcpreplay系列工具的功能
2.3. 各工具的组合
从表1可以看出tcpreplay负责发送数据包,tcprewrite用来改写数据包,tcpprep用来区分客户端和服务器。
1)        因为数据包中的内容都是双向的(客户端->服务器,服务器->客户端),tcprewrite改写数据,tcpreplay发送数据包时都应该区分方向(即区分客户端和服务器),因此这两个工具一般是工作在tcpprep的基础上的。
2)        tcpreplay可以发送任意pcap数据包,如果它想改变发送内容,就必须先用tcprewrite来改写数据包,然后再发送改写后的数据包。
2.4. 补充说明
Tcpreplay2.x中的tcpreplay将区分客户端和服务器、改写数据包,发送数据包等功能都集成在一起。Tcpreplay3.x为了设计的简单和使用的方便性而做了上述的改进。
第3章.    Tcpreplay的安装、配置
3.1. 相关的准备
絮凝剂Tcpreplay要实现它的功能要用到其它一些库。
1)        libpcap库。libpcap库是推荐而且几乎是必须的。Tcpreplay用它来发送数据包。请下载安装libpcap<?xml:namespace prefix = st1 />0.7.2及以上版本。
2)        tcpdump。强烈推荐但不是必需的一个工具。Tcpreplay用它来解码数据包,而且我们也可以用它的抓包功能来配合Tcpreplay的使用。当然,ethereal等软件也可以实现这样的功能,但tcpdump无疑是性价比最高的。
3)        libnet库。不推荐的一个库。Tcpreplay也可用它来发送数据包,但由于libnet自身的bug比较多且已不再有人维护,Tcpreplay未来版本有可能取消对它的支持。
更详细的说明请参看/上的相关内容
3.2. 安装步骤
首先,下载安装包。Tcpreplay的源码安装包可以在/上下载到。
然后解压安装包。假设安装包名字为tcpreplay-3.3.,所在的目录为/urs/local/src,所用的操作系统为redhat9,解压安装包可以直接输入“tar –xzvf tcpreplay-3.3.”。
进入解压后的文件夹。输入指令“cd tcpreplay-3.3.0”。
遵循一般的软件安装步骤,如下所示。
$./configure        /* 检查系统的配置,自动生成Makefile */
$make                /* 编译、连接并安装Tcpreplay */
$make install      /* 安装Tcpreplay手册等 */
上面是最简化的安装。如果你还有其它安装和配置需求,请查看安装包中的INSTALL和README文档。
第4章.    Tcpreplay的使用
本部分将结合一个实例来讲解。先说明一下这个实例的运行环境和测试思路。本实例采用的是tcpreplay-3.3.0,运行在远程linux服务器上,用来发送http.pcap中的内容,同时在服务器上我用tcpdump来抓取tcpreplay发出的包;在本地windows中我用wireshark(ethereal的增强版本)来观察从服务器上下载过来的各种数据包(即tcpdump抓取到的包、tcprewrite修改后的包,这些包是通过ftp或ssh下载过来的)。
4.1. 指令风格简介
Tcpreplay系列工具的指令风格一致,都比较简洁。你可以键入“man tcpreplay”或“tcpreplay -h”类似指令来查得相关帮助。下面的讲述以tcpreplay为例。
指令的选项分简短的和完整两种形式。如查询版本的简短选项是“-V”,完整形式则是“--version”。
有的选项带有参数,而且两种选项的输入参数的形式不同。如以缓存文件选项为例,对于简短选项,形式是“-c pathname”;对于完整选项,形式是“--cachefile=pathname”。pathname是缓存文件的路径。
4.2. 区分客户端和服务器
输入如下指令。
$tcpprep --port --cachefile=cache_test.cache --pcap=http.pcap
tcpprep的详细使用请参看相关手册(如man手册)。
--port是指tcpprep用port-split模式来区分客户端和服务器。在这种模式下,所有目的端口<1024的,将被视作客户端->服务器的包,否则视为服务器->客户端的包。tcppgrep有auto,cidr,regex,port和mac等多种模式,各种模式的详细情况请查看相关手册(如man手册)。
--pcap=http.pcap是指tcpprep处理的是http.pcap这个文件。
--cachefile=cache_test.cache是指tcpgrep处理后的信息存放在cache_test.cahe这个文件中。这个文件在tcprewrite和tcpreplay中将用到。
整个指令的意思就是采用port-spllit模式来处理http.pcap文件(区分http.pcap中的客户端和
服务器),然后将处理结果存到cache_test.cache文件中。
4.3. 改写数据包的的内容
输入如下指令。
$tcprewrite --endpoints=192.168.0.1:192.168.0.2 --cachefile=cache_test.cache --infile=http.pcap --outfile=http_rewrite.pcap
俄国形式主义tcprewrite的详细使用请参看相关手册(如man手册)。
--endpoints=192.168.0.1:192.168.0.2是指将客户端ip修改为192.168.0.1,将服务器ip修改为192.168.88.0.2,注意3.x版本的Tcpreplay自动地将IP的校验和修改好。用wireshark查看http_rewrite.pcap可以得到这个修改结果。
--cachefile=cache_test.cache是指tcprewrite用tcpprep 上步的处理结果——cache_test.cache来区分方向。
--infile=http.pcap是指要处理的pcap文件是http.pcap。
--outfile=http_rewrite.pcap是指处理结果存在http_rewrite.pcap文件中。这个文件将是tcpreplay发送数据包的来源。
4.4. 发送数据包
输入如下指令。
张德英$tcpreplay --intf1=eth0 --intf2=eth0 -t --cachefile=cache_test.cache http_rewrite.pcap

本文发布于:2024-09-23 13:23:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/214740.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据包   安装   发送   服务器   区分
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议