Tcpdump 用法详解

Tcpdump 是信息安全领域常用的嗅探和网络分析工具,运行在命令行下。虽然要用好它需要对 TCP/IP 协议有足够的了解,但从另一个角度讲,多用一下同样也能促进对网络协议的掌握。

大部分 Linux 发行版都内置了 Tcpdump 工具。如果没有,也可以直接使用对应的包管理器进行安装(如:$ sudo apt-get install tcpdump$ sudo yum install tcpdump

一、命令选项
  • -i any:监听所有网络接口
  • -i eth0:监听指定的网络接口(eth0)
  • -D:列出所有可用的网络接口
  • -n:不解析主机名
  • -nn:不解析主机名和端口名
  • -q:输出较少的信息
  • -t:更便于阅读的时间戳输出
  • -tttt:最便于阅读的时间戳输出
  • -X:以 HEX 和 ASCII 模式输出数据包的内容
  • -XX:与 -X 选项相同,同时还输出 ethernet 头
  • -v, -vv, -vvv:输出更多数据包的信息
  • -c:获取到指定数目的数据包后就停止
  • -s:定义 snaplength (size) ,-s0 表示获取全部
  • -S:输出绝对序列号
  • -e:获取 ethernet 头信息
  • -E:通过提供 key 来解密 IPSEC 流量
二、表达式

通过表达式可以对各种不同类型的网络流量进行过滤,以获取到需要的信息。这也是 tcpdump 强大功能的一个体现。
主要有 3 种类型的表达式:

  • Type(类型)选项包括 hostnetport
  • Direction(方向)选项包括 srcdst 以及它们的组合
  • Proto(协议)包括 tcpudpICMPah
三、应用实例

指定网络接口
# tcpdump -i <dev>

-i 指定监听接口

vboxnet0 是 virtualvox 虚拟机通过 Host-only 方式虚拟的一张网卡

原始信息输出模式
# tcpdump -ttttnnvvS
更详细的输出,不解析主机名和端口名,使用绝对序列号,方便阅读的时间戳

tcpdump

通过IP地址过滤
# tcpdump host 10.2.64.1

tcpdump host

10.2.64.1 是我的 DNS 服务器地址

HEX 输出
# tcpdump -nnvXSs 0 -c1 icmp

tcpdump HEX 输出

通过源地址和目标地址进行过滤
# tcpdump src 10.2.67.203

tcpdump src

# tcpdump dst 10.2.67.203

tcpdump dst

通过子网进行过滤
# tcpdump net 10.2.64.0/24

tcpdump net

监听指定端口号
# tcpdump port 515

tcpdump port

515 是本地打印机 LPD 服务的端口号

指定协议
# tcpdmp icmp

tcpdump icmp

端口范围
# tcpdump portrange 21-23

通过包大小过滤
# tcpdump less 32
# tcpdump greater 64
# tcpdump <= 128

写入 PCAP 文件
# tcpdump port 80 -w capture_file

读取 PCAP 文件
# tcpdump -r capture_file

四、高级功能
1. 逻辑运算符

可以通过命令选项的不同组合(使用逻辑运算符)完成更复杂的任务。运算符包括以下3种:

  • AND(and&
  • OR(or||
  • EXCEPT (not!

# tcpdump src 10.2.64.29 and dst port 80
即捕捉从指定主机(10.2.64.92)发出,且目标端口为 80 的所有网络数据

# tcpdump src net 192.168.0.0/16 and dst net 10.0.0.0/8 or 172.16.0.0/16
即捕捉从指定子网(192.168.0.0/16)发送到目标子网(10.0.0.0/8 和 172.16.0.0/16)的所有网络数据

# tcpdump src 192.168.56.1 and not dst port 22
即捕捉从指定主机(192.168.56.1)发出,且目标端口不为 22 的所有网络数据

2. 指定 TCP 标志位(Flags)

# tcpdump 'tcp[13] & 32!=0' 所有 URGENT (URG) 包
# tcpdump 'tcp[13] & 16!=0' 所有 ACKNOWLEDGE (ACK) 包
# tcpdump 'tcp[13] & 8!=0' 所有 PUSH (PSH) 包
# tcpdump 'tcp[13] & 4!=0' 所有 RESET (RST) 包
# tcpdump 'tcp[13] & 2!=0' 所有 SYNCHRONIZE (SYN) 包
# tcpdump 'tcp[13] & 1!=0' 所有 FINISH (FIN) 包
# tcpdump 'tcp[13]=18' 所有 SYNCHRONIZE/ACKNOWLEDGE (SYNACK) 包

其他指定标志位的方式如:
# tcpdump 'tcp[tcpflags] == tcp-syn'
# tcpdump 'tcp[tcpflags] == tcp-fin'

一些特殊的用法
# tcpdump 'tcp[13] = 6' RST 和 SYN 同时启用的数据包(不正常)
# tcpdump 'tcp[32:4] = 0x47455420' 获取 http GET 请求的文本
# tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D' 获取任何端口的 ssh 连接(通过 banner 信息)
# tcpdump 'ip[8] < 10' ttl 小于 10 的数据包(出现问题或 traceroute 命令)
# tcpdump 'ip[6] & 128 != 0' 非常有可能是黑客入侵的情况

tcpdump http GET

参考文章:

A tcpdump Tutorial and Primer with Examples

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,902评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,037评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,978评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,867评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,763评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,104评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,565评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,236评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,379评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,313评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,363评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,034评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,637评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,719评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,952评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,371评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,948评论 2 341

推荐阅读更多精彩内容

  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 5,939评论 1 13
  • tcpdump抓包命令 tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和...
    Yihulee阅读 13,991评论 0 3
  • 1、抓取回环网口的包:tcpdump -i lo 2、防止包截断:tcpdump -s0 3、以数字显示主机及端口...
    依然饭太稀阅读 10,442评论 0 1
  • 实用tcpdump命令 //查看本机与mysql的操作命令注意-i any表示监听所有网络接口,我们也根据自身情况...
    kevinhuangk阅读 1,200评论 0 1
  • 电子文档编辑器的出现,极大地提高了我们写作、编辑的方便。 它极大地便于使用者调整自己的思路、修改具体的内容,不管这...
    斑斓糖衣阅读 700评论 0 0