18.4.4 协议分析

2025-06-17 03:14:43 更新

(一)作用

检测协议安全性

(二)分析工具

(1)TCPDump:提供命令行方式,提供灵活包过滤规则,支持正则表达式,支持各类操作系统(windows下为WinDump),默认截获所有数据包。通过关键字及逻辑运算符,构成灵活过滤规则

(2)Wireshark:网络封包分析软件。功能是截取网络封包,并尽可能显示出最详细的网络封包资料。使用WinPCAP作为接口,直接与网卡进行数据报文交换。

(三)TCPDump实践

tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]

[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds]

[ -i interface ] [ -j tstamptype ] [ -M secret ]

[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]

[ -W filecount ] [ -y datalinktype] [ -z command ]

[ -Z user ] [ expression ]

(1)命令选项


命令选项

描述

1

-a

将网络地址和广播地址转换成名字

2

-d

将匹配信息包的代码以能理解的汇编格式给出

3

-dd

将匹配信息包的代码以C语言程序段格式给出

4

-ddd

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

5

-e

在输出行打印数据链路层的头部信息

6

-f

将外部Internet地址以数字形式打印

7

-l

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

8

-n

不把网络地址转换成名字

9

-t

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

10

-v

输出稍详细信息,如IP包中TTL和服务类型信息

11

-vv

输出详细的报文信息

12

-c

在收到指定包数后,TCPDump就会停止

13

-F

从指定文件中读取表达式,忽略其他表达式

14

-i

指定监听的网络接口

15

-r

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

16

-w

直接将包写入文件中,不分析和打印

17

-T

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

18

正则表达式

拦截符合表达式条件的数据包

(2)表达式关键字


关键字

说明

示例

1

类型

host(主机)

host x.y.z.2

net(网络地址)

host x.y.z.0

port(端口号,默认)

port 25

2

传输方向

src

src x.y.z.2

dst

dst net x.y.z.0

dst or src(默认)

未指明

dst and src


3

协议

包括FDDI(Ether)、IP、ARP、RARP、TCP、UDP等

4

其他

Gateway、Broadcast、Less和Greater

(3)逻辑运算功能(关键字)


逻辑运算

说明

1

非运算

not !

2

与运算

and &&

3

或运算

or ||

(4)命令示例


操作

命令

1

截获X.Y.Z.61主机收发的所有数据包

tcpdump host X.Y.Z.61

2

截获主机X.Y.Z.1和主机X.Y.Z.2或X.Y.Z.3的通信

tcpdump host X.Y.Z.1 and \{ X.Y.Z.2 or X.Y.Z.3 \}

3

监听主机X.Y.Z.1与除主机X.Y.2.2外的其他所有主机通信的IP包

tcpdump ip host X.Y.Z.1 and ! X.Y.2.2

4

获取主机X.Y.Z.1接收或发出的Telnet包

tcpdump tcp port 23 host X.Y.Z.1