要求必须有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    将匹配信息包的代码以十进制的形式给出;
包括源mac和目的mac,以及网络层的协议;
   -f    将外部的Internet地址以数字的形式打印出来;
   -l    使标准输出变为缓冲行形式;
   -n    指定将每个监听到数据包中的域名转换成IP地址后显示,不把网络地址转换成名字;
     -nn:    指定将每个监听到的数据包中的域名转换成IP、端口从应用名称转换成端口号后显示
   -t    在输出的每一行不打印时间戳;
   -v    输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;
   -vv    输出详细的报文信息;
   -c    在收到指定的包的数目后,tcpdump就会停止;
   -F    从指定的文件中读取表达式,忽略其它的表达式;
   -i    指定监听的网络接口;
      -p:    将网卡设置为非混杂模式,不能与host或broadcast一起使用
   -r    从指定的文件中读取包(这些包一般通过-w选项产生);
   -w    直接将包写入文件中,并不分析和打印出来;
     snaplen表示从一个包中截取的字节数。0表示包不截断,抓完整的数据包。默认的话 tcpdump 只显示部分数据包,默认68字节。
   -T    将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程调用)和snmp(简单网络管理协议;)
          -X            告诉tcpdump命令,需要把协议头和包内容都原原本本的显示出来(tcpdump会以16进制和ASCII的形式显示),这在进行协议分析时是绝对的利器。
------------------------------------------------1、抓取回环网口的包:tcpdump -i lo2、防止包截断:tcpdump -s03、以数字显示主机及端口:tcpdump -n
tcpdump:()
http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/8885
1、抓取回环网口的包:tcpdump -i lo2、防止包截断:tcpdump -s03、以数字显示主机及端口:tcpdump -n
tcpdump:()
http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/8885