iOS系统设备网络抓包工具介绍:越狱和不越狱的办法

对终端进行抓包是客户端测试中的一种重要手段。本文主要介绍了ios设备(iphone、ipad和ipodtouch)的几种常用的抓包方法。

  一、准备条件

   需要进行抓包的设备必须经过root,俗称越狱,主要利用redsn0w和各种iOSFirmwares进行,如越狱不用更换固件版本,只需使用 redsn0w安装Cydia即可,网上有详细教程,此处省略。安装完毕,在3G或WiFi环境下启动Cydia,确认身份为“开发者”,如下图。

  通过Cydia源,用户可以下载和安装比appstore更高权限的软件,但是在Cydia源中下载程序时,如果ios设备锁频待机就会中断下载。我们可以在“设置-通用-自动锁定”中把时间设置为“永不”来防止待机。此外如果有同学发现在简体中文环境下使用Cydia搜索会闪退,请不要惊慌,参见附录即可解决该问题。

  Root后的设备,如不及时修改密码,容易被他人破坏你的系统,因此作为抓包的准备条件之一,请修改root密码,初始密码为alpine,可通过SSH连接访问或者直接在ios设备上的MobileTerminal上进行密码修改。

  二、抓包方式

  方法1:SSH连接访问ios设备抓包(通过USB)--强烈推荐

  【准备工作】

  ios设备上安装tcpdump

  PC上安装iPhoneTunnel(集成终端工具putty功能,附近中为免安装版本)

  【操作步骤】

  1.用USB线缆连接手机与PC,确保手机连接正确,启动iPhoneTunnel,绿灯表示TunnelStatus正常,此时点击LaunchTerminal按钮即可SSH进入手机,如下图;

  2.Putty出现一个提示窗口,如果你不是经常使用SSH,请直接点击“否”即可,如下图;

  3.接着PuTTY会以root用户身份尝试登录设备,并输入root密码;

  4.使用tcpdump进行抓包(参见附录),如下图。

  【方法点评】

  通过USB方式直接SSH进入设备,无论设备在WiFi还是2G/3G下,都可以进行抓包,而且使用简单,方法无局限性,值得采用。

  方法2:SSH连接访问ios设备抓包(通过WiFi)

  【准备工作】

  ios设备上安装tcpdump(参见附录)

  PC上安装putty(附近中为免安装版本)

  ios设备连接WiFi网络,且与PC处于同一个网络中,如无WiFi网络,可使用PC作为热点虚拟一个WiFi网络供ios设备连接

  【操作步骤】

  1.在ios设备上查看ip地址(设置Wi-Fi中,点击已连接WiFi右侧的小箭头可看到);

  2.点击putty,输入设备的ip地址,并选择连接类型为SSH,点击打开,如下图;

  3.以下操作同方法1的2-4步。

  【方法点评】

  PuTTY是通过WiFi方式SSH进入到手机的,必须知道手机的IP地址,如果手机没有WiFi就不能使用这种方法,因此该方法有一定的局限性。

  方法3:直接在终端上操作进行抓包

  【准备工作】

  ios设备上安装MobileTerminal、tcpdump(参见附录)

  【操作步骤】

  1.点击设备桌面“Teminal”图标;

  2.切换至root用户登录;

  3.使用tcpdump进行抓包(参见附录),如下图。

  【方法点评】

  不受网络条件制约,但由于是在终端上操作抓包,对ios设备来讲,MobileTerminal切至后台就不再工作,因此该抓包方法可行性较低,尽管如此,MobileTerminal对终端测试人员来说依然是一款很实用的工具。

 三、导出及其它

  Pcap文件生成后可通过91手机助手(IOS版)将文件下载至PC,然后通过Wireshark或Ethereal打开文件,分析报文。

  四、附录

1.中文环境下Cydia搜索闪退问题解决方法

