Android中利用手机抓包的方法,经典篇
在移动逆向分析以及 App 开发的时候,总会需要对其网络行为进行监控测试,本文总结一些抓包思路,并对其使用方法进行实践
笔者认为在抓包界,Wireshark 应该算是综合排名第一的工具(其实 Wireshark 自带的命令行工具 tshark 更牛逼)
本文总结记录了 5 种抓包方式,掌握其一即可进行实践,欢迎大家一起交流分享
0x01 基于 Wireshark
1.1 在电脑主机上使用猎豹 Wifi
之类的工具,开启热点,将所要测试的手机连接该热点,记录其IP地址
1.2 使用 Wireshark 对以上 IP 地址进行捕获
1.3 总结
该方法简单粗暴高效,可以将捕获的数据包随时保存下来,便于后续分析或者进行 PCAP 可视化分析。
关于命令行工具 tshark 在此不做赘述,感兴趣的读者自行研究。
0x02 基于 tcpdump
下载安装 Genymotion 安卓虚拟机,在该模拟器环境种进行实践操作(基于实体手机亦然,前提是手机必须得 ROOT)
笔者仅在 Android 系统下测试,未在 iOS 系统下实验
2.1 说明
模拟器中自带的 tcpdump 工具,位于: /system/xbin/ 目录下
2.2 数据包捕获
可以通过 adb shell
命令在 CMD 模式下连接模拟器,su
到 root 模式进行抓包
1
|
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 进行查看:
1
|
adb pull /sdcard/capture .pcap C:\tmp
|
TIPS:将数据包文件 push 到手机上命令为
1
|
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):
下面对手机进行设置(笔者使用小米测试机):点击手机中“设置”——Wi-Fi——选择已经连接的wifi——代理设置改为手动
使用手机浏览器访问:http://10.2.145.187:8888
,点击"FiddlerRoot certificate",然后安装证书即可。
3.4 数据包捕获
重新打开 Fiddler 4,然后打开手机中的浏览器,访问任意网址,Fiddler 抓包信息如下:
0x04 基于 Charles
一般使用 Charles 都是基于 MAC OS ,笔者在 mac 平台以及 windows 平台均试验过,操作过程和思路基本一致,因此,本文以 win7 为测试环境
4.1 捕获 http 数据包
打开 Charles 即可捕获数据包(Proxy —— Proxy Settings):
4.2 捕获 https 数据包
Android 手机或者 iPhone 均可直接访问 http://www.charlesproxy.com/ssl.zip ,然后根据图示点击证书安装
选择 Proxy —— SSL Proxying Settings —— Locations —— Add
在弹出的表单中填写 Host 域名(也就是你想要抓包链接的主机名),以及对应的 Port 端口(此处相当于过滤作用)
当然,你可以采用更加粗暴的方式:使用通配符,例如你想要捕获所有的 https 包,这里也可以直接都为空,表示捕获所有的主机和端口;或者都分别填“*”星号,匹配所有的字符,捕获所有的 https。
0x05 基于 Burpsuite
5.1 捕获 http 数据包
5.2 捕获 https 数据包
手机端设置好代理之后,使用浏览器访问:http://burp/
0x06 总结
当我们停止捕获数据包时,将Fiddler 或 Charles 关闭,此时手机端是无法正常访问网络的,因为设置了代理,这时候需要将代理关闭,即可正常浏览网页
对于大多数走代理的应用可以选择 Fiddler 或 Charles,无需 root,一次配置,终身使用;对于不走代理的 App 可以利用 tcpdump 捕包,然后使用 Wireshark 查看;最简单便捷的便是第一种方法「0x01. 基于 Wireshark」
以上所有工具各有优劣,读者可以根据工作环境,按需使用,个人觉得一般情况下使用 Wireshark + Fiddler 或者 Wireshark + Charles 即可完成各平台的抓包分析任务
以上工具中只有BurpSuite可以对抓包过程进行交互式操作;Wireshark支持的协议最多,也更底层,功能强大,但过于沉重
对于本文涉及的相关工具的安装、设置、破解、详细使用,不在本文讨论范围之内(Charles 免费版其实还比较厚道,如果重度需要,建议购买正版),本文旨在浅析捕获移动终端数据包的方法和思路
0x07 参考文献
- 抓包工具Fidder详解
- Mac上的抓包工具Charles
- 网络抓包工具Charles的介绍与使用
- charles使用教程指南
- Android安全测试之BurpSuite抓包
- Android利用tcpdump和wireshark抓取网络数据包
Android中利用手机抓包的方法,经典篇相关推荐
- Android端App无法抓包解决方法——Drony
Android端App无法抓包解决方法--安装Drony 1:安装drony (这里手机使用的Android设备) 2:开启代理抓包软件(Burpsuite) 3:配置drony转发 1:安装dron ...
- fiddler手机抓包配置方法
一.下载工具包 百度搜索"fiddler 下载" ,安装最新版本 下载的软件安装包为"fiddler_4.6.20171.26113_setup.exe"格式, ...
- Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError)
1.在工程下新建lib文件夹,将需要的第三方包拷贝进来. 2.将引用的第三方包,添加进工作的build path. 3.(关键的一步)将lib设为源文件夹. 在/libs 文件夹上右键--Build ...
- 关于fi dd ler 手机抓包 网卡地址地址_实测对比Wireshark利用nRF52832抓包和Packet Sniffer抓包体验...
在蓝牙的开发过程中,使用抓包器对蓝牙模块收发数据进行抓包BLE分析,无疑会极大地提高我们的研发开发效率,同时能帮我们快速地定位问题.对于初学者或者开发者来说,BLE抓包分析能让我们更快地理解蓝牙的工作 ...
- Win7虚拟无线AP以及Android手机抓包
设备要求 Windows7操作系统 装有无线网卡的笔记本或台式机 无线网卡必须支持"承载网络" 查看无线网卡是否支持"承载" 方法一: 开始菜单→所有程序→附件 ...
- Charles4.6.2版本手机抓包设置,抓包失败的解决方法详解
一.Charles手机抓包设置 第一步:设置Charles为允许状态,并设置好接入的接口 在Charles的菜单栏选择"Proxy"->"Proxy Setting ...
- 关于fi dd ler 手机抓包 网卡地址地址_ApkCrack 一键生成支持 Android 7.0 抓包的 apk...
code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群 作者:星星y 链接:https://www.jianshu.com/p/44923e658f47 声明:本文已获星星y ...
- 关于fi dd ler 手机抓包 网卡地址地址_实测对比Wireshark利用nRF52832抓包和Packet Sniffer抓包使用体验...
在蓝牙的开发过程中,使用抓包器对蓝牙模块收发数据进行抓包BLE分析,无疑会极大地提高我们的研发开发效率,同时能帮我们快速地定位问题.对于初学者或者开发者来说,BLE抓包分析能让我们更快地理解蓝牙的工作 ...
- 未获取root手机抓包方法
没有root的android不能使用类似shark的APP抓包,以下两个不root抓包的方法供参考 未获取root的Android手机抓包方法1:连接PC开启的WIFI PC开启WIFI热点共享,然后 ...
最新文章
- The destination folder does not exist or is not writeable
- python转换数据类型(int、float、str、eval、tuple、list、chr、ord、bin、oct、hex)
- ssh时出现 Agent admitted failure to sign using the key
- jvm优化_使用Java流和In-JVM-Memory的超低延迟查询
- VTK:baking烘焙阴影贴图用法实战
- L1-036. A乘以B
- anaconda+python3.7安装keras_win10(64)+python3.7+Anaconda3+tensorflow-cpu+Keras安装(亲测有效)...
- 设置图例 边框 背景 AE C#
- NLP学习—12.Seq2Seq模型与Attention机制
- 【多目标优化求解】基于matlab粒子群算法求解配电网抢修优化问题【含Matlab源码 777期】
- 2寸的照片长宽各是多少_2寸照片的尺寸,1寸和 2 寸相片具体大小尺寸是多
- 详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)
- iOS7官方推荐图标和图像尺寸
- pe克隆linux系统下载,【完美成功】合并ntdetect.com的PE用的SETUPLDR.BIN(增加ISO/SYSLINUX专用版)...
- 软件开发应遵循的原则
- Vertu的签名黄金经典手机
- 供应商寄售过程的实现
- 工具中的文件夹选项不见了!
- vs点击方法跳不到对于的地方_【阿司足球】今天带来一场欧国联的比赛,比利时VS冰岛...
- 售后回访:汽车行业电话回访满意度及售后服务流程