(一)作用
检测协议安全性
(二)分析工具
(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 |