IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> ip mac地址匿名化 -> 正文阅读

[网络协议]ip mac地址匿名化

2022.6.27
流量分类需要进行ip和mac地址匿名化,因为这两项不可作为特征。
需要工具:kali系统的tcpreplay、wireshark的tshark

参考:从实践中学习wireshark分析——微信读书
tcpreplay介绍及安装——Linux系统
Windows安装tcpreplay及其他Linux软件——这里介绍了如何修改各层信息
看前三个应该就够了,补充一个tcprewrite批量修改pcap数据报文——解释tcprewrite参数


准备阶段

kali安装好了之后是这样的,我这里装的tcpreplay是4.4.0,装4.4.1会报错,猜想原因可能是库不匹配。
在这里插入图片描述
在root权限下输入tcpreplay -h,显示帮助就可以用了

在这里插入图片描述


1、利用tshark去掉原始pcap文件里的icmp协议数据包

平台:Win10

  1. 把要处理的pcap文件复制到wireshark安装目录下

  2. 以管理员权限运行cmd,进入wireshark安装目录

  3. 如果只有一个pcap,直接在cmd里输入
    tshark -r whatsapp.pcap -2 -R "not icmp" -w 9whatsapp.pcap

    解释一下参数:
    -r,读文件,whatsapp.pcap是要读取的文件名
    -2 -R ,后面接过滤器,和wireshark界面一样,"not icmp"是去掉icmp协议的数据包,这里要注意前面有个-2
    -w 输出文件,9whatsapp.pcap是要输出的文件名
    在这里插入图片描述

  4. 如果有多个pcap要处理,可以写个shell脚本:
    1. 在wireshark目录下新建一个txt文件,然后输入

    tshark -r Microsof.pcap -2 -R "not icmp" -w 9Microsof.pcap
    tshark -r MicrosoftRPCEndpointMapper.pcap -2 -R "not icmp" -w 9MicrosoftRPCEndpointMapper.pcap
    tshark -r MS-SQLserver.pcap -2 -R "not icmp" -w MSSQLserver.pcap
    ……根据自己需求补充就好
    

    这里发现tshark好像不能识别路径分隔符\,如果输入或者输出有分隔符的话会报错,所以之前要把需要处理的pcap都复制到wireshark目录下
    在这里插入图片描述
    2. 写完之后保存,然后重命名为run.bat,在cmd里面输入run就可以运行了

    在这里插入图片描述