首先把系统语言改为英文,之后进入Cydia,添加第一中文源(

http://apt.178.com), 添加源的方法如下:进入Cydia,点击Manage,然后点击Source,进入后点击右上角的Edit,再点击左上角的Add,输入源地址,点击添 加,出现警告的话,点仍然添加。等待列表刷新完成即可,返回Cydia后在Manage>第一中文源下查找ios5Cydia中文崩溃解决补丁安装 即可,如下图。再次将系统切换至简体中文后可正常使用Cydia搜索功能。

  2.OpenSSH安装

   OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程的中的数据。安装完毕后,用户才可以使用PC通过远程访问来控制终 端。启动Cydia后点右下角的“搜索”,即可找到OpenSSH。进入安装页面,点击右上角的Install完成安装,如下图。

  3. MobileTerminal安装

   MobileTerminal是一款在iOS设备上使用的终端管理软件,采用类似于命令行的非图形界接口管理iOS设备的进程,运行并不依赖于 Openssh或者Telnet,是独立运行于系统上的app程序。进入Cydia后在Manage>第一中文源下查找能与系统适配的 MobileTerminal并进行安装,如下图。

  4.tcpdump安装

  通过91手机助手(IOS版)可在终端上安装tcpdump,下载地址:http://apt.saurik.com/debs/如不确定哪一个适用自己手机,可对附件中的tcp安装包进行全部安装。

  如果在安装完毕后执行tcpdump提示libpcap的错误,需安装libpcap,如不确定哪一个适用自己手机,可对附件中的lib安装包进行全部安装。

  5.ios设备上tcpdump的使用

  对于一些ios设备如iphone及ipad,既可以接入WiFi,也可以接入2G/3G,在使用tcpdump命令时请注意网口类型,WiFi接入时网卡为en0,而2G/3G接入时网卡为pdp_ip0,而网卡不指定时默认为pdp_ip0。举例来说,

  WiFi下抓包tcpdump -i en0 -X -s0 -wdata.pcap

  2G/3G下抓包tcpdump -i pdp_ip0 -X -s0 -w data.pcap或tcpdump-X -s0 -w data.pcap

  五、Q&A

  (Ⅰ)如果SSH连接ios设备时提示“ServerUnexpectedly Closed Network Connection”,该怎么办?

  A:可通过重新安装OpenSSH来尝试解决问题。

  (Ⅱ)如果在安装了tcp安装包和lib安装包后执行tcpdump仍提示失败,该怎么办?

  A:有可能是缺少libcrypto.0.9.8.dylib文件造成,可从其它ios设备usr/lib路径下copy至本机再进行尝试。

  在进行iOS开发过程中,经常会遇到各种各样的网络访问问题,以前苦于没有抓包工具,很多网络问题解决起来很痛苦。现在终于好了,本文提供两种方式进行网络抓包:

  1. 网络共享 + 可视化抓包工具

  基本原理

  原理比较简单,ios设备通过代理方式共享连接mac电脑的无线网卡,使用抓包工具抓包,然后进行分析(我们推荐使用Wireshark,在MAC系统上也可以使用Paros工具)。

  现在以MAC系统下Paros工具为例,详细描述下抓包过程:

  操作步骤:

  1) 首先将MAC电脑的以太网共享给airport,使iOS设备能够通过wifi连接

  打开系统偏好设置,找到共享,选择internet共享,在右侧“通过以下方式将”选择以太网,“连接共享给其他电脑”选择airPort。

  2) 打开paros ,设置paros的本地代理paros下载地址(http://www.parosproxy.org/)

   在paros的tools-》options中选择local proxy,在Address 中输入AirPort的ip地址。输入端口8080。打开系统偏好设置,找到网络,选择左侧的AirPort,可以看到AirPort的地址为 169.254.69.225,将该地址填入到上面提到的Address栏中。

  3) 使用ios设备连接mac共享出来的网络:在iOS设备中,选择设置-》通用-》网络-》wifi,找到共享的网络,加入。然后在该网络的纤细内容中的http代理部分,选择手动,输入paros中设置的代理ip和端口。

  4) 下面就可以使用paros来监控iOS设备的网络,我们打开Safiri,在paros中即可察看到网络的所有请求。

2. tcpdump命令 + 可视化抓包工具

  基本原理

  tcpdump命令是一个网络的抓包的命令行,他能指定具体的设备,也能制定具体的五元组进行捕获链路上的数据包。它可以再终端上打印出来也可以将捕获到得数据写入到一个文件,文件的格式是二进制形式,所以,我在打开该文件的时候才用的工具是UltraEdit。

