Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件
本文将介绍一种手动的轻量级的方式,还原HTTP/TLS协议中传输的文件,为流量数据包中的文件分析提供帮助。
如果捕获的数据包中存在非文本类文件,例如png,jpg等图片文件,或者word,Excel等office文件异或是其他类型的二进制文件或者编码文件。如果想要了解这些非文本文件中的内容,往往需要将这些文件提取出来,使用特定的软件进行打开。
如何从PCAP或者pcapng数据包中提取这些文件内容,在之前的文章中《自动还原pcap数据包中文件的几种方法》,这里,介绍了借助Wireshark本身的能力以及scapy等编程的方式还原数据包中的文件内容,针对一些常见协议的批量化处理,借助Wireshark已有的功能以及scapy编程都是不错的方式。但是此种方法存在如下问题:
- 需要Wireshark能够支持某些传输文件协议的文件导出,例如HTTP,SMB等。但是如果Wireshark不支持该种协议的解析怎么办?
- 如果数据包中的文件数据不完整怎么办?出现大量重传,丢包等情况。
- Wireshark协议解析出错怎么办?由于现实场景中,Wireshark很多时候会解析出错,导出的文件也不乏错误场景。
- scapy编程方式需要针对每一种协议,指定文件的开始和结束。对于一些scapy不能够解析的协议,则并不容易在程序中识别文件的开始和结束。况且编程的方式需要针对每一种文件传输情况编写代码,稍显繁琐。
如下将介绍针对HTTP以及TLS手动的轻量级还原文件的方法。
HTTP
wrieshark 本身提供了导出HTTP文件的能力,如下图1:

图1
如果该功能正常,则可以直接使用。如果该功能不正常,例如丢包或者数据不完整导致文件解析出现错误或者异常数据导致文件解析出错,则无法直接导出,这个时候本文所提供的方法就能派上用场。当然不仅如此,后文中所介绍的方法在一些文件显示方面比值wireshark也是存在优势的。
提取图片文件
HTTP传输图片的数据包下载链接见这里,对应第7号流,如下图2:

图2
首先拷贝文件传输的相关数据,由于HTTP协议为文本协议,因此cyberchef是支持对于HTTP协议头部的处理的,因此follow TCP dump,按照原始数据显示后,全选拷贝作为cyeberchef 的输入,关于cyberchef的详细介绍,详见我的专栏《Cyberchef 从入门到精通教程
》,这里,如下图3:
图3
RAW格式的显示内容为16进制的字符串,因此需要先将16进制字符串转换成为对应的16进制数值(即每两个字符构成一个十六进制的数值),同时去除HTTP的头部,则会得到最终的数据内容,如下图4:

图4
相关模块解释如下:
- from hex模块将字符串转换为对应的数值。
- 第一个strip http headers 去除http request的头部,第二个strip http header 去除http response的头部 。
-cyberchef提供的 render image模块可以直接解析并显示JPEG图像数据。
其对应的cyberchef的脚本为:
[{ "op": "From Hex","args": ["Auto"] },{ "op": "Strip HTTP headers","args": [] },{ "op": "Strip HTTP headers","args": [] },{ "op": "Render Image","args": ["Raw"] }
]
可以看到使用cyberchef 能够直接将16进制数据显示图像文件,这个是其优点之一。
gzip压缩
前一个实例中HTTP并没有使用压缩传输,这个例子讲述HTTP压缩传输的场景。关于Gzip的原理,详见我之前的文章《网络传输中的那些编码之-gzip编码》,这里。HTTP传输传使用gzip压缩数据包下载链接见这里。如下图5:

图5
同样的follow tcp dump,以raw格式显示之后全选作为cyberchef的输入,如下图6:

图6
同样的需要先将16进制字符串转换成为对应的16进制数值(即每两个字符构成一个十六进制的数值),去除HTTP的头部,然后解压缩,则会得到最终的数据内容,如下图7:

图7
如果对应的数据中使用了特殊的编码,则可以使用cyberchef中的encoding模块进行相应的编解码。关于cyberchef的更多使用方法介绍,详见我的专栏《Cyberchef 从入门到精通教程》,这里
gzip/chunk
前一个实例中HTTP并没有使用chunk传输,这个例子讲述HTTP chunk传输的场景。关于chunk传输的原理,详见我之前的文章《网络传输中的那些编码之-chunk传输编码》,这里。HTTP传输使用chunk和gzip数据包下载链接见这里。如下图8:

