前言
关于抓包的话题我之前也写过,这次主要针对HTTPS与手机抓包。最近这方面工作做的不少,一边记录一边分享。
正文
1 HTTPS抓包
对于HTTPS的抓包在之前我的文章中也写到过,关注微信公众号“燕幕自安”查看我的历史文章。主要是使用Fiddler4来实现的,上次说过的,这次就不说了。
不可否认,Fiddler4是在windows下是很友好、很好用的网络分析软件了,它主要针对HTTP(S)协议,不仅仅可以做报文获取,重发等功能也很好用。
这次要介绍的是另一个神器--Charles.
原理:所有针对HTTPS抓包的原理都是一样的,通过做中间代理人,可观察到明文报文,类似于中间人攻击(MITM),如果要理解这一点需要对HTTPS的密钥交换和证书有所了解。不赘述。
下面有请Charles出场。
姓名:Charles
用途:HTTP协议网络报文分析
(Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP andSSL / HTTPStraffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).)
适用平台:Windows、Mac、Linux
下载地址:https://www.charlesproxy.com/download/
下载完成,正确安装之后,试用版本需要在打开时等待10s,破解也很简单,(链接:http://pan.baidu.com/s/1qYTz48s 密码:t9el)将jar文件替换到charles安装目录下的lib目录中即可。
然后是配置安装根证书,为了让计算机信任我们的证书,我们需要将Charles提供的证书安装在计算机上,如下:
如果此时证书还是不被信任的,让不信任变成信任:打开IE浏览器—>工具—>Internet选项—>内容—>证书—>把中级证书颁发机构中的charles证书导出来—>再把导出来的证书导入到受信任的根证书颁发机构中。这样就ok了。
这样的环境只能抓取非SSL加密的报文,如果需要抓取SSL加密的链接,继续设置SSL。如下:
(写*:443是为了抓取去往所有站点的443端口数据)
现在就可以拦截所有HTTPS数据报文了。如下:
2 手机数据抓包
针对手机数据抓包,给出两个办法。
1. 使用上述Charles配置的环境,对手机报文抓取
2. 利用手机APPPacket Capture拦截收集数据报文
下面分别说这两种方案。
方案1
之前我们已经部署好了Charles抓包的环境,现在我们只要将手机的数据报文流经PC上的Charles即可。
为此,我们将电脑和手机链接在同一局域网内(使用同一wifi即可),然后查看计算机的ip地址,windows之下使用cmd命令ipconfig即可,然后在手机连接Wifi的界面设置代理,如下:
charles默认代理端口为8888,如果修改了此处对应修改。
安卓也有类似的操作界面,长按修改网络什么的。(暴露了自己的土豪手机hiahiahia)。
设置好以后需要在手机端安装证书,在浏览器里访问chls.pro/ssl 来自动下载安装证书(需要设置手机解锁密码)。
安卓手机到这一步就完成了,【重要】iphone手机需要在设置->通用->关于手机->证书信任设置里面打开该证书的开关。
此时,在手机里使用APP,在Charles里面就能看到访问的数据信息了,包括HTTPS。(初次连接的手机Charles会弹窗需要点一下Allow)
方案2
Packet Capture是很强大的一个网络分析APP,在我分析华为云备份的协议报文时,手机始终不信任Charles证书,所有报文均被加密,后来是该应用拯救了我。使用简便,不用证书等设置,下载打开即可使用。
APP在Google应用市场就有,不能翻墙的话,点这里下载:https://www.coolapk.com/apk/app.greyshirts.sslcapture
安装完成后界面如下:
点击绿色箭头进行全局捕获,点击带1那个绿色箭头可对某一应用分别捕获。
完成后,点击列表中的某次抓取查看详情。如下:
在该界面,点击右上角的下载按钮可以保存文件成pcap格式,通过PP助手等导出后可以在PC上的WireShark上打开分析。
后记
最近做了很多协议逆向的工作,感觉协议逆向要是和APP逆向结合起来才嗯那个威力更大,不然在协议中莫名其妙出现的密文或者不知名的字符串等,根本无法破解,需要与APP逆向结合,才能完整了解和模拟整个通信协议。
以上提到的软件(wireshark、charles、fiddler4、packet capture)均是我正在使用的,如果你有使用上的障碍或者有好的软件推荐,请在后台留言(留言请注明邮箱,我看到会回复邮件说明)与我取得联系。
如果觉得文章靠谱,也请转该文章给需要的人。
谢谢支持!
非经过本人同意,严禁转载。
如有问题,请关注公众号留言(注明邮箱),我看到会及时回复的。
网友评论
一种是显示乱码,修改右边显示的类型就可以 一种是本来数据就不是可见字符 这种就得分析hex了
我估计你抓到的可能是后者
可以导出来用wireshark看 更直观一点