wireshark或tshark提取tcpdump捕获的数据包(附python脚本自动解析文件后缀)

  tcpdump 捕获数据包后,保存的文件通常会被命名为 capture.pcap(或其他你指定的名称),并存储在你运行命令的当前目录中。以下是如何使用 tcpdump 进行流量捕获,并找到和使用捕获文件的详细步骤。

1. 使用 tcpdump 捕获流量

在终端中运行以下命令来捕获流量并将其保存到 capture.pcap 文件中:

sudo tcpdump -i ens33 -w capture.pcap
  • -i ens33: 指定你要监听的网络接口,例如 ens33。你需要根据你的网络接口名称进行调整。
  • -w capture.pcap: 将捕获的数据包写入 capture.pcap 文件中。
2. 停止捕获

你可以通过按 Ctrl+C 来停止捕获。

3. 找到捕获文件

tcpdump 会将捕获的数据包保存到你运行命令的当前目录中。你可以通过以下命令查看当前目录中的文件:

ls -l

你应该会看到一个名为 capture.pcap 的文件。

4. 使用 Wireshark 分析捕获文件

Wireshark 是一个强大的网络协议分析工具,可以帮助你分析捕获的数据包。以下是如何使用 Wireshark 打开并分析 capture.pcap 文件的步骤:

安装 Wireshark

如果你还没有安装 Wireshark,可以使用以下命令来安装:

sudo apt-get update
sudo apt-get install wireshark
5. 使用 tcpdump 直接查看捕获文件

如果你不想使用 Wireshark,也可以使用 tcpdump 直接查看捕获文件的内容:

tcpdump -r capture.pcap

        这将显示捕获文件中的数据包内容。你还可以使用 -n 选项来禁止 DNS 解析,使用 -X 选项来显示数据包的十六进制和 ASCII 表示:

tcpdump -n -X -r capture.pcap

使用Wireshark从捕获的文件数据包中提取文本或图像

        如果你通过 tcpdump 或类似工具捕获的数据包(如 capture.pcap)中包含文本文件或图像文件,你需要先将这些数据提取到具体文件中。可以使用 Wireshark 来进行提取。

使用 Wireshark 提取文件
  1. 打开 Wireshark 并加载捕获文件:

    wireshark capture.pcap
    
  2. 找到所需的数据包,右键点击数据包,在弹出菜单中选择 “Export Packet Bytes” 或 “Export Objects”

  3. 选择适当的文件类型(例如 HTTP 或 文件类型),然后将其保存到所需的文件位置。

 wireshark capture.pcap 这条命令的目的是使用 Wireshark 打开并分析一个名为 capture.pcap 的捕获文件。以下是详细的操作步骤和相关说明。

这条命令会执行以下操作:

  1. 启动 Wireshark:Wireshark 是网络协议分析工具,用于捕获和分析网络数据包。
  2. 加载捕获文件:Wireshark 会打开指定名为 capture.pcap 的文件。.pcap 是 Wireshark 使用的标准捕获文件格式,通常用于存储捕获的网络数据包。
Wireshark 界面介绍

启动 Wireshark 并加载 capture.pcap 后,你会看到 Wireshark 的主界面,通常包括以下几个主要部分:

  1. 工具栏:提供常用的操作按钮,如播放、停止、过滤、保存等。
  2. 数据包列表:显示捕获文件中的所有数据包,通常包括序号、时间戳、源地址、目标地址、协议和长度等信息。
  3. 数据包详情:显示选中的数据包的详细信息,包括各个协议层的信息。
  4. 数据包字节:显示选中的数据包的原始字节数据。
 分析捕获文件

在 Wireshark 中打开捕获文件后,你可以进行以下操作来分析数据包:

  1. 过滤数据包:在过滤器栏中输入表达式,例如 http 或 tcp.port == 80,以过滤特定的协议或端口。
  2. 查看数据包详情:双击数据包列表中的任意数据包,可以在数据包详情窗格中查看该数据包的详细信息。
  3. 查找特定数据:使用 “Edit” -> “Find Packet” 功能查找特定数据包。
  4. 统计信息:使用 “Statistics” 菜单中的各种选项来查看捕获文件的统计信息,例如协议层次结构、会话列表等。
