linux 下批量重放流量
2023-12-26 13:31:18
介绍
这里介绍的是,如何在 linux 环境下让IDP设备告警
这里linux下流量重放的工具是:tcpreplay
- 工具的作用:将PCAP包重新发送,用于性能或者功能测试
- 工具的使用与参数,参见:Linux命令 tcpreplay - 将PCAP包重新发送,用于性能或者功能测试_w3cschool
- 这里主要介绍如何 linux 下如何实现批量重放流量
以下介绍的所有方式,都是基于播放的数据包能抵达IDP监听的网卡
实操
linux方式1,2
方式1:直接调用tcpreplay播放当前目录下的所有数据包(以通配符*
实现这一目的)
方式2:编写shell脚本,遍历当前目录下的所有文件,把每次遍历的值作为变量交给 tcpreplay 重放
tcpreplay -i eth1 -M 1000 *.pcap # 方式1
for i in $(ls ./); do tcpreplay -i eth1 -M 1000 $i; done # 方式2
从下图可以看出,由于我攻击了两轮,因此告警重复了两次。
linux 方式3
上面两种方法简单粗放,如果面对大量数据包,我就必须知道当前播放状态等信息,因此需要编写python
- 第20行指明轮播次数(默认轮播一次)
- 第39行指明要测试的数据包所在路径
- 脚本会穿透指定路径下的所有文件
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import time
# import commands #python2
import subprocess # python3
def fileNameGet(path):
for root, dirs, files in os.walk(path):
for file in files:
# print(os.path.join(root,file),type(os.path.join(root,file)))
if os.path.join(root, file).endswith('.pcap') or os.path.join(root, file).endswith('.pcapng') or os.path.join(root, file).endswith('.cap'):
packetname_path.append(os.path.join(root, file))
def tcpreplayALL():
a = 0
print('当前共计数据包:{}个'.format(len(packetname_path)))
while a < 1: # 设置数据包轮播次数
j = 1
print('当前进行数据回放的第{}轮'.format(a))
for i in packetname_path:
try:
# status = commands.getstatusoutput('tcpreplay -i eth1 -M 10000 "{}"'.format(i)) #python2
status = subprocess.getstatusoutput('tcpreplay -i eth1 -M 1000 "{}"'.format(i)) # python3
time.sleep(0.02)
print('tcpreplay -i eth1 -M 1000 "{}" 当前轮数为:第{}轮,此轮数据包剩余{}个。'.format(i, a, len(packetname_path) - j))
# print(status)
j += 1
except:
print(i + ' 此轮数据包剩余{}个'.format(len(packetname_path) - 1))
j += 1
pass
a += 1
if __name__ == "__main__":
packet_path = r'bps-new/' # 路径自己改
packetname_path = []
fileNameGet(packet_path)
tcpreplayALL()
运行效果如下,成功触发告警
文章来源:https://blog.csdn.net/weixin_44288604/article/details/135219225
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!