基础
一、抓包过滤器表达式的规则
类型Type(host、net、port)
方向Dir(src、dst)
协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)
逻辑运算符(&&与、|| 或、!非)
抓包过滤器语法
1、协议过滤
在抓包过滤框中直接输入协议名
tcp,只显示TCP协议的数据包列表
http,只查看HTTP协议的数据包列表
icmp,只显示ICMP协议的数据包列表
2、IP过滤
host 192.168.1.*
src host 192.168.1.* 源地址
dst host 192.168.1.* 目标地址
3、端口过滤
port 80、src port 80、dst port 80
4、逻辑运算符&&与、|| 或、!非
src host 192.168.1.* &&dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包
host 192.168.1.* || host 192.168.2.* 抓取主机为192.168.1.*或者192.168.2.*的数据包
!broadcast 不抓取广播数据包
显示过滤器语法
1、比较操作符
== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于
2、协议过滤
和前面一样,在filter框中输入小写协议名。
3、ip过滤
ip.src ==192.168.1.* 显示源地址为192.168.1.*的数据包列表
ip.dst==192.168.1.* 显示目标地址为192.168.1.*的数据包列表
ip.addr == 192.168.1.* 显示源IP地址或目标IP地址为192.168.1.*的数据包列表
4、端口过滤
tcp.port ==80 显示源主机或者目的主机端口为80的数据包列表。
tcp.srcport == 80 只显示TCP协议的源主机端口为80的数据包列表。
tcp.dstport == 80 只显示TCP协议的目的主机端口为80的数据包列表。
5、http模式过滤
http.request.method=="GET" 只显示HTTP GET方法的数据包
6、逻辑运算符为 and/or/not
过滤多个条件组合时,使用and/or。ip.addr == 192.168.1.* and icmp 显示192.168.1.*的ICMP数据包
7、数据链路层mac地址过滤
eth.src == 03:24:18:ad:13:16
8、ip地址
ip.addr == 192.168.1.*
9、刷选网段的数据
ip contains "192.168.*"
10、传输层端口之前的数据
tcp.port == 8080 &&tcp.port == 80
tcp.srcport == 8080 &&tcp.dstport == 80 (指定方向8080->80)
11、应用层url中包含关键词的http数据包
http.request.uri contains ".php"
12、应用层内容中包含关键词的http数据包
http contains "password"
二、检测攻击方式
检测主机发现
ARP扫描:用于识别ARP扫描的Wireshark过滤器(第二层上的主机发现技术)
ip协议扫描:用于识别IP协议扫描的Wireshark过滤器
ICMP ping扫描:用于检测ICMP ping扫描的wireshark过滤器(第3层上的主机发现技术)
TCP ping扫描:用于检测TCP ping扫描的Wireshark过滤器(第4层上的主机发现技术)
UDP ping 扫描:用于检测UDP ping扫描的wireshark过滤器(第4层上的主机发现技术)
技术 |
Wireshark 过滤器 |
命令/工具 |
---|---|---|
ARP扫描 |
arp.dst.hw_mac==00:00:00:00:00:00 |
ARP扫描-l |
IP协议扫描 |
icmp.type==3 和 icmp.code==2 |
nmap -sO <目标> |
ICMP ping 扫描 |
icmp.type==8 或 icmp.type==0 |
nmap -sn -PE <子网> |
TCP ping 扫描 |
tcp.dstport==7 |
nmap -sn -PS/-PA <子网> |
UDP ping 扫描 |
udp.dstport==7 |
nmap -sn -PU <子网> |
网络端口扫描检测
TCP SYN/隐形扫描:用于检测TCP SYN/隐形端口扫描,也叫TCP半开扫描
TCP Connect()扫描:用于检测TCP Connect()端口扫描的wireshark过滤器
TCP空扫描:用于识别TCP Null扫描的wireshark过滤器
Tcp fin 扫描:用于识别TCP FIN扫描的wireshark过滤器
TCP Xmass扫描:用于检测 TCP Xmass 扫描的 Wireshark 过滤器
UDP端口扫描:用于识别 UDP 端口扫描的 Wireshark 过滤器
技术 |
Wireshark 过滤器 |
命令/工具 |
---|---|---|
TCP SYN 扫描 |
tcp.flags.syn==1 和 tcp.flags.ack==0 和 tcp.window_size<=1024 |
nmap -sS <目标> |
TCP Connect() 扫描 |
tcp.flags.syn==1 和 tcp.flags.ack==0 和 tcp.window_size>1024 |
nmap -sT <目标> |
TCP空扫描 |
tcp.flags==0 |
nmap -sN <目标> |
TCP FIN 扫描 |
tcp.flags==0x001 |
nmap -sF <目标> |
TCP Xmass 扫描 |
tcp.flags.fin==1 && tcp.flags.push==1 && tcp.flags.urg==1 |
nmap -sX <目标> |
UDP端口扫描 |
icmp.type==3 和 icmp.code==3 |
nmap -sU <目标> |
网络攻击检测
技术 |
Wireshark 过滤器 |
命令/工具 |
---|---|---|
ARP中毒 |
arp.duplicate-address-detected 或 arp.duplicate-address-frame |
arpspoof, ettercap |
ICMP 洪水 |
icmp 和 data.len > 48 |
fping, hping |
VLAN hoping |
dtp 或 vlan.too_many_tags |
弗罗格,耶尔森氏菌 |
不明原因的丢包 |
tcp.analysis.lost_segment 或 tcp.analysis.retransmission |
不适用 |
ARP中毒(ARP 欺骗)
用于检测ARP中毒的wireshark过滤器
arp.duplicate-address-detected or arp.duplicate-address-frame
ICMP 洪水
用于检测 ICMP 泛洪(拒绝服务技术)的Wireshark 过滤器
icmp and data.len > 48
VLAN hoping(一种绕过 NAC(网络访问控制)的技术)
攻击者经常使用该技术通过利用 Cisco 交换机的错误配置来访问不同的 VLAN
检测无线网络攻击
客户端取消身份验证:用于检测无线网络上的取消身份验证帧。
客户解除关联:用于检测无线网络上的分离帧
假AP信标洪水:用于检测无线网络上的虚假 AP 信标泛滥
身份验证拒绝服务:用于检测无线网络上的身份验证拒绝服务攻击
技术 |
Wireshark 过滤器 |
命令/工具 |
---|---|---|
客户端取消身份验证 |
wlan.fc.type_subtype == 12 |
aireplay-ng,mdk3,mdk4 |
客户解除关联 |
wlan.fc.type_subtype == 10 |
mdk3, mdk4 |
假 AP 信标洪水 |
wlan.fc.type_subtype == 8 |
mdk3, mdk4 |
身份验证拒绝服务 |
wlan.fc.type_subtype == 11 |
mdk3, mdk4 |
数据包信息
用例子简单上手wireshark
一、分析ICMP流量
服务器A:192.168.86.135
服务器B:192.168.86.143
不同子网下,ping请求的拓扑图
相同子网下,机器的ping请求不经过默认网关即可相互通信。服务器A可以根据自己的子网掩码,计算出B是否属于不同子网,从而判断是否经过默认网关。
相同子网情况下,服务器B会通过ARP广播查询A的MAC地址。如果是不同子网,服务器A首先会与默认网关进行通信然后转发给服务器B,因为跨子网通信需要默认网关转发,在与默认网关进行通信前会通过ARP广播查询默认网关的MAC地址,从而进一步通信。在不同子网情况下,如果服务器A收到了B发出的ARP广播,也可以说明默认网关成功将A发出的ping请求发送给了B。
A回复了B的请求
后面就是服务器A向服务器B发出的ping请求以及B的回复了。
二、TCP流量分析
1、wireshark开启捕捉,在浏览器中访问www.bnaidu.com,接着ping www.baidu.com ,收集ip地址
2、使用过滤器获取地址为14.215.177.39的数据包 ip.addr == 14.215.177.39
由上图可以看到,前三条报文是TCP三次握手,第四个包是HTTPS的(TLSv1.2),Https是使用TCP进行连接的。
3、第一次握手
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接
![](/i/l/?n=23&i=blog/2846270/202302/2846270-20230222162016887-225965043.png)
![](/i/l/?n=23&i=blog/2846270/202302/2846270-20230222162210167-797792535.png)
借大佬文章进行总结学习
https://mp.weixin.qq.com/s?__biz=MzI0NDYxMzk1Mg==&mid=2247496672&idx=1&sn=c3cb62eb008679da7f25a178809f31cd
https://mp.weixin.qq.com/s?__biz=MzIxMDI2ODM1OA==&mid=2651501905&idx=1&sn=afcc8200d2ade475164a31b7870ce0f1
标签:192.168,扫描,tcp,TCP,使用,过滤器,数据包,wireshark From: https://www.cnblogs.com/CatG0d/p/wireshark.html