保存和导出数据

Wireshark 允许你保存和导出分析结果:

  1. 保存文件:你可以保存当前捕获文件的修改版本,或者将分析结果保存为其他格式(如 .txt 或 .csv)。
  2. 导出数据包:你可以将选定的数据包导出为单独的捕获文件,或者导出为其他格式(如 .xml 或 .json)。
提取文件

如果你在捕获的数据包中发现了文件(如文本文件、图像文件等),可以使用 Wireshark 的 “Export Objects” 功能将这些文件提取出来:

  1. 右键点击数据包,选择 “Export Packet Bytes”。
  2. 选择适当的文件类型(如 HTTP 或 文件类型),然后将其保存到所需的文件位置。

wireshark capture.pcap 这一命令主要用于启动 Wireshark 的图形用户界面 (GUI),以便你可以可视化地分析网络数据包。Wireshark 作为一个网络协议分析工具,设计上就是为了提供直观的图形界面,以便用户能够方便地查看和分析捕获的数据包。

tshark命令行替代方案

        如果你需要在没有图形界面的环境(如服务器或远程访问时)分析 .pcap 文件,可以使用以下命令行工具替代 Wireshark:

a. tshark

Tshark 是 Wireshark 的命令行版本,功能强大,可以用来捕获或分析网络数据包。

  • 安装 tshark(如果已经安装 Wireshark,tshark 通常会自动安装):

    sudo apt-get install tshark
    
  • 使用 tshark 打开 .pcap 文件

    tshark -r capture.pcap
    

    这将输出捕获文件中的数据包信息,你可以使用不同的选项来过滤、格式化输出等。

  • 常用的 tshark 参数

    • 查看指定协议的数据包

      tshark -r capture.pcap -Y "http"
      
    • 只显示基础信息

      tshark -r capture.pcap -T fields -e frame.number -e ip.src -e ip.dst

使用 Tshark 提取文件

如果你需要在命令行环境中提取文件,可以使用 Tshark 来解析 .pcap 文件并将特定文件内容提取到标准输出或文件中。

a. 提取 HTTP 文件内容

如果你知道文件是通过 HTTP 传输的,可以使用以下命令来提取文件内容:

tshark -r capture.pcap -Y "http.request or http.response" -T fields -e http.file_data > output_file
  • -r capture.pcap:指定要读取的 .pcap 文件。
  • -Y "http.request or http.response":过滤条件,指定只处理 HTTP 请求或响应。
  • -T fields -e http.file_data:提取 HTTP 文件数据。
  • > output_file:将提取的内容保存到 output_file 中。
b. 提取特定数据包中的数据

如果你知道特定的数据包(例如,数据包的序号或流标识符),可以使用以下命令来提取数据:

tshark -r capture.pcap -R "frame.number == 123" -T fields -e data > output_file
  • -R "frame.number == 123":根据数据包序号过滤数据包。
  • -T fields -e data:提取数据包的原始数据。
  • > output_file:将提取的内容保存到 output_file 中。
保存提取的文件

提取的内容可以保存为文件,以便进一步分析或查看。你可以使用常见的文件操作命令(如 catechotee 等)来保存内容。

 使用 Tshark 提取 HTTP 文件示例

在使用 Tshark 提取 HTTP 文件时,你需要手动指定文件后缀,或者根据文件内容自动识别文件类型并添加后缀。

a. 提取 HTTP 文件内容

假设你要提取一个 HTTP 文件内容并保存为文件:

tshark -r capture.pcap -Y "http.request or http.response" -T fields -e http.file_data > output.html

在这个例子中,我们将提取的内容保存为 output.html。你可以根据文件实际类型(如 .jpg.txt 等)更改文件后缀。