2、利用tcpreplay重置IP和MAC地址

  1. 将上面处理后的pcap复制到kali虚拟机中的tcpreplay目录下(应该也可以复制到其他目录,没有tshark那么严格)

  2. 如果是处理一个pcap,以root权限输入

    tcpprep -a client -i test.pcap -o test1.cache
    tcprewrite --srcipmap=0.0.0.0:0.0.0.0 --dstipmap=0.0.0.0:0.0.0.0 --enet-dmac=00:00:00:00:00:00 --enet-smac=00:00:00:00:00:00  --endpoints=0.0.0.0:0.0.0.0 --cachefile=test1.cache --infile=test.pcap  --outfile=output.pcap -C
    
  3. 如果是处理多个pcap,新建一个run.sh,写入下面代码,然后保存,在root终端中运行sh run.sh

    #! /bin/bash
    tcpprep -a client -i Amazon.pcap -o test.cache  
    tcprewrite --srcipmap=0.0.0.0:0.0.0.0 --dstipmap=0.0.0.0:0.0.0.0 --enet-dmac=00:00:00:00:00:00 --enet-smac=00:00:00:00:00:00  --endpoints=0.0.0.0:0.0.0.0 --cachefile=test.cache --infile=Amazon.pcap  --outfile=/home/kali/Downloads/tcpreplay-4.4.0/0000/Amazon.pcap -C
    
    tcpprep -a client -i Cisco.pcap -o test.cache
    tcprewrite --srcipmap=0.0.0.0:0.0.0.0 --dstipmap=0.0.0.0:0.0.0.0 --enet-dmac=00:00:00:00:00:00 --enet-smac=00:00:00:00:00:00  --endpoints=0.0.0.0:0.0.0.0 --cachefile=test.cache --infile=Cisco.pcap  --outfile=/home/kali/Downloads/tcpreplay-4.4.0/0000/Cisco.pcap -C
    
    tcpprep -a client -i D-link.pcap -o test.cache
    tcprewrite --srcipmap=0.0.0.0:0.0.0.0 --dstipmap=0.0.0.0:0.0.0.0 --enet-dmac=00:00:00:00:00:00 --enet-smac=00:00:00:00:00:00  --endpoints=0.0.0.0:0.0.0.0 --cachefile=test.cache --infile=D-link.pcap  --outfile=/home/kali/Downloads/tcpreplay-4.4.0/0000/D-link.pcap -C
    
    tcpprep -a client -i facebook.pcap -o test.cache
    tcprewrite --srcipmap=0.0.0.0:0.0.0.0 --dstipmap=0.0.0.0:0.0.0.0 --enet-dmac=00:00:00:00:00:00 --enet-smac=00:00:00:00:00:00  --endpoints=0.0.0.0:0.0.0.0 --cachefile=test.cache --infile=facebook.pcap  --outfile=/home/kali/Downloads/tcpreplay-4.4.0/0000/facebook.pcap -C
    .......根据自己需求补充
    

    需要先用tcpprep将pcap处理为cache文件,再用tcpwrite处理cache文件

解释一下tcpprep用到的参数:更多参数解释参考这里
tcpprep -a client -i test.pcap -o test1.cache 将数据包分成客户端和服务器端

-a 参数的介绍(搬运自上面的参考链接)
在这里插入图片描述

  • -a Split traffic in Auto Mode 一般情况下都需要该参数,表示按模式自动/client分离的流量生成cache文件
  • -i <capfile>: Input capture file to process,要输入的pcap
  • -o <outputfile> :Output cache file name,要输出的pcap

tcprewrite就是改写pcap包里的报文头部,包括2层, 3层, 4层, 5-7层。

tcprewrite的参数:

|$ tcprewrite  --enet-smac=host_src_mac:client_src_mac #修改源端和目的端的源mac地址
|              --enet-dmac=host_dst_mac:client_dst_mac #修改源端和目的端的目的mac地址
|              --endpoints=host_dst_ip:client_dst_ip #修改源端和目的端的目的ip地址
|              --portmap=old_port1:new_port1, old_port2:new_port2 #修改源端和目的端的端口号(这个我没用)
|              -i input.pcap #输入pcap文件
|   	 	   -c input.cache #tcpprep划分的cache文件
| 			   -o out.pcap #输出pcap文件

该命令的输入参数是input.pcapinput.cache文件, 结果将另存为out.pcap文件。
该命令将所有input.pcap包里的主机包(由input.cache文件指定哪些包是主机包, 哪些包是客户端包)的源mac地址, 目的mac地址, 目的IP地址分别改为:
host_src_mac,
host_dst_mac
host_dst_ip。
客户端包源mac地址, 目的mac地址, 目的IP地址分别改为:
client_src_mac,
client_dst_mac,
client_dst_ip。
将主机包端口号由old_port1改为new_port1,
将服务器端端口号由old_port2改为new_port2。


