iOS App的tcp、udp数据包抓取与分析教程

在对app进行安全分析时,有时需要检查app的网络接口请求是否安全,网络协议交互是否可被恶意利用。因此就需要运行app并捕获其与服务端交互的网络数据进行分析。前面文章已介绍过http、https数据包的捕获,该篇文章主要介绍捕获app的tcp、udp流量数据。我们将使用tcpdump捕获tcp、udp流量,再通过wireshark过滤、分析app的tcp、udp流量

一、tcpdump捕获app流量

  1. tcpdump安装(iOS设备已越狱)

    ios设备越狱后,则会在设备中安装cydia。安装tcpdump只需要打开cydia搜索"tcpdump",然后点击安装即可,如下所示

    image
    image

    如果搜索不到tcpdump,则可以尝试添加如下源

    https://apt.bingner.com

  2. 运行tcpdump捕获app流量

    ios设备通过数据线连接到电脑

    ssh连接ios设备,如下所示

    image

    使用命令ifconfig 查看tcpdump需要抓包的网络接口,如下所示

    image

    启动tcpdump监听上面查看到的网络接口,捕获该网络接口的数据流,并进行保存,如下所示

    捕获tcp、udp命令:tcpdump -i en0 -vv -w 1.pcap

    image

    运行需要分析的app,让它产生网络数据,如下所示

    image

    tcpdump继续抓包,app运行后不要马上关掉,准备查看app的流量特征

  3. 识别app的流量特征

    安装lsof,用于查看app网络交互信息。打开cydia,搜索"lsof",(lsof很强大,这里有点大材小用了,想了解更多关于lsof知识点的朋友可以自行百度Google或者查看文末的参考链接****)点击安装,如下所示

image
image

在运行app后,不要马上关掉app进程,我们要找出与app通信的服务端ip或者端口以及网络协议(tcp、udp),方便后续wireshark过滤

新开一个终端,ssh再连接一次ios设备,查看app的进程pid(比如该app的进程pid为11524),如下所示

image

找到app的进程pid后,查看app的网络交互情况,我们使用lsof,它可查看系统中的文件使用情况,广义上网络套接字也属于文件描述符,因此可以通过lsof查看,如下所示

image

lsof -i -a -p #我们上面查看到的进程pid

-i 表示 列出所有网络连接

-a 表示 指定当前用户

-p 表示 某个进程(pid)

我们即可看到该app网络交互的网络协议ip端口

最后停止tcpdump捕获app网络数据,结束抓包

image

二、wireshark过滤分析app流量

  1. wireshark下载安装

    wireshark下载,可通过如下链接下载(如果下载慢,也可以公众号回复"wireshark",百度盘下载)

    https://www.wireshark.org/download.html

    wireshark安装

    双击wireshark安装包,如下所示

    image

    拖动wireshark到Applications中

    image
  2. 根据app的流量特征过滤数据包

    通过scp将tcpdump捕获到的网络数据包拷贝到电脑中,如下所示

    image

    使用wireshark打开网络数据包,如下所示

    image
    image
  3. 根据上面识别到的app的流量特征(IP、端口)过滤出app的流量,如下所示

    image
  4. 跟踪app的整个流量交互过程

    右键选择 follow

    image

    再选择 tcp stream

    image

    即可看到app与服务端tcp网络交互过程

    image
  5. 后续文章将对app进行逆向分析还原交互过程

参考链接:

https://linux.die.net/man/8/lsof

你可能感兴趣的:(iOS App的tcp、udp数据包抓取与分析教程)