博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手机抓包方法
阅读量:4951 次
发布时间:2019-06-12

本文共 2928 字,大约阅读时间需要 9 分钟。

Android上使用Tcpdump进行抓包

工具包内容如下:(下载地址:http://download.csdn.net/download/yezhaohui2011/8368061)

      

adb ——谷歌提供的安卓远程调试工具 。(用于PC连接手机并输入命令)

tcpdump——Linux系统中普遍使用的一款开源网络协议分析工具。(放在手机内部进行抓包)

wireshark——window 系统下的抓包工具。(查看分析抓取的数据包)

 

抓包条件:手机需要取得 root权限

使用方法:

1、  把adb工具放到PC任一目录,然后进入cmd切换到工具目录,如:

       

2、  通过USB线把手机和PC连接,并打开手机的USB调试模式

3、  cmd 输入:adb devices  这个命令是查看当前连接的设备,如

      

4、  把tcpdump 工具拷贝到手机,cmd输入:  adb push <本地路径> <远程路径> ,如:

     

5、  给tcpdump 执行权限,分别输入adb shell -> su ->chmod 6755 /data/local/tcpdump

     

6、  开始抓包,输入:/data/local/tcpdump –p –s 0 –w /sdcard/test.pcap

    

crtl+c 结束抓包,这样在手机/sdcard目录里面就会保存一个test.pcap的文件.

7、  把抓取的报文从手机上拷贝回电脑,输入:adb pull <远程路径> <本地路径> ,如:

   

   然后就可以用 wireshark打开查看报文内容了。

 

可以看到向10.0.0.172发送的报文,即是移动网络发送的报文。

中国移动  网关:10.0.0.172  HTTP端口: 80和8080  WAP端口:9201

中国联通  网关:10.0.0.172  HTTP端口: 80和8080  WAP端口:9201

中国电信  网关:10.0.0.200  HTTP端口: 80

 

 

使用Fiddler工具进行抓包

Fiddler工具简介

Fiddler是强大且好用的Web调试工具之一,它能记录客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展,在web开发和调优中经常配合firebug使用。

Fiddler的运行机制其实就是本机上监听8888(默认)端口的HTTP代理。 对于PC端Fiddler启动的时候默认IE的代理设为了127.0.0.1:8888,而其他浏览器是需要手动设置,所以如果需要监听PC端Chrome或其他应用的网络数据包,将其代理改为127.0.0.1:8888就可以监听数据了,手机端按照下面的设置即可完成整个系统的http代理。

相对于通过adb使用tcpdump+wireshark抓包的优势在于:

1)  无需取得手机root权限

2)  对Android和Iphone同样适用

3)  操作更简单方便(第一次安装配置,第二次只需设置代理即可)

4)  可以利用Fiddler的强大功能对数据包进行各种操作

5)  可以查看https请求(Fiddler提供解密)

注意:只能是手机已经连接上网,且与Fiddler所在的PC在同一局域网内,手机能通过fiddler代理上网才能使用该方法进行抓包。

 

通过Fiddler进行手机抓包方法

1、  PC端安装Fiddler,Fiddler作为代理服务器模式

     

 

2、  配置Fiddler允许监听https

打开Fiddler菜单项Tools->Fiddler Options,选中decrypt https traffic和ignore server certificate errors两项,如下图:

     

第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。

 

3、  配置Fiddler允许远程连接

如上图的菜单中点击connections,选中allow remote computers to connect,默认监听端口为8888,若被占用也可以设置,配置好后需要重启Fiddler以使配置生效,如下图:

     

 

4、  配置手机端

       打开手机连接到同一局域网的wifi,并修改该wifi网络详情(长按wifi选择->修改网络)->显示高级选项,选择手动代理设置,主机名填写Fiddler所在机器ip(与手机同一局域网的IP),端口填写Fiddler端口,默认8888,如下图:

       

      这时,手机上的网络访问在Fiddler就可以查看了:

     

 

 

使用Charles工具进行抓包

Charles原理介绍

charles是一款在Mac下常用的截取网络封包工具。Charles实现对Https进行抓包,使用的原理就是中间人技术(man-in-the-middle)。Charles会动态生成一个使用自己根证书签名的证书,Charles接收web服务器的证书,而客户端浏览器/客户端 接收Charles生成的证书,以此客户端和Charles之间建立Https连接,Charles和Web服务器之间建立Https连接,实现对Https传输信息的抓包。如果Charles根证书不被信任则无法建立Https连接,所以需要添加Charles根证书为信任证书。

使用方法

1、给Mac安装证书

打开Charles,在Menu选择SSL Proxying > Install Charles Root Certificate,Keychain Access(钥匙访问串)被打开,如下图所示可以看到Charles Certificate已经被安装

  

 

2、信任证书

双击该行弹出证书详情,选择“Always Trust”(始终信任)

 

 

3、给手机安装证书

打开Charles,在Menu选择Help > SSL Proxying > Install Charles Root Certificate on a Mobile Device or Remote Browser,弹出提示框,按提示框操作即可(先设置代理然后访问证书安装页面进行证书的安装)

也可以在Charles上选择Help > SSL Proxying > Save Charles Root Certificate先导出证书,然后adb等工具导入手机中进行安装

 

4、开启SSL代理功能

在Menu选择Proxy->SSL Proxying Setting,选中Enable SSL Proxying,在Locations里面添加要使用SSL代理的网站,端口号输入443,如果需要匹配所有的HTTPS网站则输入 * 号即可。现在即可拦截所有Https的数据包了

 

 

注意事项

1、手机上有开启FQ应用,如***等时,不要设置成全局代理,否则charles上是抓不到包,可设置分应用抓包-绕行模式--将待抓包的app勾选让其绕行即可

 

charles工具更多使用介绍见:

 

转载于:https://www.cnblogs.com/yezhaohui/p/4228371.html

你可能感兴趣的文章
使用axel下载百度云文件
查看>>
Qt中图像的显示与基本操作
查看>>
详解软件工程之软件测试
查看>>
WCF(二) 使用配置文件实现WCF应用程序
查看>>
【CodeForces 803 C】Maximal GCD(GCD+思维)
查看>>
python 去掉换行符或者改为其他方式结尾的方法(end='')
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
REST构架风格介绍:状态表述转移
查看>>
struct {0}初始化
查看>>
c++ operator
查看>>
apache 添加 ssl_module
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
JavaScript笔记——正则表达式
查看>>
网页消息类
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
日常一些出现bug的问题
查看>>
同时启动多个tomcat服务器
查看>>
怎么将iphone上的照片导出到本地文件
查看>>
Repeater+DataPagerSource分页
查看>>