b. 根据文件内容自动识别文件类型

如果你不确定文件类型,可以使用 file 命令来识别文件类型,或者使用 Perl、Python 等脚本来解析文件头并自动添加合适的后缀。

使用 file 命令
file -b --mime-type output.html

根据输出的 MIME 类型(如 text/htmlimage/jpeg 等),你可以决定文件的后缀。

使用脚本自动添加后缀

你可以编写一个简单的脚本来解析文件头并添加合适的后缀:

import sys
import mimetypesdef add_suffix(file_path):with open(file_path, 'rb') as f:file_header = f.read(1024)mime_type, _ = mimetypes.guess_type(None, file_header)if mime_type:file_name, _ = file_path.rsplit('.', 1)new_file_name = f"{file_name}.{mimetypes.guess_extension(mime_type)}"print(f"Renaming to: {new_file_name}")os.rename(file_path, new_file_name)if __name__ == "__main__":if len(sys.argv) != 2:print("Usage: python script.py <file_path>")else:file_path = sys.argv[1]add_suffix(file_path)

将上述脚本保存为 script.py,然后在终端中运行:

python script.py output.html

        这个脚本的输入文件名可以是任意后缀,甚至没有后缀的文件名,因为它通过读取文件的前 1024 字节来猜测文件的 MIME 类型,并根据 MIME 类型为其添加合适的后缀。如果 MIME 类型被成功猜测到,脚本会根据 MIME 类型生成一个新的文件名,添加合适的后缀。

注意

        当你使用 Wireshark 或 Tshark 从捕获的数据包中提取 HTTP 请求内容并保存为 .html 文件时,如果打开文件后直接跳转到百度的首页,这通常是因为提取的内容是一个完整的 HTML 页面,包含了 HTML、CSS、JavaScript 等内容,这些内容在被浏览器解析时会触发相应的请求和跳转。

详细解释

  1. 提取的 HTML 文件内容

    • 提取的 .html 文件实际上是一个完整的 HTML 页面,包含了 <html><head><body> 等标签。
    • 这个 HTML 页面可能包含了 <meta> 标签、JavaScript 代码等,这些内容会指示浏览器进行跳转或加载其他资源(如 CSS、图片、JavaScript 文件等)。
  2. 浏览器行为

    • 当你在浏览器中打开这个 .html 文件时,浏览器会解析 HTML 内容,并执行其中的 JavaScript 代码。
    • 如果页面中包含如 <meta http-equiv="refresh" content="0;url=http://www.baidu.com"> 这样的标签,或者 JavaScript 代码中有 window.location.href = "http://www.baidu.com"; 这样的语句,浏览器会根据这些指令跳转到指定的 URL(如百度的首页)。

示例

假设你提取的 HTML 文件内容如下:

<!DOCTYPE html>
<html>
<head><meta http-equiv="refresh" content="0;url=http://www.baidu.com"><title>Redirecting...</title>
</head>
<body><p>You are being redirected to <a href="http://www.baidu.com">Baidu</a>.</p>
</body>
</html>

在这种情况下,浏览器会根据 <meta http-equiv="refresh" content="0;url=http://www.baidu.com"> 标签立即跳转到 http://www.baidu.com

解决方法

如果你不希望浏览器跳转到百度的首页,而是想查看实际的 HTML 内容,可以尝试以下方法:

  1. 删除跳转代码

    • 打开提取的 .html 文件,删除包含跳转指令的 <meta> 标签或 JavaScript 代码。
  2. 使用文本编辑器查看

    • 使用文本编辑器(如 Notepad++、VS Code 等)打开 .html 文件,查看和编辑其中的内容。
  3. 使用命令行工具

    • 如果你只关心特定的内容,可以使用命令行工具(如 grepsedawk 等)提取和过滤你需要的内容。
  4. 禁用 JavaScript

    • 在浏览器中禁用 JavaScript(不同浏览器有不同的方法),或者使用浏览器的安全模式(如 Chrome 的隐身模式)打开 .html 文件,以防止 JavaScript 代码执行跳转。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/452297.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音快手提取COOKIE双参软件-修行者编程技术网

