tcpreplay工具的安装与使用

一 tcpreplay介绍

tcpreplay是一种pcap包的重放工具, 包括(tcpprep、tcprewrite、tcpreplay和tcpbridge),它可以将用ethreal, wireshark工具抓下来的包原样或经过任意修改后重放回去. 它允许你对报文做任意的修改(主要是指对2层, 3层, 4层报文头), 指定重放报文的速度等, 这样tcpreplay就可以用来复现抓包的情景以定位bug, 以极快的速度重放从而实现压力测试。
官网: http://tcpreplay.appneta.com/


 二 tcpreplay安装

Ubuntu环境下安装tcpreplay工具

sudo apt update
sudo apt install tcpreplay

 查看安装是否成功:

tcpreplay -V

安装成功界面如下:

三 tcpreply工具的使用

直接执行以下命令重放.pcap文件

sudo tcpreplay -i s1-eth1 -t extract.pcap

-i 后面为重放端口,-t后面为需要重放的.pcap文件,其中 .pcap文件 是用wireshark或者tcpdump抓取的流量包。

重放成功如下图所示:

使用tcpprep工具修改.pcap文件中的源IP地址和目的IP地址

准备数据:

(1)被修改文件:extract.pcap
  (2)修改后文件名:extract.cach
  (4)源IP:10.0.1.1
(5)目的IP:10.0.2.2

生成一个中间文件

tcpprep -p --pcap=extract.pcap --cachefile=extract.cach

使用tcprewrite将中间文件另存为.pcap文件

tcprewrite -i extract.pcap -o output.pcap --cachefile=extract.cach -e 10.0.1.1:10.0.2.2

如果你改的IP会话顺序不正确,要注意端口的设置:
tcpprep --regex=\在port模式下,用端口号来区分server 和client.默认情况下,0—1024端口为server端所有.1024以外为client所有.当然.你也可以在自己/etc/services中划分服务器端口.

对比修改前和修改后:

使用receive.py来查看端口接受的流量情况

#!/usr/bin/env python3
import os
import sys


from scapy.all import TCP, get_if_list, sniff


def get_if():
    ifs=get_if_list()
    iface=None
    for i in get_if_list():
        if "eth0" in i:
            iface=i
            break;
    if not iface:
        print("Cannot find eth0 interface")
        exit(1)
    return iface


cnt=0

def handle_pkt(pkt):
    global cnt
    cnt += 1
    print("got a packet sum={}".format(cnt))
        # pkt.show2()
#        hexdump(pkt)
#        print "len(pkt) = ", len(pkt)
    sys.stdout.flush()


def main():
    ifaces = [i for i in os.listdir('/sys/class/net/') if 'eth' in i]
    iface = "s1-eth2"
    print("sniffing on %s" % iface)
    sys.stdout.flush()
    sniff(iface = iface,
          prn = lambda x: handle_pkt(x))



if __name__ == '__main__':
    main()

  • 37
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值