前言:
我们在做渗透测试的时候,我们往往需要使用burpsuite抓取 APP流量,需要抓取APP数据进行测试,因为往往通过APP都能有不错的发现,但是为了方便测试,我们如果没有安卓机的情况下,使用模拟器就是一个不错的选择,其一不需要另行准备安卓手机,其二也可以避免一些垃圾APP给自己造成不必要的麻烦,如锁机APP或者是近段时间闹得沸沸扬扬的送给最好的TA,这些APP。
需要准备的软件如下:雷电模拟器、burpsuite、需要测试的APP,雷电模拟器和 APP 直接去官网下载安装即可,burpsuite 相关软件资料可以查看我在 GitHub 上面的资源,应该还算全面,同时也希望大家贡献好的插件
总的步骤大致分为以下几步,其中每一步我都会在下面都有详细的图文介绍:
1)电脑端设置好 burpsuite 的代理;
2)模拟器设置代理;
3)模拟器下载并安装证书并使用Android浏览器访问SSL网站验证SSL代理是否成功;
4)打开APP开始抓取流量测试
0x01 电脑端设置好 burpsuite 的代理
首先我们通过 windows R 运行 cmd, 通过 ipconfig /all 命令 找到自己的网卡的 IPv4 地址,这一步也可以根据自己的习惯了操作,比如通过 控制面板\网络和 Internet\网络连接 或 其他方式。我这里的 IPv4 地址是 192.168.6.244 ,这个 IPv4 地址记住,后面设置 burpsuite 的代理和 模拟器设置代理 都需要用到。
确认自己的 IPv4 地址后就可以设置 burpsuite 的代理设置了:绑定监听端口(Bind to port) 8080 (端口必须是未占用的端口,你可以设置高位端口),绑定监听地址( Bind to address) 我们选择 Specific address 192.168.6.244 在列表里选择刚刚查到的 IPv4 地址。自此 burpsuite 就设置好了。
0x02 模拟器设置代理
模拟器设置代理需要修改 设置 --> WLAN --> 鼠标左键长按 tplink --> 修改网络 --> 代理选择手动 --> 代理服务器主机名填写 刚刚的 IPv4 地址 192.168.6.244,代理服务器端口 填写刚刚 burpsuite 设置的 8080 ,然后保存,现在使用 Android 浏览器打开 http 网站在 burpsuite 就可以看到流量了。
0x03 模拟器下载并安装证书并使用Android浏览器访问SSL网站验证SSL代理是否成功
如上面设置后好,就会发现打开使用了SSL证书的 https 站点会提示: 该网站的安全证书有问题。
burpsuite 此时肯定是不能抓到流量的,因此我们需要给模拟器配置 burpsuite 的证书,我们使用 Android 浏览器访问 http://burp/ 或者 http://192.168.6.244:8080/ 即可看到 burpsuite 的证书下载页面,我们点击 CA Certificate 即可下载证书:
一般默认在 文件管理器的 Download 目录下 文件名为 cacert.der 我们需要把它后缀改为pem,即重名为 cacert.pem
然后打开 设置 --> 安全 --> 从SD卡安装(从SD卡安装证书),找到下载的证书路径,默认就是 内部储存的 Download目录下,我们刚刚重命名过的证书,如果不重命名,Android 是不识别的。
选择证书后,如果提示 需要先设置锁屏 PIN 或 密码才能使用凭据,就先去设置好 PIN 或 密码
然后根据提示填写 证书名字、凭据用途默认 WLAN 即可,然后确定,
系统会提示安装成功!我们也可以从 设置 --> 安全 --> 信任的凭据 --> 用户 可以看到我们安装的 PortSwigger。最后使用浏览器访问 https://www.baidu.com burpsuite 应该就可以抓到流量了。
0x04 打开APP开始抓取流量测试
打开APP开始抓取流量测试,如果APP没有做其他的防护措施比如加固等等,burpsuite 应该就可以看到流量了。如果不能抓到 APP 流量但是可以抓取 Android 浏览器流量,这个时候就需要 脱壳APP或者是借助 Frida 这些来协助抓取,下次写。
下面简单说一下 如何通过雷电模拟器的 adb.exe 来直接执行命令进行 清空和导入联系人到模拟器的通讯录(比如批量生成一定范围的手机号,去做QQ好友/微信匹配等等,希望你看到了不作恶)。
雷电模拟器通讯录格式如下:
BEGIN:VCARD
VERSION:2.1
N:;1-300-000-0000;;;
FN:1-300-000-0000
TEL;CELL:1-300-000-0000
END:VCARD
BEGIN:VCARD
VERSION:2.1
N:;1-300-933-0788;;;
FN:1-300-933-0788
TEL;CELL:1-300-933-0788
END:VCARD
其他模拟器或手机的通讯录格式,可以通过手动添加一个号码,然后导出到 sdcard 查看,即可使用python这些小脚本批量生成,不做过多的陈述。
雷电模拟器 adb 清空、导入联系人如下:
# 列出设备
PS D:\ChangZhi\dnplayer2> .\adb.exe devices
List of devices attached
emulator-5554 device
127.0.0.1:5555 offline
# 先清除原通讯录联系人
PS D:\ChangZhi\dnplayer2> .\adb.exe -s emulator-5554 shell pm clear com.android.providers.contacts
Success
# 将正确格式的通讯录文件contacts.vcf, 导入android模拟器中, 并等待模拟器刷新几秒钟
PS D:\ChangZhi\dnplayer2> .\adb.exe -s emulator-5554 push contacts.vcf /sdcard/contacts.vcf
2596 KB/s (12978 bytes in 0.004s)
PS D:\ChangZhi\dnplayer2> sleep 3
#从文件中, 将联系人import到android模拟器的通讯录中, 导入过程耗时依联系人数量而定.
PS D:\ChangZhi\dnplayer2> .\adb.exe -s emulator-5554 shell am start -t "text/x-vcard" -d "file:///sdcard/contacts.vcf" -a android.intent.action.VIEW com.android.contacts
Starting: Intent { act=android.intent.action.VIEW dat=file:///sdcard/contacts.vcf typ=text/x-vcard pkg=com.android.contacts }
PS D:\ChangZhi\dnplayer2> sleep 10