抖音快手提取COOKIE双参软件-修行者编程技术网 我们在软件开发的过程中首先要知道&#xff0c;什么是ck&#xff0c;什么是双参数 为什么会有ck&#xff0c;ck是否存在算法在其中 UI代码工程展示

【火山引擎】调用火山大模型的方法 | SDK安装 | 配置 | 客户端初始化 | 设置

豆包 (Doubao) 是字节跳动研发的大规模预训练语言模型。 目录 1 安装 2 配置访问凭证 3 客户端初始化 4 设置地域和访问域名 5 设置超时/重试次数 1 安装 通过pip安装PYTHON SDK。 pip install volcengine-python-sdk[ark] 2 配置访问凭证 获取 API Key 访问凭证具体步…

【NOIP提高组】一元三次方程求解

【NOIP提高组】一元三次方程求解 &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 有形如&#xff1a;ax3bx2cxd0 这样的一个一元三次方程。给出该方程中各项的系数(a&#xff0c;b&#xff0c;c&#xff0c;d均为实数)&#xff0c;并约定该方…

PyQt 入门教程(3)基础知识 | 3.1、使用QtDesigner创建.ui文件

文章目录 一、使用QtDesigner创建.ui文件1、创建.ui文件2、生成.py文件3、使用新生成的.py文件4、编辑新生成的.py文件 一、使用QtDesigner创建.ui文件 1、创建.ui文件 打开PyCharm&#xff0c;使用自定义外部工具QtDesigner创建mydialog.ui文件&#xff0c;如下&#xff1a; …

基于因果推理的强对流降水临近预报问题研究

我国地域辽阔&#xff0c;自然条件复杂&#xff0c;灾害性天气种类繁多&#xff0c;地区差异性大。雷雨大风、冰雹、短时强降水等强对流天气是造成经济损失、危害生命安全最严重的一类灾害性天气。由于强对流降水具有高强度、小空间尺度等特点&#xff0c;一直是气象预报领域的…

python爬虫技术实现酷我付费破解下载

python爬虫技术实现酷我付费破解下载 1.python编程环境 python解释器:pyhton3版本 代码编辑器:Vscode,PyCharm 2.实现爬虫程序过程 2.1浏览器访问网站的过程 在浏览器导航栏中输入域名并回车(在按下回车的那一瞬间浏览器向网站发送了一个http请求)当网站接收到请求后向…

【Vue】Vue3(1)

文章目录 1 Vue3简介2 Vue3带来了什么2.1 性能的提升2.2 源码的升级2.3 拥抱TypeScript2.4 新的特性 3 创建Vue3.0工程3.1 使用 vue-cli 创建3.2 使用 vite 创建3.3 main.js3.4 App.vue 4 常用 Composition API4.1 拉开序幕的setup4.1.1 setup函数的两种返回值4.1.2 注意点4.1.…

Python酷玩之旅_数据分析入门(matplotlib)

导览 前言matplotlib入门1. 简介1.1 Pairwise data1.2 Statistical distributions1.3 Gridded data1.4 Irregularly gridded data1.5 3D and volumetric data 2. 实践2.1 安装2.2 示例 结语系列回顾 前言 翻看日历&#xff0c;今年的日子已划到了2024年10月19日&#xff0c;今天…

【Linux-进程间通信】vscode使用通信引入匿名管道引入

一、新系统&#xff0c;新软件 1.新系统 哈喽宝子们&#xff0c;从今以后我们不再使用风靡一时的CentOS系统了&#xff0c;因为CentOS已经不在维护了&#xff0c;各大公司几乎也都从CentOS转入其他操作系统了&#xff1b;我们现在由原来的CentOS系统切换到最新的Ubuntu系统&a…

[LeetCode] 232. 用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQueue 类&#xff1a; void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头…

嵌入式开发中的 C 语言