当然也可以保存成Wireshark能够识别的pcap格式,然后使用Wireshark进行查看。

  操作步骤

  1) 采用ssh登陆iphone手机,使用top命令获取:

  具体步骤如下:

  a) 获取设备IP地址(wifi地址):

  b) 在PC上打开终端,输入ssh [email protected]地址:

  输入密码:alpine (root用户的默认密码)

  2) 通过“tcpdump -X -s0 -w /data.pcap”命令将tcp数据包保存到iOS设备的根目录下。

  3) 通过91助手等工具取出pcap文件,在Windows下使用双击使用Wireshark打开查看。

  当然也可以不输出到文件,tcpdump的命令格式和参数说明:

  tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]

  [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]

  [ -T 类型 ] [ -w 文件名 ] [表达式 ]

  选型介绍:

  -a    将网络地址和广播地址转变成名字;

  -d    将匹配信息包的代码以人们能够理解的汇编格式给出;

  -dd   将匹配信息包的代码以c语言程序段的格式给出;

  -ddd   将匹配信息包的代码以十进制的形式给出;

  -e    将捕获的包数显示出来

  -f    将外部的Internet地址以数字的形式打印出来;

  -l    使标准输出变为缓冲行形式;

  -n    不把网络地址转换成名字;

  -t    在输出的每一行不打印时间戳;

  -v    输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

  -vv   输出详细的报文信息;

  -c    在收到指定的包的数目后,tcpdump就会停止;

  -F    从指定的文件中读取表达式,忽略其它的表达式;

  -i    指定监听的网络接口;

  -r    从指定的文件中读取包(这些包一般通过-w选项产生);

  -w   直接将包写入文件中,并不分析和打印出来;

  -T    将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)

  在使用该命令的时候,我主要使用的主要选项是: -i [接口名] -w [文件名] -v -vv -c -X -e

  例如:

  我在从eth0捕获100个数据包的时候,并将数据写入到capture.cap文件中,命令格式为:

  tcpdump -i eth0 -w capture.cap -v -vv -c 100 -X -e

  抓取一个一个ip段之间的数据包:

  tcpdump –s 0 –w socket host 10.1.3.9 and host 10.1.3.84

  如果从eth0且通信协议端口为22,目标IP为192.168.1.100获取数据:

  tcpdump -i eth0 port 22 and src host 192.168.1.100

  此外还有其他的一些关键词:host,(主机) , net( 网关), port(端口) , src(源IP) , dst(目的IP), 正则表达式:and , or。

  未越狱ios设备的抓包方法

  2014-04-24 22:33 181人阅读 评论(0) 收藏 举报

  Remote Virtual Interface

  在iOS 5以后增加了RVI(Remote Virtual Interface),它让我们使用OS X来抓取ios device上数据包。

  基本的方法就是把设备通过USB连上mac上。然后为这台设备安装RVI,这个虚拟的在Mac上的网卡,就代表这台ios设备的使用网卡。然后在mac上跑抓包的工具,定位到这个虚拟的网卡上,来抓包。

  (1)安装RVI,需要使用rvictl工具,以下步骤在mac的终端中操作:

  $ # First get the current list of interfaces.

  $ ifconfig -l

  lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0

  $ # Then run the tool with the UDID of the device.

  $ rvictl -s 74bd53c647548234ddcef0ee3abee616005051ed

  Starting device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]

  $ # Get the list of interfaces again, and you can see the new virtual

  $ # network interface, rvi0, added by the previous command.

  $ ifconfig -l

  lo0 gif0 stf0 en0 en1 p2p0 fw0 ppp0 utun0 rvi0

  (2)安装成功后,此时其实可以用任何抓包工具来抓取。包括wireshark等。因为这时就会看到一个rvi0的网卡。不过今天我们介绍的是通过tcpdump来搞。

  在终端中输入如下命令:

  sudo tcpdump -i rvi0 -n -s 0 -w dump.pcap tcp

  解释一下上面重要参数的含义:

  -i rvi0 选择需要抓取的接口为rvi0(远程虚拟接口)

  -s 0 抓取全部数据包

  -w dump.pcap 设置保存的文件名称

cp 只抓取tcp包

  当tcpdump运行之后,你可以在iOS设备上开始浏览你想抓取的App,期间产生的数据包均会保存到dump.pcap文件中,当想结束抓取时直接终止tcpdump即可。然后在mac中找到dump.pcap文件。用wireshark打开就ok。

  (3)去掉RVI这个虚拟网卡,使用下面的命令:

  $ rvictl -x 74bd53c647548234ddcef0ee3abee616005051ed

  Stopping device 74bd53c647548234ddcef0ee3abee616005051ed [SUCCEEDED]

  整个流程就是这样的。自己动手操作一下吧。

时间: 2024-10-08 10:57:25

iOS系统设备网络抓包工具介绍:越狱和不越狱的办法的相关文章

网络抓包工具Charles的介绍与使用

在复杂的App开发过程中,我们会涉及各种复杂的网络操作,各种API的调用和数据接收.如果我们只是通过控制台来查看网络的输入输出,就会非常麻烦.在Mac上有一款非常优秀的网络抓包工具--Charles,在iOS开发中也是常常用到.今天我们就来介绍如何安装使用Charles.关于Charles安装包.破解包和证书我已经上传至网盘:http://pan.baidu.com/s/1numMoTr    .大家可以下载直接安装.操作步骤如下: (1)直接安装dmg文件,安装过程很简单,就不赘述了.由于Ch

