😇
牛牛的安全 Odin
  • 个人介绍
  • 数据安全
  • 工控安全
    • 工控概念
  • 车联网安全合规
    • R155
    • CSMS\VTA
    • GDPR认证
  • 车联网安全
    • 漏洞订阅
    • 汽车攻击时间轴
    • 汽车信息安全研究
      • 车厂安全需求 Custom Requirement
      • 安全威胁
      • 参考文章
      • Who’s Behind the Wheel?
      • 安全研究基础
      • 智能网联汽车安全渗透指标
      • 智能网联汽车软件安全测试关键技术研究
      • 基于硬件在环的整车控制器功能安全测试技术研究
      • 智能网联汽车信息安全解决方案
      • 自动驾驶汽车的安全性-识别挑战
    • ECU逆向案例
      • 特斯拉攻击链
      • 汽车动力系统ECU固件逆向工程初探
  • 物联网安全
    • IoT 技术和协议
    • 智能设备常规测试思路总结
    • 各种调试接口(SWD、JTAG、Jlink、Ulink、STlink)的区别
    • QEMU 系统仿真
      • 如何“用 QEMU 模拟它”
      • 处理加密的路由器固件
    • 自动分析Automated Approach
    • IOT渗透测试(一)
    • 物联网安全目录
  • 固件分析案例
    • 智能门锁、手环
      • MCU固件反汇编
      • 云丁鹿客门锁中bootloader和FreeRTOS的分析
      • 云丁鹿客门锁BLE通信的分析(下)
      • 云丁鹿客门锁BLE通信的分析(中)
      • 云丁鹿客门锁BLE通信的分析(上)
      • 华为智联旗下小豚AI摄像头的完整分析(下)
      • 华为智联旗下小豚AI摄像头的完整分析(上)
      • 海康萤石智能门锁的网关分析(4)
      • 海康萤石智能门锁的网关分析(3)
      • 海康萤石智能门锁的网关分析(2)
      • 海康萤石智能门锁的网关分析(1)
      • idapython编写和调试
      • 果加智能门锁的全面分析(下)
      • 果加智能门锁的全面分析(中)
      • 果加智能门锁的全面分析(上)
      • BLE智能手环
      • 耶鲁智能门锁的简单测试(下)
      • 耶鲁智能门锁的简单测试(上)
      • 耶鲁门锁漏洞
      • 对一款BLE灯泡的分析
      • BLE协议栈与Android BLE接口简介
    • 在IoT设备中查找端口对应进程的四种方法
    • 路由器命令执行
    • 对基于Philips TriMedia CPU的网络摄像机进行逆向工程
    • 从Microsoft Band以及 Hello Sense 设备中提取自己的历史数据
    • CVE-2021-22909- 深入研究 UBIQUITI 固件更新错误
    • 复现|摄像头固件重打包
    • Dlink_DWR-932B路由器固件分析
    • 针对小米九号平衡车的无接触式攻击
    • 记一次智能印章设备的漏洞挖掘
  • APP 逆向
    • Go二进制文件逆向分析从基础到进阶——综述
    • Switch APP逆向分析
  • 传统静态代码分析
    • 静态分析案例
      • ELF恶意软件的静态分析原理和方法(上)
      • ELF恶意软件的静态分析原理和方法(下)
    • 静态代码分析工具清单
    • 企业级静态代码分析工具清单
  • 应用安全测试
    • DAST、SAST、IAST
    • IAST 工具初探
  • 芯片架构
    • ARM指令集概念
    • ARM指令集
    • 冯·诺伊曼结构
    • 指令集
    • 处理器架构、指令集和汇编语言,三者有何关系?
  • 病毒分析
    • 熊猫烧香
  • 编程知识
    • REST API 教程
  • 流量分析工具
    • 卡巴斯基开源的智能手机流量劫持工具
    • 利用 Burp Suite 劫持 Android App 的流量(二)
    • 利用 Burp Suite 劫持 Android App 的流量(一)
  • 区块链安全
    • 安全多方计算
    • Chainalysis 团队从区块链的角度分析发现 2020 年最大的 4 起勒索软件攻击实现存在关联
  • 攻击案例
    • 特斯拉Powerwall网关可能受到黑客攻击
  • 移动应用
    • Mac上使用Charles抓包
    • 手机抓包工具汇总
    • APP渗透测试流程和技巧大全
    • 加壳和脱壳
    • 浅谈 Android Dex 文件
    • 移动应用漏洞分析样例分享
    • 移动应用常见漏洞分析
    • 移动应用漏洞分析工具介绍
    • 渗透测试流程详解 及 移动APP安全测试要点
    • Frida Android hook
  • 安全设计
    • 【软件安全设计】安全开发生命周期(SDL)
