一 前言
wireshark这个软件的可以说是大名鼎鼎,简单来说,就是网络包分析的软件,包括包的解析,流量分析,网络包交互分析等,而且是跨平台,如果要学习网络协议,分析网络流量,wireshark肯定是离不开的神器,tshark 可以看做wireshark的命令行版本,基本可以实现wireshark的大部分功能。
二 如何用wireshark中提取http图片
提取http中传输的文件或图片,一般有两种办法,一种是采用导出对象的方法,一种是单个包内容复制另存。
2.1 导出对象方式
菜单路径:文件-->导出对象-->HTTP ,会显示传输中的文件内容:
说明:
- 如上图,我们可以保存文件,预览文件或图片
- 可以根据文本和content type 方便过滤文件
tshark相关命令:
tshark -r httpexport.pcapng --export-objects http,./export/
2.2 复制流数据另存
既然pcap是包括所有的文件传输信息,那么我们可以查询到图片的具体传输报文,将其另存为对应格式文件即可,比如我们可以这样搜索:
http contains "slide2.png"
搜到包之后如下展示:
然后,选中这行,右键跟踪tcp流或http流:
显示如下界面:
需要注意几点:
- Show data 要设置为Hex转储方式。
- 找到数据边界,通过我们看http的返回头,结尾为0d0a 0d0a 即图中红色位置。
- 找到边界后复制下面蓝色内容,粘贴到UE等编辑器里面。
- 通过列编码模式,去掉前面的序号和后面的ASCII展示。
- 网上下载winhex软件,这个软件可以编辑二进制。
- 选择编辑->粘贴板数据->粘贴到新文件
- 把这个文件另存为222.png 如下图
三 https 私钥配置
3.1 https 配置私钥方式解密
https作为一个加密的通信协议,如果没有私钥或通讯中的保存文件,是没办法进行解码的,如果非对称加密的算法采用RSA方式,可以通过配置https私钥的方式进行https的解密 。
路径为:编辑->首选项->Protocols->TLS 点击RSA keys list中的Edit... 按钮, 在弹出的对话框中填写ip地址(即https服务器的ip),port(https的通讯端口一般为443),Protocol 我们这里面为http,Password(加密私钥的加密密码,如果部加密可以为空,Key File 来指定我们的私钥文件。
比如我的测试地址的私钥:
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCr7be/zFXRYeapyZEi6QK+HvB8wjb82Wu7gNfoTv/uj3I1lsVM
PPFpJ6WGAUse8xkZN/2/ODTws779KfwdQAiGgbbst9Vutwty7oVNZoB/5GWg6mu2
paq5m08+Okfs+hUVVR98Bcm5PIxP1YsUV6mS+tALcUZSKk6Yt3FIUtYKbQIDAQAB
AoGAflpCBG8DUtIEVxuP0nw0S80pKEcDamfPSQmzo0MLzCMX6FJZxWG0eXdtqkIh
FynJdEM19OY14f/3iM7mPgjlOd21DiwHJ2Pj3a+TqDVh9c2auQp38aI/t3UDU6ym
98ReXycf1pC71y2plURdsovFOVrmyISblFGKug0WpBI5DnECQQDwdrDtj+mQvqga
7rtswzLNXcqAmdhBpyTfKl/tBmimUWGEzXH6mfJchnLmMvqiF0uW2pNkPT8JzbJz
RguarTI3AkEAtwlyBThtNxQfyYZUBDAtTrsX+ZnC3iDTnsSo+uYzMy6ExvMqQCfN
99oirlAtDHcPJ79y2GS5gdcMyqkNQstmewJAR8wop8YAhydmKiR98cuWr5sBi8Rj
vbaaW8fbPHpdZMuHwo9VKO4uX1IFnJY8H4m1GCXLPHLND7BLR//yFwz/oQJBALZR
skGA80jpwr/6DbYeRwMlWbxGbNTV3fVH7wn8QwO4UonZrTw6ae94WRNIyZahAXeW
O89QhXfPve4gdhUShgECQBPHZcgQePzeDZf5/SS5iiv8ecFpyAd8Revqp/oN+PQS
I9Z999IqEcrCgpP7BzHnoRJwYExxVU3sSjXzpqw9DdE=
-----END RSA PRIVATE KEY-----
3.2 通过logfile方式解密
不是所有的https版本的数据, 以通过私钥的方式解密的,有的通信密钥无法通过私钥完整还原出当时的交互(中间的对称密钥保存在内存,每次交互都会改变)。如果我们可以在本机通过浏览器访问的网站,浏览器在和https服务器交互的时候,肯定有这次通话的密钥,我们保存了浏览器和https服务器交互的日志,通过这个日志wireshark也可以解密https的通讯包,如下配置:配置环境变量:SSLKEYLOGFILE 值为具体的保存日志的文件路径 如下:
关闭所有chrome浏览器,且要打开chrome浏览器的开发者模式(在浏览器三个点点进去后找到扩展程序的右上方开启),然后开始抓包访问https的网站,记录的key.log 大概内容如下:
然后同样和3.1同样解密的配置配置下pre master key的路径即可:
关闭后,可以看到解密的内容是下面这个样子:
注意没事还是关闭这个开发者模式,或者删除环境变量,因为key.log文件被黑客获取,再抓包,那就算访问https网站也部安全了,这是比较可怕的事情,包括你的淘宝的账号密码,有可能都会被轻易获取了。