tcpdump工具使用(Android环境)

原创 2013年12月04日 20:55:28

常用命令
    Linux测试工具tcpdump命令用于监视TCP/IP连接并直接读取数据链路层的数据包头.可以指定哪些数据被监视,哪些空是要显示格式,如:
    tcpdump -i eth0        监视所有以太网上来往的通信
    tcpdump -i eth0 host hostname    监听主机名为hostname的以太网上来往的通信
    tcpdump -i eth0 -p    禁用promiscuous模式,即值关心本地主机通信
    tcpdump -i eth0 src host hostname    读取主机hostname发送的所有数据
    tcpdump -i eth0 dst host hostname    读取送到主机hostname的所有数据
    还可以监听通过指定网关的数据包    tcpdump -i eth0 gareway Gatewayname
    还可以监听某个端口的TCP或UDP数据包    tcpdump -i eth0 host hostname and porn 80    ; 如果希望只看到发送到该端口或者从该端口发送的数据,则使用src port或者dst port.
 
进阶一:表达式
    tcpdump有几种关键字.
    第一种是关于类型的关键字,主要包括host, net, port, 例如 host 210.27.48.2,指明它是个主机; net 202.0.0.0 指明202.0.0.0是个网络地址, port 23指端口23. 默认上是host类型.
    第二种是确定传输方向的关键字,主要包括src, dst, dst or src, dst and src.举例,src 210.27.48.2指明ip包中源地址是210.27.48.2, dst net 202.0.0.0指明目的网络地址是202.0.0.0 . 默认是dst or src.
    第三种是协议的关键字,主要包括fddi, ip, arp, rarp, tcp, udp等类型.默认监听所有协议的信息包.
    其他关键字还有gateway, broadcast, less, greater.
    还有三种逻辑运算: 取非运算是 'not' '!', 与运算是 'and', '&&'; 或运算是 'or', '||'.
举些例子:
1)截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通信:
tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
2)如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包:
tcpdump ip host 210.27.48.1 and ! 210.27.48.2
3)对本机的udp 123 端口进行监视
tcpdump udp port 123
    tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
    
进阶二:选项
    Linux tcpdump的选项介绍:
-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(简单网络管理协议;)
 
进阶三:输出结果
(1)数据链路层头信息
使用命令#tcpdump--ehosticeice是一台装有Linux的主机,她的MAC地址是0:90:27:58:AF:1AH219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条命令的输出结果如下所示:
 
21:50:12.847509eth0<8:0:20:79:5b:460:90:27:58:af:1aip60:h219.33357>;ice.telnet0:0(0)ack22535win8760(DF)分析:21:50:12是显示的时间,847509是ID号,eth0<表示从网络接口eth0接受该数据包,eth0>;表示从网络接口设备发送数据包,8:0:20:79:5b:46是主机H219的MAC地址,它表明是从源地址H219发来的数据包.0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的目的地址是ICE.ip是表明该数据包是IP数据包,60是数据包的度,h219.33357>;ice.telnet表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口.ack22535表明对序列号是222535的包进行响应.win8760表明发送窗口的大小是8760.
 
(2)ARP包的TCPDUMP输出信息
使用命令#tcpdumparp得到的输出结果是:
22:32:42.802509eth0>;arpwho-hasroutetellice(0:90:27:58:af:1a)
22:32:42.802902eth0 分析:22:32:42是时间戳,802509是ID号,eth0>;表明从主机发出该数据包,arp表明是ARP请求包,who-hasroutetellice表明是主机ICE请求主机ROUTE的MAC地址。0:90:27:58:af:1a是主机ICE的MAC地址。
 
(3)TCP包的输出信息
用TCPDUMP捕获的TCP包的一般输出信息是:src>;dst:flagsdata-seqnoackwindowurgentoptionssrc>;dst:表明从源地址到目的地址,flags是TCP包中的标志信息,S是SYN标志,F(FIN),P(PUSH),R(RST)"."(没有标记);data-seqno是数据包中的数据的顺序号,ack是下次期望的顺序号,window是接收缓存的窗口大小,urgent表明数据包中是否有紧急指针.Options是选项.
 
(4)UDP包的输出信息
用TCPDUMP捕获的UDP包的一般输出信息是:route.port1>;ice.port2:udplenthUDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机ICE的port2端口,类型是UDP,包的长度是lenth
 
进阶四:抓包
1.首先把附件中的tcpdump 用adb推到板子上.
2.adb shell tcpdump -p -vv -s 0 -w /sdcard/capture.pcap
3.按ctrl+c停止
4.adb pull /sdcard/capture.pcap d:\    导出该文件
5.用附件的WireShark打开该文件看数据包.

有道笔记连接: http://note.youdao.com/share/?id=2d304e691cb9113a70e17f88050fc912&type=note

相关文章推荐

Android抓包工具tcpdump使用教程

转载自:http://blog.csdn.net/zhengyinhui100/article/details/17492631 一、准备: 1. Android手机需要先获得root权限。一种...

Android 联网监控抓包工具的制作(tcpdump的使用)

最近做一个Android联网抓包的工具自己在网上搜索了好久发现还是没有头绪于是考虑在linux层上下功夫于是采用linux的tcpdump来实现了抓包的功能用简单的话来定义tcpdump,就是:dum...
  • jyjzml
  • jyjzml
  • 2011年03月30日 18:46
  • 8136

Android抓包工具tcpdump使用教程(整理)

Android抓包工具tcpdump使用教程:安装使用步骤及命令介绍

android 的 tcpdump工具

  • 2017年04月21日 11:19
  • 1.96MB
  • 下载

Android抓包工具tcpdump

  • 2016年12月09日 15:37
  • 921KB
  • 下载

通过tcpdump/wireshark工具抓包Android平台

如果要抓TCP数据包,我们可以使用TCPdump工具,类似于windows/linux下使用的这个工具一样。具体方法是 下载tcpdump,还有个地址是http://www.strazzere....
  • offbye
  • offbye
  • 2012年01月29日 17:23
  • 1944

android tcpdump 工具

  • 2014年06月23日 17:50
  • 638KB
  • 下载

Linux下的sniffer工具--TcpDump的安装和使用

Linux下的sniffer工具 Tcpdump的安装和使用   发布时间:2006.11.02 09:35     来源:ccidnet    作者:lyn...

tcpdump抓包工具使用实例介绍

Tcmdump使用说明 主要用于Linux系统进行抓包,保存为cap文件,然后使用wireshark等工具打开文件查看报文信息,可以进行相关统计分析。   tcpdump的安装方法 ...

linux使用tcpdump抓包工具抓取网络数据包

tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04。 tcpdump的命令格式 tcpdump的参数众多,通过man t...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tcpdump工具使用(Android环境)
举报原因:
原因补充:

(最多只允许输入30个字)