0


如何通过Charles+BurpSuite的配合在PC端抓到手机包

渗透测试工作记录


文章目录


前言

在我日常的渗透测试工作中,用的最多的软件就是Burp Suite,我觉得它功能多样,界面清晰简洁,即使是之前完全没接触过这类软件的人也可以很快上手,所以实际上在刚入行的时候我根本就没再去学去用什么其他的软件了。但随着测试的系统越来越多,我发现有时会遇到在Burp Suite中抓不到包的问题!我现在也不知道这种情况产生的原因,只知道在burp里抓不到包就无法进行常规的测试操作,令我这个菜鸟感到非常着急(唉~

目前遇到过两种抓不到包的情况:一是微信小程序,二是测试APP的时候在进入APP和登录时都可以正常抓到包,但偏偏进了需要测试的功能点之后就抓不到包了。

听大佬说,要用“全局代理”,要用“花瓶”……虽然不是很懂但是去安装了Charles并学了一下怎么使用,然后顺利在burp中抓到了包,在这里记录一下以备未来如果忘记了可以翻一翻。

本文仅简单记录了在一次渗透测试工作中,通过借助Charles来解决burp中抓不到包的问题的配置步骤,不涉及Charles的具体功能介绍和如何安装等内容。


一、Charles是什么?

Charles 是在PC端常用的网络包截取工具,Charles 通过将自己设置成系统的网络访问代理服务器,使所有的网络访问都要经过它,从而实现了对网络包的截取和分析。
有关Charles比较全面的介绍和使用方法可以参考别人的这篇文章:https://www.jianshu.com/p/dd6a24f0c73d
PS:看了Charles的使用方法之后,我感觉Charles好像和burp的功能差不多啊,但是界面和操作方法似乎不如burp来的简洁,所以才没有burp那么出名吗?

二、实现步骤(以Mac端抓包IOS微信小程序为例)

1.在Charles下设置代理的端口

点击Charles窗口内上部工具栏图标的最后一个(Settings),点击弹出菜单中的Proxy Settings,填入代理端口 8888(或者自定义,但不能和系统已占用端口冲突),并且勾上“Support HTTP/2”和 “Enable transparent HTTP proxying”,点击右下角OK即可。
找到设置代理端口的地方
设置代理端口为8888

2.分别在PC端和手机端安装证书

先给PC端安装证书,点击位于屏幕顶端的菜单栏的Help,找到SSL Proxying,选择Install Charles Root Certificate按照提示就可以下载安装上。接下来是要把证书设置成信任(这很关键!方法在下面)。
找到安装证书的选项
安装PC端证书之后,在Mac的“钥匙串访问”(安装证书时“钥匙串访问”应该会自己弹出来)的左侧点击“系统”,从显示已安装证书的列表里找到Charles的证书,在证书位置点击鼠标右键,在出现的菜单中点击“显示简介”,展开窗口中的“信任”一栏,设置为“始终信任”。
在PC端将证书设置为始终信任
再给手机端安装证书,步骤如下:
1.还是点击位于屏幕顶端的菜单栏中的Help并找到SSL Proxying,这一次选择有on a Mobile Device的这一项。
2.点击后会弹出窗口提示设置的方法,按照提示在手机端将代理设置为电脑的ip:8888,这里要先确保手机和电脑连接同一个无线网络。然后在手机的浏览器打开http://chls.pro/ssl,按提示下载证书即可。
3.下载证书之后同样很关键的步骤就是要设置证书为信任。在手机的设置->通用->关于本机->(滑到最下面找到)证书信任设置->找到并打开Charles Proxy CA的开关。选择在手机端安装证书手机证书设置提示
手机端设置代理
手机下载证书提示弹窗
手机端打开证书信任

3.关闭macOS代理,打开外部代理

点击位于屏幕最上方菜单栏右侧的小花瓶logo,在下拉菜单中去掉macOS Proxy的勾选,再勾选上External Proxy Servers,如下图1。如果这里勾选了macOS Proxy,就是打开了本机的本地全局代理,相当于手动进行了操作:网络偏好设置->高级->代理->勾选上本地的http和https代理,如下图2。因为这里我是想在PC端抓手机端的包,所以没必要打开电脑的本地代理,但后面是要将Charles作为手机端的代理,再由Charles将包转发给burp,所以对于Charles来说,burp就成了一个“External Proxy Server”。(个人理解不一定对
图1 :取消勾选本地代理并勾选外部代理
图2:打开macOSProxy后会打开本地代理
PS:上图的本机http、https代理实际上在这里是不需要勾选的哈!

4.配置外部代理

点击屏幕顶端的Charles菜单栏中的Proxy,从下拉菜单中找到External Proxy Settings,勾选http和https代理,这里http和https的代理服务器地址都是127.0.0.1:8080.
找到外部代理设置选项
外部代理的配置窗口

5.打开burp

已经设置了外部代理了,就必须打开burp(当然了主要是要打开burp中对127.0.0.1:8080的监听),否则就会出现“连不上网了”的现象。在burp的菜单栏中的Proxy选项下的Options中打开127.0.0.1:8080的代理监听(默认应该是已经打开的),在Intercept中关闭请求拦截。

6.让Charles能解析https的包

完成上面的配置步骤后,从手机上打开微信小程序,登录并进入功能点,应该已经可以在Charles窗口左侧的列表中找到想抓的包。在想抓的https包的url处右击选择Enable SSL Proxying这一步非常重要,因为我曾经不知道这一步骤然后burp中依然抓不到包……
以上都完成后,再访问在手机端微信小程序中想要测试的功能点,此时burp中应该就可以抓到包了。
打开SSL代理


总结

以上就是今天要记录的内容。这里一定要注意的事情有:
1.PC端和手机端都需要安装burp证书和Charles证书,并且打开信任。
2.点击位于屏幕顶部右侧的Charles小花瓶logo,取消macOS Proxy的勾选,勾选上External Proxy Servers。
3.在Charles窗口左侧的列表中找到想要用burp抓包的url并右键选择打开SSL Proxying。
4.开了外部代理就一定要记得打开burp的127.0.0.1:8080监听,否则网络不通。
5.Charles中设置的外部代理的地址是127.0.0.1:8080,手机端代理的地址是电脑ip(与手机在同一网段):8888


本文转载自: https://blog.csdn.net/qq_38798840/article/details/125221320
版权归原作者 好想变强啊 所有, 如有侵权,请联系我们删除。

“如何通过Charles+BurpSuite的配合在PC端抓到手机包”的评论:

还没有评论