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村中少年原创文章,未经允许不得转载,博主链接这里。

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

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

相关文章

记录使用documents4j来将word文件转化为pdf文件

本文记录使用documents4j来将word文件转化为pdf文件 文章目录 程序实例maven导入代码实现程序结果 本文小结 程序实例 maven导入 <!--word转pdf--><dependency><groupId>com.documents4j</groupId><artifactId>documents4j-local</artifactI…

SQL面试题——奔驰SQL面试题 车辆在不同驾驶模式下的时间

SQL面试题——奔驰SQL面试题 我们的表大致如下 CREATE TABLE signal_log( vin STRING COMMENTvehicle frame id, signal_name STRING COMMENTfunction name, signal_value STRING COMMENT signal value , ts BIGINT COMMENTevent timestamp, dt STRING COMMENTformat yyyy-mm…

使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行(一)

import binascii import unicorn import capstonedef printArm32Regs(mu):for i in range(66,78):print("R%d,value:%x"%(i-66,mu.reg_read(i)))def testhumb():CODE b\x1C\x00\x0A\x46\x1E\x00"""MOV R3, R0 的机器码&#xff1a;0x1C 0x00&#xf…

WordPress 6.7 “Rollins”发布

每个 WordPress 版本都会向一位在音乐界留下不可磨灭印记的艺术家致敬。WordPress 6.7 的代号为“Rollins”&#xff0c;旨在向传奇爵士萨克斯演奏家桑尼罗林斯致敬。罗林斯是爵士乐界最伟大的即兴演奏家和先驱之一&#xff0c;他以精湛的技术、创新精神和无畏的音乐表达方式影…

844.比较含退格的字符串

java用 O&#xff08;1&#xff09;空间这个方法&#xff0c;容易挺多bug的… O&#xff08;1&#xff09;空间 #&#xff1a;删除前一个字符 》 从后面开始判断&#xff08;这样可以用跳过的思想&#xff09;不能使用两次 i- - 来处理 # 的操作&#xff0c;会造成误删了前面…

WLAN消失或者已连接但是访问不了互联网

目录 1、WLAN已连接但是访问不了互联网 2、WLAN图标消失 今晚电脑突然连不上网了&#xff0c;重启试了好多种办法都没有用。 1、WLAN已连接但是访问不了互联网 这个的问题很多&#xff0c;建议直接网络重置&#xff0c;即将网络驱动全部删除&#xff0c;然后重新安装。 首先…

Linux源码阅读笔记-V4L2框架基础介绍

V4L2视频设备驱动基础 V4L2 是专门为 Linux 设备设计的整套视频框架&#xff08;其主要核心在 Linux 内核&#xff0c;相当于 Linux 操作系统上层的视频源捕获驱动框架&#xff09;。为上层访问系统底层的视频设备提供一个统一的标准接口。V4L2 驱动框架能够支持多种类型设备&…

C 语言 【模拟实现内存库函数】

1、memcpy memcpy函数是C/C语言中的一个用于内存复制的函数&#xff0c;声明在 string.h 中&#xff08;C是 cstring&#xff09;。其原型是&#xff1a; void * memcpy ( void * destination, const void * source, size_t num ); 其中&#xff0c;destination表示的是要拷贝…

【大数据学习 | flume】flume的概述与组件的介绍

1. flume概述 Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去&#xff0c;比如说送到HDFS、Hbase&#xff0c;简单来说flume就是收集日志的。 Flume两个版本区别&#xff1a; ​ 1&…

01:(手撸HAL+CubeMX)时钟篇

&#xff08;手撸HALCubeMX&#xff09;时钟篇 1、对SystemInit函数的分析2、使用HSI将总线时钟配置为最高频率3、使用HSE将总线时钟配置为最高频率4、使用Cube配置时钟树的参数5、对HAL_Init函数分析6、对系统定时器中断服务函数分析 有关时钟树和上电/复位的基础知识请参考“…

大数据新视界 -- 大数据大厂之 Impala 存储格式转换:从原理到实践,开启大数据性能优化星际之旅(下)(20/30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Spring Boot实现文件上传与OSS集成:从基础到应用

目录 前言1. 文件上传的基础实现1.1 前端文件上传请求1.2 后端文件接收与保存 2. 集成第三方OSS服务2.1 准备工作2.2 编写OSS集成代码2.3 修改Controller实现文件上传至OSS 3. 文件上传的扩展&#xff1a;多文件上传与权限控制结语 前言 随着互联网应用的快速发展&#xff0c;…

微服务各组件整合

nacos 第一步&#xff0c;引入依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency> 第二步&#xff0c;增加配置 spring:application:name: …

机器学习总结

机器学习按照模型类型分为监督学习模型&#xff0c;无监督学习模型和概率模型三大类&#xff1a; 下图是机器学习笔记思维导图&#xff0c;&#xff1a; 一.什么是机器学习 从本质上讲&#xff0c;可以认为机器学习就是在数据中寻找一种合适的函数来描述输入与输出之间的关系。…

WEB攻防-通用漏洞SQL注入sqlmapOracleMongodbDB2等

SQL注入课程体系&#xff1a; 1、数据库注入-access mysql mssql oracle mongodb postgresql 2、数据类型注入-数字型 字符型 搜索型 加密型&#xff08;base64 json等&#xff09; 3、提交方式注入-get post cookie http头等 4、查询方式注入-查询 增加 删除 更新 堆叠等 …

三、损失函数

损失函数 前言一、分类问题的损失函数1.1 二分类损失函数1.1.1 数学定义1.1.2 函数解释&#xff1a;1.1.3 性质1.1.4 计算演示1.1.5 代码演示 1.2 多分类损失函数1.1.1 数学定义1.1.2 性质与特点1.1.3 计算演示1.1.4 代码演示 二、回归问题的损失函数2.1 MAE损失2.2 MSE损失2.3…

PNG图片批量压缩exe工具+功能纯净+不改变原始尺寸

小编最近有一篇png图片要批量压缩&#xff0c;大小都在5MB之上&#xff0c;在网上找了半天要么就是有广告&#xff0c;要么就是有毒&#xff0c;要么就是功能复杂&#xff0c;整的我心烦意乱。 于是我自己用python写了一个纯净工具&#xff0c;只能压缩png图片&#xff0c;没任…

测试工程师简历「精选篇」

【#测试工程师简历#】一份专业且引人注目的测试工程师简历&#xff0c;无疑是你敲开理想职位大门的金钥匙。那么&#xff0c;如何撰写一份既体现技术水平又彰显个人特色的简历呢&#xff1f;以下是幻主简历网整理的测试工程师简历「程序员篇」&#xff0c;欢迎大家阅读收藏&…

git下载慢下载不了?Git国内国外下载地址镜像,git安装视频教程

git安装下载的视频教程在这 3分钟完成git下载和安装&#xff0c;git国内外下载地址镜像&#xff0c;Windows为例_哔哩哔哩_bilibili 一、Git安装包国内和国外下载地址镜像 1.1国外官方下载地址 打开Git的官方网站&#xff1a;Git官网下载页面。在页面上选择对应的系统&…

专题十八_动态规划_斐波那契数列模型_路径问题_算法专题详细总结

目录 动态规划 动态规范五步走&#xff1a; 1. 第 N 个泰波那契数&#xff08;easy&#xff09; 解析&#xff1a; 1.状态表达式&#xff1a; 2.状态转移方程&#xff1a; 3.初始化&#xff1a; 4.填表顺序&#xff1a; 5.返回值 编写代码&#xff1a; 总结&#xff…