目录 一、嵌入式与 C 语言的紧密关系 二、C 语言的特点与优势 &#xff08;二&#xff09;灵活的语法机制与直接访问硬件能力 &#xff08;三&#xff09;高效的运行效率 三、C 语言在嵌入式开发中的应用场景 &#xff08;一&#xff09;编译器与源代码转换 &#xff08;…

使用LSPatch+PlusNE修改手机软件

一、问题概述 国内使用一些软件&#xff0c;即使科学上网&#xff0c;打开都是网络错误&#xff0c;更换节点同样如此。 二、软件下载 通过官网或者正规商店(如Google play)下载并且安装。 是的&#xff0c;先要下载一个无法使用的版本&#xff0c;后续对其进行修改。 三、下…

Vulnhub打靶-matrix-breakout-2-morpheus

基本信息 靶机下载&#xff1a;https://pan.baidu.com/s/1kz6ei5hNomFK44p1QT0xzQ?pwdy5qh 提取码: y5qh 攻击机器&#xff1a;192.168.20.128&#xff08;Windows操作系统&#xff09; 靶机&#xff1a;192.168.20.0/24 目标&#xff1a;获取2个flagroot权限 具体流程 …

【AIGC】ChatGPT与人类理解力的共鸣:人机交互中的心智理论(ToM)探索

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;心智理论(Theory of Mind,ToM)心智理论在心理学与神经科学中的重要性心智理论对理解同理心、道德判断和社交技能的重要性结论 &#x1f4af;乌得勒支大学研究对ChatGPT-4…

深入 C 语言内存管理:优化策略与实践案例

目录 引言 C 语言内存管理机制概览 内存区域划分 内存对齐与填充 内存访问效率 内存管理优化策略 避免内存泄漏 减少内存碎片 优化结构体布局 提高内存访问效率 实践案例 案例一&#xff1a;智能指针实现 案例二&#xff1a;内存池实现 案例三&#xff1a;结构体…

PDT 数据集:首个基于无人机的高精密度树木病虫害目标检测数据集

2024-09-24&#xff0c;由中国山东计算机科学中心、北京大学等机构联合创建了Pests and Diseases Tree&#xff08;PDT&#xff09;数据集&#xff0c;目的解决农业领域中病虫害检测模型开发中专业数据集缺失的问题。通过集成公共数据和网络数据&#xff0c;进一步推出了Common…

MySQL程序介绍<一>

目录 MySQL程序简介 mysqld - MySQL 服务器 ​编辑 mysql - MySQL 命令⾏客⼾端 MySQL程序简介 1.MySQL安装完成通常会包含如下程序&#xff1a; Linux系统程序⼀般在 /usr/bin⽬录下&#xff0c;可以通过命令查看 windows系统⽬录&#xff1a; 你的安装路径\MySQL Server…

【LeetCode】123.买卖股票的最佳时间

清晰明了的思路是解决问题的至上法宝。如何把一个复杂的问题拆成简单的问题&#xff0c;就是我们需要考虑的。 1. 题目 2. 思想 这道题虽然是难题&#xff0c;但是思想比较简单。 题目要求说至多买卖两次&#xff0c;也就是说&#xff0c;也可以买卖一次&#xff0c;这种情况…

MySQL-16.DQL-分页查询

一.DQL-分页查询 -- 分页查询 -- 1. 从 起始索引0 开始查询员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 2.查询 第1页 员工数据&#xff0c;每页展示5条记录 select * from tb_emp limit 0,5; -- 3.查询 第2页 员工数据&#xff0c;每页展示5条记…

数据中台业务架构图

数据中台的业务架构是企业实现数据驱动决策和业务创新的关键支撑。它主要由数据源层、数据存储与处理层、数据服务层以及数据应用层组成。 数据源层涵盖了企业内部各个业务系统的数据&#xff0c;如 ERP、CRM 等&#xff0c;以及外部数据来源&#xff0c;如社交媒体、行业数据…