WireShark+Winhex:流量分析的好搭档

这篇文章你将学会的知识点有

1、进阶的wireshark的流量分析、解码、追踪流、导出文件 2、利用hackbar进行base64、URL编码转换 3、利用winhex还原流量中的文件 4、常见的图像文件和压缩文件的文件头标志,以及是否对多余定界符敏感

讲解

这里用最近的一道安恒杯有难度的流量分析题为例作为讲解,题目叫做“中国菜刀666”。题目流量包下载地址链接:https://pan.baidu.com/s/1c2WFQ3Q密码:v0e7。格式是pcapng封装,这里用wireshark打开:

一共2139个分组,提到中国菜刀,想到可能与web相关,首先试试在上方过滤器中输入http过滤以显示http分组:

流量分析

先随意点击一条报文,右键-追踪流-http流我们能看到大量红色和蓝色的报文解析,红色代表发出的,蓝色代表服务器回应的。我们能看到有一大串的base64_decode,后面都是字母数字,偶尔还夹杂着“**%2B”以及”%3D”,所以首先想到是URL**编码,先用hackbar的urldecode进行url解码:

这里消除掉一些“%”转义后变成了真正的base64编码,我们用base64_decode再进行转换:

这里有好多处类似的转换:

看到了最后的upload了麽?很有可能入侵过程中会上传小马,再用菜刀连,我们观察到http报文条目也不多,拿到报文,根据一般的入侵思路和顺序来反复按照上文提到的方法不断分析:

这里有一句话木马,验证了入侵思路的猜想,这也就是为什么我们过滤后的http报文有大量的1.php的名字,我们接着往上回溯,发现:

答案就在里面,提示需要password,我们来查看流量原始数据,看看对应的文件类型:

这里我们需要知道50 4b 03是 zip压缩文件的标志,一般来说,看到pk很有可能是zip压缩文件,除此之外你还需要知道的:

50 4B 0304:这是头文件标记 14 00:解压文件所需 pkware版本 00 00:全局方式位标记(有无加密) 08 00:压缩方式 07 76:最后修改文件时间 F2 48:最后修改文件日期

有兴趣的同学动手试试这是不是伪加密,当然后面提示的you need password暗示这里不是伪加密,下面是文件提取,有两种方案:

这里我们选择方法一,winhex的讲解在后面。我们顺利保存文件为hello.zip当我们打开时,就会发现必须要输入密码:

这里有一点需要注意,如果你细心的话会发现,保存后的文件如果用winhex打开,你会发现有3位定界符,这是wireshark自带的,为了区分各协议层之间的东西添加的,但是由于zip压缩文件对定界符不敏感,直接向后识别50 4B 03,所以即便有定界符也可以顺利打开文档:

我们这里只要把定界符摸清楚,不论方法一还是方法二都是轻车熟路,好啦,目前为止,这道流量分析才做完了一半,我们还需要知道解压缩的password是什么。回到报文中去,向上检索,会发现一串很大的报文:

这里就要思考了没这么一大长串是什么呢?视频?音频?我们需要牢记的是,jpg、jpeg图像文件都是以FFD8开头,FFD9结束。我们对应查看红色方框内的信息发现,传输的是图片对应的原始数据的16进制字符,也就是说,这里传输的是对应的十六进制字符,而不是图片!可见这道题的犀利。

我们要保证头脑清晰的是,我们只需用这些十六进制字符,就可以还原整张图片,所以我们找到对应数据层区域z2的值右键复制值就可以了。接下来,就要用到winhex来还原这样图片:选择新建一张5000字节左右的文件,复制时选择最后一个ASCII-HEX,选择OK:

这里注意的是,因为图片文件对定界符敏感,如果在其他情况下复制原始十六进制,要去掉wireshark设计的3位定界符,否则无法正常打开文件!直接将定界符设置为00 00 00 也可以访问,直接操作文件的十六进制码是winhex的精髓!保存文件为XXX.JPG后打开:

嫌麻烦的话用OCR工具直接识别里面的字符,用它来打开zip压缩文件即可

复习回顾

我们复习整个过程,我们注意到:

1、zip对定界符不敏感,图片对定界符敏感,只要弄明白这个,不论那种方法都可以还原文件。 2、Zip压缩包是真实存在的,而包含答案图片却是以对应的十六进制以text传输的。 3、题目是菜刀666,回溯整个流量,是先访问了1.php,最后服务器返回了拿站期间的一句话木马,图片是kali的,怪不得报文里面有kali相关的deb文件,然而这一切都是干扰报文,真正重要的还是那个zip以及password图片。 4、报文大多数是一次不能传输,分割为好多分片的,但事实上我们只要分析其中一个分片,wireshark会自动帮我们把其它分片组合到一起,所以我们能看到分片,但分析时是感觉不到的。

我们这次介绍的知识点:

1、怎样分析流量,追踪流。 2、怎样解码base64、url。 3、两种流量中提取文件的方法。 4、zip压缩包以及jpg图片文件的文件标识符,以及是否对定界符敏感。 5、用winhex还原保存流量中的文件。

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-02-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏祝威廉

如何使用MLSQL中的帮助指令学习模块的使用

MLSQL 已经实现了文章中描述的功能 如何实现语法的自解释(MLSQL易用性设计有感) 。

10740
来自专栏ChaMd5安全团队

DedeCMS的两个小trick

0x00 前言 昨天晚上做了一个神奇的梦,梦到了我高中时候晚自习在偷偷的看《黑客攻防技术宝典》,当年的事情无论是苦是乐,回忆起来总是感觉非常的美好。但是,现实就...

32790
来自专栏斑斓

框架 | spray-routing的核心流程

最近我们在一个项目上使用spray来发布restful service。 ? spray是个性能很好而且功能非常完整的service框架,包含很多组件,从底层h...

46360
来自专栏Golang语言社区

Go-简洁的并发

多核处理器越来越普及。有没有一种简单的办法,能够让我们写的软件释放多核的威力?是有的。随着Golang, Erlang, Scala等为并发设计的程序语言的兴起...

454120
来自专栏程序员的知识天地

3行代码让Python数据处理脚本获得4倍提速

Python是一门非常适合处理数据和自动化完成重复性工作的编程语言,我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Python就非常适合完成这...

12940
来自专栏机器之心

教程 | 只需15分钟,使用谷歌云平台运行Jupyter Notebook

选自Medium 机器之心编译 参与:路雪 近日,Amulya Aankul 在 Medium 上发表文章,描述他在谷歌云平台上运行 Jupyter Noteb...

58080
来自专栏MasiMaro 的技术博文

WinSock 完成端口模型

之前写了关于Winsock的重叠IO模型,按理来说重叠IO模型与之前的模型相比,它的socket即是非阻塞的,也是异步的,它基本上性能非常高,但是它主要的缺点在...

12420
来自专栏owent

对atbus的小数据包的优化

atbus是我按之前的思路写得服务器消息通信中间件,目标是简化服务器通信的流程,能够自动选择最优路线,自动的断线重连和通信通道维护。能够跨平台并且高效。

11020
来自专栏社区的朋友们

fetch api 浅谈

作为传说中的xhr替代品,现在fetch api已经被开始在一些前端项目中使用了,比如阿里的一些产品已经将jq的ajax模块切换到fetch下了。个人感觉fet...

65600
来自专栏NetCore

一个让人遗忘的角落—Exception(三)

最近有点事,把这个系列给落下了,给大家道个歉,这里还要感谢我的老婆,谢谢她一直对我的支持:) 系列回顾: 1.一个被人遗忘的角落—Exception(一) 2...

22060

扫码关注云+社区

领取腾讯云代金券