Wireshark、Burpsuite、Charles三大抓包神器抓取https明文
一、wireshark抓取https报文
1.系统变量配置
通过设置系统变量SSLKEYLOGFILE
来达到解密https的效果,tls握手结束后,会将session key
存放到SSLKEYLOGFILE
定义的keylog中,wireshark通过加载keylog文件,将https解密成明文。
打开电脑属性-->高级系统设置-->环境变量,设置文件路径:
2.Pre-Master-Secret配置
在wireshark首选项中,选择TLS协议,编辑Pre-Master-Secret文件路径:
3.抓包实战
如下我们抓取到一条腾讯云官网的https报文,解密后如下,HTTP头部、请求方法(GET)都可以直观看到:
二、burpsuite抓取https报文
burpsuite在渗透领域占有一席之地,有拦截阻断、改包、爆破等各种强大功能,当然也包括作为中间人给client转发并解密的能力,burpsuite可通过此链接下载,解压密码为Rokas.Yang,需要安装JDK环境后使用。
1.配置代理监听器
Proxy --> Options --> Proxy Listeners,设置本地回环地址即可
浏览器设置代理为本地8080端口
那么所有通过浏览器访问的请求,都会先经过burpsuite
2.配置Intercept
Intercept顾名思义,用于拦截改包,如果只是为了解密https,不进行改包操作,将此选项置为off即可:
3.安装Burpsuite签发的CA证书
设置代理后,访问http://burp即可,burpsuite会将http://brup劫持,提供证书下载的web页面,下载内置证书到本地:
导入到受信任证书的列表即可:
4.开始抓包
一切都准备就绪后,浏览器开始访问,还是以腾讯云官网为例:
进入到HTTP hitory页面,这里会实时显示刚刚抓到的包,可以清晰看出,https解密后报文里面的内容为client向腾讯云服务器发送了一条HTTP GET请求,并得到了响应。
同时可以精细化过滤我们想要的请求,支持正则表达式:
Target模块中Site map是整理好的站点地图:
5.手机终端通过Burpsuite代理抓取明文
代理模块设置监听地址为本地内网IP:
手机通过同一局域网络,设置WIFI代理到本机IP:PORT即可
同理,手机端也需要安装burp CA证书,burp下载的证书为.der后缀格式,有些手机无法识别此格式文件,为此我转成了.cer格式,下载链接:https://data.linux-code.com/?dir=filelist/Software/CA,下载并安装burp-cacert.cer文件即可。
此时手机访问外网,会经过本地电脑的burpsuite再到路由器出去,所有流量都会被burpsuite截取并转发出去,包括手机APP。
我们抓取京东APP的数据为例:
https被成功解密成了明文。
三、charles抓取https报文
charles是一款小巧的代理抓包工具,同样具备颁发CA证书,解密https的功能,官方下载链接:https://www.charlesproxy.com/download/latest-release
1.代理配置
Proxy --> SSL Proxying Settings,如下图,打开SSL代理,并配置代理内容,所有主机端口
Proxy --> Proxy Settings设置代理端口,默认为8888,并且默认会代理本机
2.安装CA证书
浏览器设置代理到本机 8888端口后,访问http://chls.pro/ssl自动下载证书文件,pem格式,电脑可能无法识别,同理我转换了一份.crt格式的,在https://data.linux-code.com/?dir=filelist/Software/CA下载安装即可,导入方式和安装Burpsuite的CA证书一致,这里不再赘述。
3.抓包实战
接下来尝试抓取https请求,同样以腾讯云官网为例:
浏览器打开官网后,可以看到CA根证书就是我们导入的证书,并抓取到https明文:
Structure整理好了每个站点的访问结构,类似于sitemap的功能:
4.手机终端通过charles代理抓取明文
和burpsuite的配置逻辑一致,手机WIFI设置代理到本地电脑的charles监听端口(默认8888),证书安装亦是如此,不再赘述。
同理我们抓取下京东APP的https请求:
成功抓取到http明文请求及响应头。
四、总结
三款软件有抓取https明文的能力,但适用场景有所不一样:
- wireshark更适用于协议层面的分析定位,没有拦截、改包功能;
- burpsuite功能强大,功能基本覆盖了charles,两者都具备中间人转发能力,但仅仅停留在HTTP协议层面;
- charles小巧精简,不具备拦截改包能力,适用于分析终端设备网络场景。
同时上传了PDF版本: Wireshark、Burpsuite、Charles三大抓包神器抓取https明文.pdf