😏*★,°* :.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍tcpdump抓包工具与wireshark介绍。
学其所用,用其所学。------梁启超欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞
文章目录
-
- [:smirk:1. tcpdump介绍](#:smirk:1. tcpdump介绍)
- [:blush:2. tcpdump命令行工具](#:blush:2. tcpdump命令行工具)
- [:satisfied:3. wireshark界面工具](#:satisfied:3. wireshark界面工具)
- [:satisfied:4. 实践案例](#:satisfied:4. 实践案例)
😏1. tcpdump介绍
在分析网络流量和安全连接等问题时,离不开抓包工具的辅助。
tcpdump 是 Linux 上最经典、最强大的命令行网络抓包工具,可以捕获和分析网络流量,支持丰富的过滤表达式。
Wireshark 是目前最流行、功能最强大的网络协议分析器(界面抓包工具)。
😊2. tcpdump命令行工具
接口相关
cpp
tcpdump -i eth0 # 指定网卡
tcpdump -i any # 所有网卡
tcpdump -D # 列出所有可用接口
tcpdump -i eth0 -p # 非混杂模式(只抓本机流量)
输出控制
cpp
tcpdump -n # 不解析主机名(提高速度)
tcpdump -nn # 不解析主机名和端口服务名
tcpdump -q # 简洁输出
tcpdump -v # 详细输出
tcpdump -vv # 更详细输出
tcpdump -vvv # 最详细输出
tcpdump -t # 不打印时间戳
tcpdump -tttt # 完整格式时间戳
捕获控制
cpp
tcpdump -c 10 # 只抓10个包
tcpdump -s 0 # 抓完整包(默认96字节)
tcpdump -s 1500 # 抓取1500字节
tcpdump -w file.pcap # 写入文件(二进制)
tcpdump -r file.pcap # 从文件读取
tcpdump -C 10 # 文件最大10MB后轮转
tcpdump -W 5 # 最多保留5个文件
tcpdump -G 300 # 每300秒轮转文件
tcpdump -U # 包立即写入(实时性)
显示格式
cpp
tcpdump -e # 显示链路层头部
tcpdump -A # ASCII格式显示
tcpdump -X # 十六进制+ASCII
tcpdump -XX # 十六进制+ASCII(包含链路层)
tcpdump -l # 行缓冲输出(配合管道)
主机过滤
cpp
tcpdump host 192.168.1.1 # 源或目的IP
tcpdump src host 192.168.1.1 # 源IP
tcpdump dst host 192.168.1.1 # 目的IP
tcpdump host www.example.com # 域名(会做DNS解析)
tcpdump net 192.168.1.0/24 # 整个网段
端口过滤
cpp
tcpdump port 80 # 端口80
tcpdump src port 1234 # 源端口
tcpdump dst port 80 # 目的端口
tcpdump portrange 1-1024 # 端口范围
tcpdump tcp port 443 # TCP 443端口
协议过滤
cpp
tcpdump arp # ARP协议
tcpdump icmp # ICMP协议
tcpdump tcp # TCP协议
tcpdump udp # UDP协议
tcpdump 'icmp or arp' # 多协议组合
包大小过滤
cpp
tcpdump less 64 # 包长小于64字节
tcpdump greater 1500 # 包长大于1500字节
tcpdump length > 100 # 包长大于100
TCP标志位过滤
cpp
tcpdump 'tcp[tcpflags] & tcp-syn != 0' # SYN包
tcpdump 'tcp[tcpflags] & tcp-ack != 0' # ACK包
tcpdump 'tcp[tcpflags] & tcp-fin != 0' # FIN包
tcpdump 'tcp[tcpflags] & tcp-rst != 0' # RST包
tcpdump 'tcp[13] & 2 != 0' # SYN包(13是TCP标志位偏移)
😆3. wireshark界面工具
cpp
sudo apt install wireshark
sudo wireshark
抓包功能和tcpdump类似,界面显示更便于小白入手。另外也可以用tcpdump抓好包在wireshark中分析。
IP过滤
cpp
ip.addr == 192.168.1.1 # 包含此IP(源或目的)
ip.src == 192.168.1.1 # 源IP
ip.dst == 8.8.8.8 # 目的IP
ip.src == 192.168.1.0/24 # 源网段
!(ip.addr == 192.168.1.1) # 排除此IP
端口过滤
cpp
tcp.port == 80 # TCP端口(源或目的)
udp.port == 53 # UDP端口
tcp.srcport == 8080 # TCP源端口
tcp.dstport == 443 # TCP目的端口
tcp.port in {80 443 8080} # 端口列表
协议过滤
cpp
http # HTTP协议
dns # DNS协议
icmp # ICMP协议
ssl or tls # SSL/TLS
!arp # 非ARP
tcp # TCP协议
udp # UDP协议
😆4. 实践案例
tcpdump
cpp
# 抓取DNS查询和响应
tcpdump -i eth0 -n udp port 53
# 监控网络吞吐量
tcpdump -i eth0 -w - | pv -bert > /dev/null
wireshark
cpp
tls.handshake.type == 1 # 客户端Hello
tls.handshake.type == 2 # 服务器Hello

以上。