Powered by GitBook
On this page
  • 初级工具
  • 进阶工具
  • Android - 支持抓包的 App(不需要 Root 权限)
  • Android - 使用 tcpdump 抓包(需要 Root 权限)
  • iOS - 使用 rvictl 抓包(不需要越狱)
  • 更简单的办法
  • 其他工具
  1. 移动应用

手机抓包工具汇总

PreviousMac上使用Charles抓包NextAPP渗透测试流程和技巧大全

Last updated 3 years ago

做移动开发,抓包是基本功。抓包工具非常成熟。

在移动设备上抓包,需要下面几个方面的配合:

  1. 移动设备支持;

  2. 代理服务器;

  3. 分析工具。

初级工具

先说个抓 HTTP(HTTPS) 包的例子算是入门啦。

移动设备支持

操作系统

越狱或root

移动设备支持

Android

否

操作系统自带代理

iOS

否

操作系统自带代理

代理服务器+分析工具

操作系统

软件

Windows

macOS

Fiddler 是 freeware, 它的 macOS 版本已经在进行 beta 测试了,由于采用了 .NET Framework,它的 macOS 版本可以基于 运行。

Charles 是商业软件,它也有 Windows 版本,由于使用 JAVA 编写,它的 Windows 版很容易实现。

既然它们都已经是全平台支持,怎么选就看你了。我目前主要在 macOS 下工作。就介绍 Charles 好了。

Charles 的配置很简单,只需要 在 Proxy->Proxy Settings 对话框中启动 HTTP Proxy,然后在移动设备上设置代理为 macOS 的 IP 地址即可。

Proxy Settings

设置 Charles

HTTP Proxy iOS

设置 iOS 的 HTTP 代理

HTTP Proxy Mi

设置 Android(小米手机) 的 HTTP 代理

HTTP Proxy 修改

HTTP Proxy 填写

有些安卓系统的 HTTP 代理设置需要长按 WIFI 名称,单击“修改网络”

Charles Baidu

Fiddler 的操作也类似,网上大把教程,这里就略过了。

进阶工具

有些应用比较调皮,不走操作系统的 HTTP 代理。还有些应用(例如游戏)直接走 TCP 协议,无法使用 HTTP 代理抓包。虽然 Charles 支持 SOCKS 代理,但无法分析 TCP 包。

移动设备支持

操作系统

越狱或root

移动设备支持

Android

否

Android

否

Android

是

iOS

否

rvictl

代理服务器+分析工具

操作系统

软件

Windows

macOS

Android - 支持抓包的 App(不需要 Root 权限)

包内容可以保存成 PCAP 格式,将其传到桌面环境中使用 Wireshark 打开分析。Charles 也可以打开 PCAP 格式,但是仅能分析其中的 HTTP 协议内容。

Packet Capture

Packet Capture 抓包界面

tPacketCapture

tPacketCapture 抓包界面

Packet Capture 目前只能保存单个包,这略显不便。tPacketCapture 则可以将包内容直接保存到文件中。

Android - 使用 tcpdump 抓包(需要 Root 权限)

用数据线将 Root 过的 Android 设备连上电脑,并开启 USB 调试:

 1# 检查设备是否连接
 2adb devices
 3# 登入移动设备
 4adb shell
 5# 切换到 Root 用户
 6su          
 7# 修改文件夹权限
 8chmod 777 /data/local/
 9# 退出移动设备