解释一下
tcprewrite --srcipmap=0.0.0.0:0.0.0.0 --dstipmap=0.0.0.0:0.0.0.0 --enet-dmac=00:00:00:00:00:00 --enet-smac=00:00:00:00:00:00 --endpoints=0.0.0.0:0.0.0.0 --cachefile=test1.cache --infile=test.pcap --outfile=output.pcap -C
--srcipmap=0.0.0.0:0.0.0.0:两端的源ip都改为0.0.0.0
--dstipmap=0.0.0.0:0.0.0.0:两端的目的ip都改为0.0.0.0
--enet-dmac=00:00:00:00:00:00:两端的目的mac都改为00:00:00:00:00:00
--enet-smac:两端的源mac都改为00:00:00:00:00:00
--endpoints:将pcap文件中的所有客户端、服务器都改成这一对IP地址
--cachefile:之前处理好的cache
--infile:输入pcap
--outfile:输出pcap

这里是tcprewrite的-h
在这里插入图片描述
2022.6.29更新

1. Win10用powershell对文件批量改名

参考链接:

我的原始文件名是Amazon.pcap.TCP_3-0-87-74_80_192-168-123-19_57940.pcap因为文件名中有.pcap导致tcpprep无法处理。要修改为Amazon_TCP_3-0-87-74_80_192-168-123-19_57940.pcap (发现不处理也可以运行)

  1. 在开始菜单中打开Windows powershell ISE,以管理员权限运行
    在这里插入图片描述
  2. 输入下面的内容
    # 更改Powershell执行策略为 Remotesigned
    Set-ExecutionPolicy Remotesigned
    # 定义要改文件名称的文件夹路径
    $FolderPath = 'D:\work\Amazon-ALL'
    # 定义要重命名后的字符名称
    $Newname = 'Amazon_'
    # 定义现阶段有规律字符名称,类似.txt或者.mp4,或者需要替换的字符串内容
    $Oldname = 'Amazon.pcap.'
    # 进行批量替换操作
    dir $FolderPath -Include "*.*" -Recurse | ForEach-Object{Rename-Item $_.FullName $_.FullName.Replace($Oldname,$Newname)}
    # 执行完命令后,恢复Powershell执行策略为 Restricted
    Set-ExecutionPolicy Restricted
    
  3. 保存成.ps1文件后,以管理员权限运行powershell,输入set-executionpolicy remotesigned 修改执行策略,再点击绿色三角运行。在这里插入图片描述

2. kali下用tcpprep批量处理pcap文件

  1. 新建.sh 脚本
  2. 输入内容
    #!/bin/bash
    path="/home/kali/Downloads/tcpreplay-4.4.0/session/whatsapp/"
    cd $path
    find ./ -name '*.pcap' | while read i
    do
       echo $i
       tcpprep -a client -i $i -o /home/kali/Downloads/tcpreplay-4.4.0/session/whatsapp/test.cache 
       sleep 1s
       tcprewrite --srcipmap=0.0.0.0:0.0.0.0 --dstipmap=0.0.0.0:0.0.0.0 --enet-dmac=00:00:00:00:00:00 --enet-smac=00:00:00:00:00:00  --endpoints=0.0.0.0:0.0.0.0 --cachefile=/home/kali/Downloads/tcpreplay-4.4.0/session/whatsapp/test.cache --infile=$i  --outfile=/home/kali/Downloads/tcpreplay-4.4.0/0001/whatsapp/$i -C
    done
    

3. crgwin安装tcpreplay整理

参考:Windows安装tcpreplay及其他Linux软件

  1. flex-2.6.4 make报错
    configure.ac:59: error: required file 'build-aux/compile' not found
    configure.ac:59:   'automake --add-missing' can install 'compile'
    configure.ac:59: error: required file 'build-aux/config.guess' not found
    configure.ac:59:   'automake --add-missing' can install 'config.guess'
    configure.ac:59: error: required file 'build-aux/config.sub' not found
    configure.ac:59:   'automake --add-missing' can install 'config.sub'
    
    解决方案:
    ## 可能需要多执行几次此命令
    automake --add-missing
    
  2. configure : error : no acceptable C compiler found in $PATH
    打开cygwin安装包exe,安装gcc组件,参考Cygwin及Wget安装
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 11:09:04  更:2022-07-03 11:09:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 23:21:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码