TCPDUMP抓取android手机流量包+wireshark分析

要求必须有root权限


1、推送android tcpdump到手机data/local路径下

C:\Users\autotest>adb push C:\Users\autotest\Desktop\tcpdump /data/local
1519 KB/s (2202152 bytes in 1.415s)

2、执行命令

126|root@:/data/local # tcpdump -p -s 0 -w /sdcard/001.pcap

tcpdump -p -s 0 -w /sdcard/001.pcap
tcpdump: listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes


命令说明:

# "-p": disable promiscuous mode (不使用混杂模式)
# "-s 0": capture the entire packet(-s参数用以指定数据包捕获长度,此处指定为0,意为抓取完整的数据包)
# "-w *.pcap": write packets to a file (将结果写入一个pcap文件,而不在终端上直接显示)


3、取出数据

C:\Users\autotest>adb pull /sdcard/001.pcap D:/001.pcap
955 KB/s (13704 bytes in 0.014s)


4、导入wireshark分析

第一区域用来显示简单的数据包信息,我们用tcpdump抓包的时候,默认情况下也是显示成这样的;第二个区域用来显示选中的数据包的详细信息,细心一点会发现他是按照TCP/IP四层结构显示的,第一行是数据链路层的信息,第二行是网络层信息(IP协议),第三个是传输层信息(TCP协议),第四行是应用层信息(HTTP协议),可以展开每一行用来观察具体的内容;R3区域是用来显示此数据包的真实面目。

参数详解:

root@:/ # tcpdump  -help
tcpdump  -help
tcpdump version 4.5.1
libpcap version 1.5.2
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
                [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
                [ -i interface ] [ -j tstamptype ] [ -M secret ]
                [ -Q in|out|inout ]
                [ -r file ] [ -s snaplen ] [ -T type ] [ -V file ] [ -w file ]
                [ -W filecount ] [ -y datalinktype ] [ -z command ]
                [ -Z user ] [ expression ]


tcpdump采用命令行方式,它的命令格式为:

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

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

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

 tcpdump的选项介绍

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

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

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

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

   -e    在输出行打印出数据链路层的头部信息,包括源mac和目的mac,以及网络层的协议

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

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

   -n    指定将每个监听到数据包中的域名转换成IP地址后显示,不把网络地址转换成名字;

     -nn:    指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示

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

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

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

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

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

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

      -p:    将网卡设置为非混杂模式,不能与host或broadcast一起使用

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

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

            -s snaplen         snaplen表示从一个包中截取的字节数。0表示包不截断,抓完整的数据包。默认的话 tcpdump 只显示部分数据包,默认68字节。

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

          -X            告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。

------------------------------------------------

1、抓取回环网口的包:tcpdump -i lo

2、防止包截断:tcpdump -s0

3、以数字显示主机及端口:tcpdump -n

tcpdump:(http://download.csdn.net/download/roland_sun/8204931)

http://www.cnblogs.com/anee/archive/2013/09/12/3316139.html

http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/8885

http://blog.csdn.net/hzhsan/article/details/43445787

wireshark:(下载路径:http://w.x.baidu.com/alading/anquan_soft_down_ub/15788

http://blog.csdn.net/ylyuanlu/article/details/7743409

http://shensy.iteye.com/blog/1904118

你可能感兴趣的:(android)