10exit
11# 上传前面下载的 tcpdump 文件到移动设备
12adb push ~/Downloads/tcpdump /data/local/  
13# 登入移动设备
14adb shell
15# 切换到 Root 用户
16su          
17# 赋予 tcpdump 执行权限
18chmod 777 /data/local/tcpdump
19# 改回文件夹权限
20chmod 775 /data/local/
21# 开始抓包,结果存到 SD 卡的 tcpdump.pcap 文件
22/data/local/tcpdump -p -vv -s 0 -w /sdcard/tcpdump.pcap

...SHELL

此时可以在手机上进行正常操作了。抓包结束的时候使用 Ctrl+C 结束 tcpdump 的执行,将 /sdcard/tcpdump.pcap 复制到桌面环境,使用 Wireshark 打开进行分析就 OK 啦。

Wireshark 分析 tcpdump 结果

iOS - 使用 rvictl 抓包(不需要越狱)

RVI 代表的意思是 Remote Virtual Interface 。这是 XCode 自带的一个工具,它可以将连接到 macOS 的 iOS 设备的网卡虚拟成 macOS 的网络设备。

若碰到提示 rvictl: command not found ,那么可能你需要访问 App Store ,安装 XCode 并运行一次。

先使用数据线连接 iOS 设备,打开 iTunes 获取 UDID,在保持数据线连接的情况下,执行下面的命令创建虚拟设备 rvi0 (xxxx代表设备的 UDID):

1rvictl -s xxxxxxxxxxxxxxx
2Starting device xxxxxxxxxxxxxxx [SUCCEEDED] with interface rvi0

开启 Wireshark 或者 tcpdump (macOS 自带) ,选择设备 rvi0 抓包即可。

抓包完毕后,要用 rvictl -x 取消使用。

更简单的办法

桌面系统上的 Wireshark 和 tcpdump 可以对该系统的网络设备抓包。因此我们只需保证移动设备的所有流量经过某个网络设备,就能得到它传输的所有信息。

把桌面设备变成一个热点,让移动设备通过该热点上网就能做到这点了。无论桌面设备使用有线网络还是无线网络,只需要购买一个无线网卡就能实现热点功能。不用做任何配置,就能抓包了。

其他工具

Proxy Settings
HTTP Proxy iOS
HTTP Proxy Mi
HTTP Proxy 修改
HTTP Proxy 填写

接着要做的就是拿起手机访问访问网络。下图是我在 iOS 设备上使用 Safari 访问百度的包信息。是的,HTTPS 也是可以解密的,参见 Charles 的官方文档 即可。

Charles Baidu

这就需要祭出大杀器 和 啦。还有一些 App 可以直接运行在 Android 上进行抓包,这也是很方便的啊。

还可以使用透明代理来处理这些不走系统代理的应用,我在 一文中作了介绍。

和 可以直接安装在 Android 设备上,他们会在设备上启动一个 VPN,让所有的网络流量都从 VPN 经过,从而实现抓包。这两个 App 在安装的时候都不需要 Root 权限。

Packet Capture

Packet Capture

tPacketCapture

tPacketCapture

在 Android 上安装专用于安卓的 ,然后启动它对 Android 的网卡抓包。这个方法很简单粗暴,但需要拥有 Root 权限。

Wireshark 分析 tcpdump 结果

= Man In The Middle Proxy,这个名字相当的拉风啊。它是使用 Python + C 实现的开源软件。

是基于命令行界面的,但同时它可以在命令行界面进行交互。 另外,它也提供了一个类似于 tcpdump 的 mitmdump 工具。为了方便查看,它还提供了 mitmweb 这个可视化分析工具。

另一个稍微小众一点的工具 虽然是商业软件,但免费版提供的功能已经够用了。

苹果提供了一个相当详细的如何抓包的文档,其中提到了许多抓包软件和方法,值得一看: 。

mono
SSL Proxying
tcpdump
Wireshark
mitmproxy 应用(一)基础代理
PacketCapture
tPacketCapture
tcpdump
mitmproxy
mitmprxoy
burp
Getting a Packet Trace
Fiddler
Charles
PacketCapture
tPacketCapture
tcpdump
Wireshark
Wireshark
Packet Capture
tPacketCapture