最近工作遇到非Web、CS端的系统,无从下手,后查阅资料使用后在此记录:
Linux(RedHat,Centos)
一般系统自带tcpdump ,若未安装使用 yum install tcpdump 进行安装。
常用用法如下:
tcpdump -i lo
抓取本地数据
tcpdump -i eth1 host 192.168.0.1
抓取指定经过eth0网卡,IP为192.168.0.1的数据
过滤端口:
tcpdump -i eth0 src port 80
抓取所有经过网卡0,源端口为80的网络数据
过滤端口:
tcpdump -i eth0 dst port 80
抓取所有经过网卡0,目的端口为80的网络数据
过滤特定协议:
tcpdump -i eth0 tcp
抓取所有经过网卡0,协议类型为tcp的网络数据
抓包存取:
tcpdump -i eth0 host 192.168.0.1 and port 80 -w test.pcap
抓取所有经过网卡0,目的主机为192.168.0.1的且端口80的数据并保存为wireshark可识别的数据包格式
具体参数说明:
- -a 尝试将网络和广播地址转换成名称。
- -c<数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
- -d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
- -dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
- -ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
- -e 在每列倾倒资料上显示连接层级的文件头。
- -f 用数字显示网际网络地址。
- -F<表达文件> 指定内含表达方式的文件。
- -i<网络界面> 使用指定的网络截面送出数据包。
- -l 使用标准输出列的缓冲区。
- -n 不把主机的网络地址转换成名字。
- -N 不列出域名。
- -O 不将数据包编码最佳化。
- -p 不让网络界面进入混杂模式。
- -q 快速输出,仅列出少数的传输协议信息。
- -r<数据包文件> 从指定的文件读取数据包数据。
- -s<数据包大小> 设置每个数据包的大小。
- -S 用绝对而非相对数值列出TCP关联数。
- -t 在每列倾倒资料上不显示时间戳记。
- -tt 在每列倾倒资料上显示未经格式化的时间戳记。
- -T<数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
- -v 详细显示指令执行过程。
- -vv 更详细显示指令执行过程。
- -x 用十六进制字码列出数据包资料。
- -w<数据包文件> 把数据包数据写入指定的文件。
AIX
AIX也可以使用tcpdump来进行抓包使用,使用方法如上所述,但有些老旧版本的AIX不能使用,故使用iptrace,用法个别不同。
iptrace:
iptrace 抓包:
格式:
iptrace [ -a ] [ -b ][ -e ] [ -u ] [ -PProtocol_list ] [ -iInterface ] [ -pPort_list ] [ -sHost [ -b ] ] [ -dHost ] [ -L Log_size ] LogFile
实例:
iptrace -i en0 test.cap
抓取指定经过eth0网卡,保存在test.cap中,与tcpdump不同的是不用-w存储
iptrace -a -b -d 10.1.1.1 -p 23 test.cap
抓取目的ip为10.1.1.1,端口为23的数据包
结束抓包:
ps -ef | grep iptrace
查询进程
kill -9 iptrace进程ID
结束进程
详细参数:
-a
抑制 ARP 包。
-b
把标志 -d 或 -s 变换成双向方式。
-d Host
记录以由 Host 变量指定的目的地主机指定为报头的信息包。Host 变量 能够作为一个主机名或由点隔开的十进制格式因特网地址。
如果使用 -b 标志,-d 标志 记录由 Host 变量指定的主机进出的信息包。
-e
启用支持混合模式的网络适配器的混合模式功能。
-i Interface
记录在由 Interface 变量指定的接口上接收的信息包。
-L Log_size
此选择会导致 iptrace 记录日志数据 ,这样 LogFile 在开始时及每当接近 Log_size 字节大小时,就复制到 LogFile.old。
-P Protocol_list
记录使用由 Protocol_list 变量指定的协议的信息包,此变量是一个由逗号分隔的协议列表。 此协议可以是来自 /etc/protocols 文件中的十进制数字或名称。
-p Port_list
记录使用由 Port_list 变量指定的端口号的信息包,此变量是一个逗号分隔的端口列表。 Port_list 变量可以是 /etc/services 文件中的一个十进制数或名字。
-s Host
记录来自由 Host 变量指定的源主机的信息包。Host 变量 可以是一个主机名字或一个由点隔开的十进制格式的因特网地址。
如果使用标志 -b,-s 标志记录进出由 Host 变量指定的主机的信息包。
-u
卸装在启动时由 iptrace 守护进程装入的内核扩展。
注意事项: (1)抓包完成时一定要kill掉iptrace的进程,使用ctrl+c,否则会一直抓包,占用硬盘资源。
(2)使用 iptrace后,有时需要发出 iptrace -u 以便卸装 bpf 内核扩展名(重启也可),由于 iptrace 使用的内核扩展名有可能忙于处理包。
(3) 尽量使用root权限。