网络抓包工具 Fiddler

网络抓包工具 Fiddler 下载网址 http://www.telerik.com/fiddler 简单介绍 Fiddler是一个http协议调试代理工具,它能够记录并检查全部你的电脑和互联网之间的http通讯,设置断点.查看全部的"进出"Fiddler的数据(指cookie,html,js,css等文件,这些都能够让你胡乱改动的意思). Fiddler 要比其它的网络调试器要更加简单.由于它不只暴露http通讯还提供了一个用户友好的格式. 能够在调试HTTP中使用.也能够用来进行爬

HttpWatch网络抓包工具的使用

HttpWatch网络抓包工具是专为IE浏览器集成的一款网络拽包工具. 是一款强大的网页数据分析软件,是最好用的抓包工具,httpwatch可以抓到上传视屏图片的包,一般的抓包软件是抓不到的.打开IE浏览器,选择工具“再选择“HttpWatch Professional”即可.建议用专业版进行网络数据抓取. 网络爬虫是捜索引擎抓取系统的重要组成部分.爬虫技术可以应用在很多方面,当然是好的方面.用HttpWatch结合网络爬虫技术就可以很轻松的实现网络数据的抓取. 然后实现一些应用. (1)下载H

对几款网络抓包工具的评测

对几款网络抓包工具的评测 by 拉登哥哥 最近在写个CMD远控 写着写着 想在服务端上做点手脚 都知道杀软误报 特别是黑软大部分都报毒 但实际上是正常的 对此可能部分人并不装杀软 基本上靠自己分析软件是否安全 1 低级点的 用相关工具 检测不能真的完全保证程序无毒  也没啥技术含量 原因是 可能你正在检测时 后门没激活(比如 我设置晚上12点才向外连接等) 你在白天或其它时间检测我的工具 可能没发现任何异常 晚上你开工具做事的时候 后门也跟着激活了 哈哈 这方法 实际中还真有人这么看 以前某个木

网络抓包工具-Wireshark学习资料

wireshark一个非常牛逼的网络抓包工具.转载一系列博文 一站式学习Wireshark(一):Wireshark基本用法 一站式学习Wireshark(二):应用Wireshark观察基本网络协议 一站式学习Wireshark(三):应用Wireshark IO图形工具分析数据流 一站式学习Wireshark(四):网络性能排查之TCP重传与重复ACK 一站式学习Wireshark(五):TCP窗口与拥塞处理 一站式学习Wireshark(六):狙击网络高延时点 一站式学习Wireshark

Android 常用抓包工具介绍之Charles

?更多技术干货请戳:听云博客 Charles是一款抓包修改工具,相比起TcpDump,charles具有界面简单直观,易于上手,数据请求控制容易,修改简单,抓取数据的开始暂停方便等等优势!前面介绍了如何使用TcpDump抓包,下面给大家介绍一下Charles的使用. Charles抓包 Charles是一个HTTP代理服务器/HTTP监视器/反转代理服务器.它允许一个开发者查看所有连接互联网的HTTP通信.这些包括request.response现HTTP headers(包含cookies与c

模仿Wireshark网络抓包工具实现---c++

最近在用Wireshark抓包工具的时候,老感觉这东西用起来很简单,功能强大,所以想了解他的实现原理,我就自己好奇写了一个实现基本功能的demo吧. 其实叫抓包工具,其实就是抓取流经自己网卡的所有ip包,我们能够按照ip包的协议解析不就行了. 实现的核心在这里: 1 //创建SOCKET 2 sock = socket(AF_INET, SOCK_RAW, IPPROTO_IP); 3 if (sock == INVALID_SOCKET) 4 { 5 cout << WSAGetLastEr

UNIX系统上的抓包工具tcpdump常用命令说明

tcpdump 介绍 tcpdump采用命令行方式对接口的数据包进行筛选抓取,其丰富特性表现在灵活的表达式上. 不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包. 例如: tcpdump - dump traffic on a network tcpdump是一个用于截取网络分组,并输出分组内容的工具.凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具 tcpdump 支持针对网络层.协议.主机.网络或端口的

Wireshark 网络抓包工具Wireshark的使用

阅读目录 wireshark介绍 wireshark不能做的 wireshark VS Fiddler 同类的其他工具 什么人会用到wireshark wireshark 开始抓包 wireshark 窗口介绍 wireshark 显示过滤 保存过滤 过滤表达式 封包列表(Packet List Pane) 封包详细信息 (Packet Details Pane) wireshark与对应的OSI七层模型 TCP包的具体内容 实例分析TCP三次握手过程 wireshark介绍 wireshark