图8
同样的follow tcp dump,以raw格式显示之后全选作为cyberchef的输入,如下图9:

图9
将16进制字符串转换成为对应的16进制数值(即每两个字符构成一个十六进制的数值),去除HTTP的头部,然后chunk重组,解压缩,则会得到最终的数据内容,如下图10:

图10
其对应的cyberchef的脚本为
[{ "op": "From Hex","args": ["Auto"] },{ "op": "Strip HTTP headers","args": [] },{ "op": "Strip HTTP headers","args": [] },{ "op": "Dechunk HTTP response","args": [] },{ "op": "Gunzip","args": [] }
]
可以看到cyberchef对于HTTP协议的支持还是非常全面的,因此在HTTP协议处理方面使用cyberchef非常的便捷。
TLS
和HTTP协议不同的是,Wireshark并没有提供导出TLS证书的能力。在之前的文章中《提取pcap网络数据包中数字证书各属性字段信息》,这里,介绍了使用Wireshark lua插件提取流量中的数字证书,这个在批量提取的场景下,还是非常的便捷。但是有的时候只需要提取流量中少数的证书文件,这个时候可以采用手动的方式。
TLS数据包下载链接见这里,如下图11:

图11
追踪流会显示该流上所有的数据,由于我们只需要证书的数据,因此可以直接拷贝wireshark解析的字段。
以hex stream拷贝作为cyberchef的输入,如下图12:

图12
将其另存为证书文件,如下图13:

图13
上述方式还原证书文件还是非常的方便和快捷,适合还原少数证书的场景。
总的来说,通过cyberchef和wireshark相配合,能够提高分析pcap数据包的效率。
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。
相关文章:
Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件
本文将介绍一种手动的轻量级的方式,还原HTTP/TLS协议中传输的文件,为流量数据包中的文件分析提供帮助。 如果捕获的数据包中存在非文本类文件,例如png,jpg等图片文件,或者word,Excel等office文件异或是其他类型的二进…...
MYSQL- 展示事件信息 EVENTS 语句(十八)
13.7.5.18 SHOW EVENTS 语句 SHOW EVENTS[{FROM | IN} schema_name][LIKE pattern | WHERE expr]此语句显示有关事件管理器事件的信息,这些信息在第23.4节“使用事件调度器”中进行了讨论。它要求显示事件的数据库具有EVENT权限。 以最简单的形式,SHOW…...
如何在react中使用react-monaco-editor渲染出一个编辑器
一、效果展示 二、基于vite配置 1.首先安装react-monaco-editor和monaco-editor包 npm add react-monaco-editor npm i monaco-editor 2.其次创建一个单独的文件(此处是tsx、直接用app或者jsx也行) import { useState, useEffect } from react impo…...
【Linux】Github 仓库克隆速度慢/无法克隆的一种解决方法,利用 Gitee 克隆 Github 仓库
Github 经常由于 DNS 域名污染以及其他因素克隆不顺利。 一种办法是修改 hosts sudo gedit /etc/hosts加上一行 XXX.XXX.XXX.XXX github.comXXX 位置的 IP 可以通过网站查询 IP/服务器github.com的信息-站长工具 这种方法比较适合本身可以克隆,但是速度很慢的…...
HarmonyOS Next 组件或页面之间的所有通信(传参)方法总结
系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(上) 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器(下) 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上) 【…...
单片机学习笔记 1. 点亮一个LED灯
把基础的东西都过一下,用来学习记录一下。 目录 1、Keil工程 2、Keil实现代码 3、烧录程序 0、实现的功能 点亮一个LED灯 1、Keil工程 打开Keil,Project----New uVision Project,工程文件命名----OK 选择单片机类型AT89C52,和…...
Poetry 完整安装与项目环境搭建指南
Poetry 完整安装与项目环境搭建指南 1. Poetry 安装方式 1.1 pip 安装(推荐新手使用) # 使用 pip 安装 pip install poetry# 验证安装 poetry --version# 如果需要升级 pip install --upgrade poetry1.2 官方安装脚本 # Windows PowerShell (Invoke-…...
【MyBatis源码】MapperRegistry详解
🎮 作者主页:点击 🎁 完整专栏和代码:点击 🏡 博客主页:点击 文章目录 MapperRegistry 的作用核心字段解析整体工作流程addMapper方法MapperAnnotationBuilder#parse流程详解MapperAnnotationBuilder#parse…...
Java项目实战II基于Spring Boot的工作流程管理系统设计与实现(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在当今快节奏的商业环境中,…...
flink StreamGraph 构造flink任务
文章目录 背景主要步骤代码 背景 通常使用flink 提供的高级算子来编写flink 任务,对底层不是很了解,尤其是如何生成作业图的细节 下面通过构造一个有向无环图,来实际看一下 主要步骤 1.增加source 2.增加operator 3. 增加一条边࿰…...
【51单片机】LCD1602液晶显示屏
学习使用的开发板:STC89C52RC/LE52RC 编程软件:Keil5 烧录软件:stc-isp 开发板实图: 文章目录 LCD1602存储结构时序结构 编码 —— 显示字符、数字 LCD1602 LCD1602(Liquid Crystal Display)液晶显示屏是…...
理解 HTML5 Canvas 中逻辑像素与物理像素的关系
理解 HTML5 Canvas 中逻辑像素与物理像素的关系 在使用 HTML5 Canvas 时,开发者经常会遇到一个困惑:为什么鼠标的 offsetX 和 offsetY 和我绘制的图形坐标对不上?这通常是因为 Canvas 的逻辑像素大小和物理像素大小不一致。本文将详细解释这…...
7.揭秘C语言输入输出内幕:printf与scanf的深度剖析
揭秘C语言输入输出内幕:printf与scanf的深度剖析 C语言往期系列文章目录 往期回顾: VS 2022 社区版C语言的安装教程,不要再卡在下载0B/s啦C语言入门:解锁基础概念,动手实现首个C程序C语言概念之旅:解锁关…...
数据分析-系统认识数据分析
目录 数据分析的全貌 观测 实验 应用 数据分析的全貌 观测 实验 应用...
蓝桥杯介绍
赛事背景与历程 自2009年举办以来,蓝桥杯已经连续举行了多届,成为国内领先的信息技术赛事。2022年,蓝桥杯被教育部确定为2022—2025学年面向中小学生的全国性竞赛活动,并入选国家级A类学科竞赛。 参赛对象与组别 蓝桥杯的参赛对…...
鸿蒙加载网络图片并转换成PixelMap
鸿蒙加载网络图片并转换成PixelMap 参考文档 基于API12. 有一些图片功能需要使用 PixelMap 类型的参数,但是使用Image组件之类的时候无法获取到 PixelMap 类型数据。 因此只能是把图片下载下来然后加在并转换一下。 实现方式 一下封装了一个函数。使用的 rcp 模…...
hive搭建
1.准备环境 三台节点主机已安装hadoopmysql数据库 2.环境 2.1修改三台节点上hadoop的core-site.xml <!-- 配置 HDFS 允许代理任何主机和组 --> <property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value> </property&…...
51c扩散模型~合集1
我自己的原文哦~ https://blog.51cto.com/whaosoft/11541675 #Diffusion Forcing 无限生成视频,还能规划决策,扩散强制整合下一token预测与全序列扩散 当前,采用下一 token 预测范式的自回归大型语言模型已经风靡全球,同时互联…...
从零开始深度学习:全连接层、损失函数与梯度下降的详尽指南
引言 在深度学习的领域,全连接层、损失函数与梯度下降是三块重要的基石。如果你正在踏上深度学习的旅程,理解它们是迈向成功的第一步。这篇文章将从概念到代码、从基础到进阶,详细剖析这三个主题,帮助你从小白成长为能够解决实际…...
Liebherr利勃海尔 EDI 需求分析
Liebherr 使用 EDI 技术来提高业务流程的效率、降低错误率、加快数据交换速度,并优化与供应商、客户和其他合作伙伴之间的业务沟通。通过 EDI,Liebherr 实现了与全球交易伙伴的自动化数据交换,提升了供应链管理和订单处理的透明度。 Liebher…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
