手机抓包方式汇总

我们经常会需要分析手机App的发包数据,本文汇总整理一下常见的抓包的方法。

方法一

手机设置代理为电脑上的抓包程序(Fiddler/Charles)。通过手机安装对应抓包程序证书,可以实现https请求抓包。
优点:设置和操作简单
缺点:设置代理,会被App安全机制检测到,同时存在不支持代理的App。

方法二

透明代理(Transparent Proxy)。这种方式是在手机连接的热点设备上,将手机的网络包进行抓取转发。对设备来说是无感的,所以被称为透明代理。
热点设备可以是PC,也可以是路由器,甚至可以是树莓派等开发板,只要设备能同时支持有线和无线连接。这里以Macbook pro为例来实现透明代理。
设置步骤:

  1. 系统偏好设置-共享,打开互联网共享,来源设置为以太网,共享端口设置为Wi-Fi,在Wi-Fi选项中可以配置共享无线热点的名称和密码。
  2. 打开IP转发
sudo sysctl -w net.inet.ip.forwarding=1
  1. 使用ifconfig命令找到当前共享热点的无线网卡,具体操作方法是手机连接到共享热点后,查看当前网关,然后看看ifconfig列出的网卡列表里,哪一个网卡的ip地址是手机上显示的网关ip。我的电脑显示的是共享热点网卡是bridge100。
    创建并启用端口转发规则,将bridge100网卡的80、443端口流量转发到本地的8080端口:
echo "rdr pass on bridge100 inet proto tcp to any port {80, 443} -> 127.0.0.1 port 8080" | sudo pfctl -ef -

运行以下命令可以看到已经创建好的转发规则:

sudo pfctl -s nat

pfctl命令是PF防火墙的配置命令,类似于Linux系统的iptables。PF防火墙 ( 全称:Packet Filter ) 是 UNIX LIKE 系统上进行 TCP/IP 流量过滤和网络地址转换的软件系统。PF 同样也能提供 TCP/IP 流量的整形和控制,并且提供带宽控制和数据包优先集控制。

  1. 配置允许mitmproxy访问pfctl
sudo sh -c "echo 'ALL ALL=NOPASSWD: /sbin/pfctl -s state' >> /etc/sudoers"
  1. 本地安装mitmproxy
brew install mitmproxy
  1. 启动mitmproxy
    mitmproxy提供了三种不同的启动命令:
  • mitmproxy gives you an interactive command-line interface
  • mitmweb gives you a browser-based GUI
  • mitmdump gives you non-interactive terminal output

这里用的是mitmweb,启动后自动打开浏览器,显示一个可交互的网页页面,抓取的数据包也会在页面上显示。

mitmweb --mode transparent
  1. 连接共享热点的设备访问http://mitm.it安装证书文件并启用信任。

总结

以上两种抓包方式,也被称为中间人攻击,就是代理程序接收到用户终端发来请求数据时,伪装成用户向目标服务器发送了数据请求,同时将数据进行了解包分析。但是当遇到服务器请求进行证书校验时,这种方式就无法生效了。
本文只是利用了手里现成的设备来实现透明代理抓包,同样的也可以通过Linux设备,Windows设备,以及路由器等设备来实现,部分教程补充在参考资料中。

参考:
mitmproxy透明代理设置
mitmproxy官方网站
透明代理入门
iptables实现透明代理,进行Web流量截取的方法
Android路由重定向+透明代理抓App包

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值