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抓包分析

1. download tcpdump binary from the web: http://www.androidtcpdump.com/android-tcpdump/downloads 2. ...
  • coloriy
  • coloriy
  • 2017年05月23日 16:45
  • 533

android手机使用tcpdump抓包经验

前两天做了一个小android的demo,由于刚接触android所以了解的比较浅,想查看日志以及抓包都有点无从下手,今天有点空闲就想研究下android抓包的一些事情,从网上搜索资料以及找公司and...
  • jw19881
  • jw19881
  • 2013年05月23日 16:41
  • 1134

ubuntu14.04之Tcpdump网络流量分析器

tcpdump是一个协议分析器,用tcpdump显示、写入和读取流量,使用下列选项运行: tcpdump -n -i -s -c 具体使用代码清单: (1)使用tcpdump捕获5个数据包 (...
  • u010951938
  • u010951938
  • 2016年02月29日 18:19
  • 1167

windows下使用tcpdump + 模拟器获取android数据包

一. 需要工具       adb:      tcpdump: http://www.strazzere.com/android/tcpdump     WireShark: 抓包解包工具 ...
  • flyingsoul_wang
  • flyingsoul_wang
  • 2015年03月13日 17:09
  • 1073

Linux下抓包工具tcpdump使用

为了弄明白keepalived+lvs是如何交互的,必须学会分析和使用抓包工具进行分析,下面就是对抓包工具的的使用简单介绍如下,有些部分参考的网上的,如有不对的地方欢迎指正,谢谢! ...
  • yangzongzhuan
  • yangzongzhuan
  • 2016年04月04日 13:07
  • 1246

基于 tcpdump for Android 的智能移动终端数据包捕获完整解决方案

如何在Android智能手机上捕获数据包? 本文由CSDN-蚍蜉撼青松【主页:http://blog.csdn.net/howeverpf】原创,转载请注明出处!         当前An...
  • zhongbeida_xue
  • zhongbeida_xue
  • 2016年09月28日 14:01
  • 2022

Linux系统抓包命令tcpdump使用实例

linux系统网络抓包用tcpdump,首先当然是看有没有安装了,没有就用yum安装一下。 tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是cent...
  • u011729265
  • u011729265
  • 2016年01月27日 15:49
  • 1714

利用tcpdump抓取mysql sql语句

这个脚本是我之前在网上无意间找个一个利用tcpdump 抓包工具获取mysql流量,并通过过滤把sql 语句输入。脚本不是很长,但是效果很好。#!/bin/bash #this script used...
  • AloneSword
  • AloneSword
  • 2014年03月17日 15:37
  • 1806

Tcpdump(linux)下载、安装、使用说明

Tcpdump(linux)下载、安装、使用说明 对于网络管理人员来说,使用嗅探器能够随时掌控网络 的实际情况,在网络性能急剧下降的时候,能够通过嗅探器来分析原因,找出造成网络阻塞的根源。 Tcp...
  • ai2000ai
  • ai2000ai
  • 2017年01月12日 15:55
  • 6420

NDK交叉编译tcpdump实现安卓抓包

下面介绍一下具体过程。 1.Git clone libpcap和tcpdump两个项目。 git clone https://github.com/the-tcpdump-group/tc...
  • xuqiqiang1993
  • xuqiqiang1993
  • 2017年03月27日 16:09
  • 747
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tcpdump工具使用(Android环境)
举报原因:
原因补充:

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