0.前言
记得一次CTF当中有一题是给了一个pcapng格式的流量包,flag好像在某个响应中的图片里。比较简单,后来也遇到过类似的情况,所以总结和记录一下使用Wireshark提取图片的方法。
提取的前提是HTTP协议,至于HTTPS的协议需要导入服务器私钥,多了私钥解密的过程。本篇比较简单,使用HTTP协议测试和记录。
提前准备工作:
1、准备Wireshark,Wireshark是长期霸榜sectools前三软件,是强有力的抓包和流量分析工具,真的很值得每个IT人士学习和掌握的。我使用的是Portable版,也就是免安装绿色便携版:WiresharkPortable64.exe;
2、找一个http的网站,比如:中国人事考试网人力资源和社会保障部人事考试中心是直接隶属于人力资源和社会保障部的事业单位。按照部赋予的职能,人事考试中心主要承担公务员录用考试、专业技术人员资格考试、公务员遴选考试、中央单位接收安置军转干部考试和事业单位公开招聘考试等五大类,50余项考试的命题、阅卷、考务组织、考试技术指导和考试服务等工作。http://www.cpta.com.cn/ 3、笔记本使用有线或wifi方式接入互联网。
4、获取流量。
打开Wireshark,选中对应网卡,点击以后就开始开始捕获分组;
这时候用浏览器打开刚才的网站页面,等待也面加载完毕后,点解左上角的方块停止抓包。
或者可以直接使用Wireshark打开已经捕获的流量包。
在流量过滤栏中输入http,用来过滤,只显示http流量。
这时候就过滤得到纯粹的http流量,然后就可以开始提取图片了。
1、方法一
第一个提取图片的方法是Wireshark提供的,他可以自动导出不同类型的图片。
点击文件---导出对象---HTTP。
选择image/gif,点击全部保存。这里有3个选项,经我测试,不管选哪一个都会把不同后缀名的图片全部导出。所以这里只需要任选一个类型导出到文件夹即可。
这个是最简单的办法。好像导出文件当中会混入个别其他格式的文件,不过图片文件应该是全在的。
2、方法二
第二个办法是也是通过Wireshark的工具对图片进行导出和预览。
找到HTTP 200 OK 的响应包,这里有2个,可以对比一下不同内容。
对比HTTP协议分析出的传输内容:
可以看到一个是text/css,一个是jpeg图片格式。右键点击JPEG File Interchange,选择显示分组字节。
在弹出窗口中可以看到显示的图片,如果不是,更改下面的显示为:图像。
在刚才菜单当中如果选择导出分组字节流相当于把图片另存为,直接保存下来。
这种办法好像获取到的图片不是最全的,只有某些图片会显示在HTTP协议下面。
3、方法三
选中刚才HTTP 200 OK响应包,右键单击选择追踪流。
HTTP流或TCP流都可以。
一般情况下会是上图样子,可以把Shwo data as 改为hex 转储。
找到对应的响应文件内容附近,再往下看到右边ASCII显示乱码的时候大概就是文件内容的开始。ASCII
通过搜索得知jpeg文件的开头和结尾分别是FF D8和FF D9。
通过查找可以找到字节位置。
中间内容还比较多,我只截取部分截图。然后通过选择,复制。然后使用UE或者Notepad++来编辑内容。把前面的8位和后面的ASCII显示内容删除。
Notepad++可以按alt来按列编辑,内容多的话可以按shift+alt+箭头再加up或down键快速翻页。
删除多余内容后,得到:
然后全选内容,复制,粘贴到winhex当中。
winhex提前建立一个1字节的空白文件,粘贴时提示扩展。粘贴板格式时选择ASCII Hex。
内容粘贴完毕后就可以另存为图片格式。2.jpeg
4、总结
第一种方法最简单最全面,应该不会有遗漏,第二种的话可以快速显示一张图片。
第三个办法是舍近求远,简单事情复杂化的办法。不过通过这个过程可以理解文件类型、文件开头结尾内容;使用winhex编辑文件等过程,也挺好玩的。