关于程序员:手机APP的秘密看的一清二楚

33次阅读

共计 2532 个字符,预计需要花费 7 分钟才能阅读完成。

0x00 摘要

在逆向剖析以及挪动端开发的时候,总会须要对 APP 的网络行为进行监控测试,本文总结一些抓包思路,并对其应用办法进行实际

在抓包界,Wireshark 应该算是综合排名第一的工具(其实 Wireshark 自带的命令行工具 tshark 更牛逼)

本文总结记录了 5 种抓包形式,把握其一即可进行实际,欢送大家一起交换分享

0x01 基于 Wireshark

试验步骤:

1.1 在电脑主机上应用猎豹 Wifi 之类的工具,开启热点,将所要测试的手机连贯该热点,记录其 IP 地址

1.2 应用 Wireshark 对以上 IP 地址进行捕捉

Capture——Options

1.3 总结

该办法简略粗犷高效,能够将捕捉的数据包随时保留下来,便于后续剖析或者进行 PCAP 可视化剖析。

对于命令行工具 tshark 在此不做赘述,感兴趣的读者自行钻研。

0x02 基于 tcpdump

试验环境:

下载安装 Genymotion 安卓虚拟机,在该模拟器环境种进行实际操作(基于实体手机亦然,前提是手机必须得 ROOT)

笔者仅在 Android 零碎下测试,未在 iOS 零碎下试验

试验步骤:

2.1 阐明
模拟器中自带的 tcpdump 工具,位于:/system/xbin/ 目录下

2.2 数据包捕捉
能够通过 adb shell 命令在 CMD 模式下连贯模拟器,su 到 root 模式进行抓包

#!bash
tcpdump -vv -s 0 -i eth1 -w /sdcard/capture.pcap

参数阐明:

  • vv:获取具体的包信息(留神是两个 v 不是 w)
  • s 0:不限数据包的长度,如果不加则只获取包头
  • w xxx.pcap:捕捉数据包名称以及存储地位(本例中保留在 sdcard 门路下,数据包名为 capture.pcap)
  • i eth1:捕捉制订的网卡(在 genymotion 虚拟机中,应用 busybox ifconfig 命令能够查看相干信息,个别 genymotion 的 ip 地址都为 10.xx.xx.x)
    如果你想指定捕捉的数据包长度,能够应用 -c 参数(例如 -c 128)捕捉完结,间接按 Ctrl + C 即可

2.3 数据分析

将捕捉到的数据包拖到本地应用 Wireshark 进行查看:

#!bash
adb pull /sdcard/capture.pcap C:\tmp

TIPS:将数据包文件 push 到手机上命令为

#!bash
adb push C:\tmp\capture.pcap /sdcard/

0x03 基于 Fiddler 4

试验步骤:

3.1 下载 FIddler 4

3.2 设置 Fiddler 4

关上 Fiddler,Tools-> Fiddler Options(配置实现记得重启 Fiddler)

3.3 设置手机代理

首先,获取装置 Fiddler 4 的 PC 对应的 IP 地址(ipconfig):

确保手机和 PC 是连贯在同一个局域网中!!!

上面对手机进行设置(笔者应用小米测试机):点击手机中“设置”——Wi-Fi——抉择曾经连贯的 wifi——代理设置改为手动

下载 Fiddler 的平安证书

应用手机浏览器拜访:http://10.2.145.187:8888,点击 ”FiddlerRoot certificate”,而后装置证书即可。

至此,曾经全副设置结束。

3.4 数据包捕捉

从新关上 Fiddler 4,而后关上手机中的浏览器,拜访任意网址,Fiddler 抓包信息如下:

Enjoy!

0x04 基于 Charles

试验环境:

win7 + Charles v3.11

个别应用 Charles 都是基于 MAC OS,笔者在 mac 平台以及 windows 平台均试验过,操作过程和思路基本一致,因而,本文以 win7 为测试环境

试验步骤:

4.1 捕捉 http 数据包

手机设置代理:

关上 Charles 即可捕捉数据包(Proxy —— Proxy Settings):

4.2 捕捉 https 数据包

手机端装置证书:

Android 手机或者 iPhone 均可间接拜访 http://www.charlesproxy.com/s…,而后依据图示点击证书装置

设置 Charles:

抉择 Proxy —— SSL Proxying Settings —— Locations —— Add

在弹出的表单中填写 Host 域名(也就是你想要抓包链接的主机名),以及对应的 Port 端口(此处相当于过滤作用)

当然,你能够采纳更加粗犷的形式:应用通配符,例如你想要捕捉所有的 https 包,这里也能够间接都为空,示意捕捉所有的主机和端口;或者都别离填“*”星号,匹配所有的字符,捕捉所有的 https。

0x05 基于 Burpsuite

试验步骤:

5.1 捕捉 http 数据包

PC 端 Burpsuite 设置:

手机端代理设置办法同以上 3.3 4.1

关上 Burpsuite 即可捕捉 http 数据包:

5.2 捕捉 https 数据包

手机端设置好代理之后,应用浏览器拜访:http://burp/

此处存在一个问题:下载的证书是 der 格局的,咱们手机端装置的是 crt 格局的,须要应用 firefox 浏览器转一下格局:能够首先在 Brupsuite 中导出 der 格局证书,而后导入火狐浏览器,而后从火狐浏览器导出证书格局为 crt

关上火狐浏览器:工具——选项——高级——证书——查看证书

胜利捕捉 https 数据包

0x06 总结

当咱们进行捕捉数据包时,将 Fiddler 或 Charles 敞开,此时手机端是无奈失常拜访网络的,因为设置了代理,这时候须要将代理敞开,即可失常浏览网页

对于大多数走代理的利用能够抉择 Fiddler 或 Charles,无需 root,一次配置,一生应用;对于不走代理的 App 能够利用 tcpdump 捕包,而后应用 Wireshark 查看;最简略便捷的便是第一种办法「0x01. 基于 Wireshark」

以上所有工具各有优劣,读者能够依据工作环境,按需应用,集体感觉个别状况下应用 Wireshark + Fiddler 或者 Wireshark + Charles 即可实现各平台的抓包剖析工作

以上工具中只有 BurpSuite 能够对抓包过程进行交互式操作;Wireshark 反对的协定最多,也更底层,功能强大,但过于惨重

对于本文波及的相干工具的装置、设置、破解、具体应用,不在本文探讨范畴之内(Charles 免费版其实还比拟厚道,如果重度须要,倡议购买正版),本文旨在浅析捕捉挪动终端数据包的办法和思路。

正文完
 0