【网安-研判-WireShark流量分析】端口扫描流量分析(高频短连接、SYN 扫描、ICMP 存活探测、扫描 IP / 时段 / 工具指纹)

目录

端口扫描典型特征:大量 SYN 握手包无 ACK 应答、单 IP 短时间访问多个目的端口、大量 ICMP ping 包、高频短连接无上层应用数据。

样本地址

1、识别 TCP SYN 半开扫描

原理说明

  1. SYN=1,ACK=0:代表客户端只发送握手请求,没有接收服务器确认报文,属于典型半开扫描(SYN 扫描),Nmap、Masscan 主流扫描工具默认使用该扫描方式。
  2. 正常 TCP 连接一定会有 SYN+ACK 握手回复,扫描行为只会大量发送 SYN 探测包,不会建立完整连接,所以没有上层业务数据,连接生命周期极短(高频短连接)。
  3. 统计 IPv4 端点可以快速定位扫描源 IP,单 IP 数据包几万级基本可以判定为恶意扫描 IP。

排查步骤

Step1:在 Wireshark 过滤栏输入过滤表达式

bash 复制代码
tcp.flags.syn == 1 && tcp.flags.ack == 0

Step2:打开「统计」→「端点」→ IPv4

含义解释

Key Value
地址 通信双方的 IP 地址,用来区分攻击源 IP / 本机服务器 IP,定位恶意访问主机
分组 当前过滤条件下,该 IP 产生的数据包数量
Total Packets 该 IP 在整个流量文件全部数据包总量(不受当前过滤器限制),用来判断 IP 整体访问量级,快速筛选高频扫描 IP
Percent Filtered 当前过滤出的数据包,占该 IP 总数据包的百分比,用来判断该 IP 流量是否集中在某一类行为中
Tx Packets Transmit 发送数据包:该 IP 向外发送的数据包个数;外网攻击 IP 一般只有 Tx 流量,服务器只有 Rx 流量
Tx Bytes 该 IP 向外发送的数据总字节大小,用来衡量攻击流量带宽消耗
Rx Packets Receive 接收数据包:该 IP 收到的数据包个数;本机 Web 服务器 Rx 数值会远大于 Tx
Rx Bytes 该 IP 接收的数据总字节大小,代表本机收到的外部访问流量大小

判定技巧

  • 目标服务器 IP:Rx Packets数值极高,Tx Packets几乎为 0
  • 外网扫描 IP:Tx Packets有大量数据,Rx Packets基本为 0

Step3 :按分组降序排列

核心受害 IP为203.161.44.208

  • 接收数据包:108506 个,总流量 7MB,占过滤流量 34.56%,是本次所有流量的目标 Web 服务器内网 IP。
  • 特征:Tx Packets=0、Rx Packets=108506,说明该 IP只收包、不主动向外发包,所有流量都是外网 IP 主动访问本机,完全符合公网服务器被外部扫描、探测的场景。
  • 为什么能确定是目标服务器?所有其他 IP 的 Tx(发送)有数据、Rx(接收)为 0,代表都是外网攻击源主动向该 IP 发起连接请求。

TOP 高危可疑 IP:

外网源 IP 发送数据包
172.234.207.202 2391
104.237.151.205 2389
193.32162.28 608

2、过滤 ICMP 存活探测流量

原理说明

攻击者在端口扫描前,会先用 ICMP ping 探测网段内主机是否存活,只有主机在线,才会继续端口遍历扫描。批量 ICMP 请求就是典型的存活探测行为,也是端口扫描的前置步骤。

排查步骤

Step1:过滤栏输入

bash 复制代码
icmp.type == 8

表示ICMP Echo Request(Ping 请求包),只保留攻击者发出去用来探测主机是否存活的 Ping 探测包,自动过滤掉 Ping 响应、网络不可达等无关 ICMP 包,不用逐个数据包查看判断类型。

Step2:观察数据包列表

看每一行数据包的源 IP(Source 列),如果同一个源 IP 连续出现几十、上百条记录,说明该 IP 正在批量 Ping 扫描网段,属于典型的存活探测行为。

Step3 :打开「统计」→「端点」→ IPv4,并勾选右侧的显示过滤器的限制

Step4:选中某个恶意IP(此处选43.134.41.39),单独过滤

bash 复制代码
# Wireshark 过滤栏
ip.src == 43.134.41.39

3、分析扫描时间段规律

原理说明

自动化扫描程序一般 7×24 小时不间断发包,凌晨、深夜流量峰值高;人工渗透一般集中在工作时段。通过时间分布可以判断威胁来源类型。

操作步骤

Step1:过滤得到所有扫描流量(SYN 扫描 + ICMP)

bash 复制代码
(tcp.flags.syn == 1 && tcp.flags.ack == 0) || (icmp.type == 8)

Step2:自定义Wireshark 数据包列表自带「时间」列格式,并按时间排序,统计数据包集中出现的时间段。

Step3 :打开统计I / O图表;可记录扫描集中在白天 / 凌晨,判断攻击者是自动化脚本扫描还是人工渗透扫描。

4、识别扫描工具指纹

原理

不同扫描工具操作系统默认 TTL、TCP 头部参数存在固定指纹,安全人员可以依靠 TCP 指纹匹配扫描工具,溯源攻击手段。

查看 TTL、TCP 窗口大小(判断 Nmap / Masscan)

Step1:查看 TTL(在 IPv4 层)

展开Internet Protocol Version 4 (IPv4),并找到字段 Time to live: 58

抓到的剩余 TTL 范围 原始默认 TTL 攻击者操作系统
1~64 64 Linux /macOS(Nmap 最常用运行环境)
65~128 128 Windows 系统
129~255 255 路由器、防火墙、嵌入式设备

Step2:查看 TCP 窗口大小(在 TCP 层)

展开Transmission Control Protocol (TCP),找到字段Window : 65535(Nmap 常用固定窗口值)

  • Nmap 扫描发出的所有 SYN 包,窗口大小几乎固定不变;
  • Masscan 高速扫描的数据包,窗口值不固定、数据包发送间隔极短、单位时间数据包量级极大。

不同扫描工具封装 TCP 数据包时,会沿用运行系统的默认网络参数,Nmap 大多部署在 Linux 虚拟机,默认 TTL 固定 64,TCP 握手窗口采用默认固定值;Masscan 为了高速发包,不会精细化控制 TCP 参数,数据包行为特征杂乱密集。

查看 HTTP 请求里的 User-Agent(UA)工具指纹

操作步骤

Step1:清空上方过滤器,输入 Web 流量过滤语句

bash 复制代码
ip.src == 恶意扫描IP && http

Step2 :选中任意一条 HTTP 请求数据包,在下方详情面板展开:Hypertext Transfer Protocol

Step3 :在 HTTP 层中找到字段:User-Agent: xxx

UA 特征

UA 内容 工具判定
User-Agent: Nmap Script Engine Nmap 自带脚本扫描
python-requests/2.xx.x Python 脚本、Dirsearch、自定义爬虫扫描
curl/7.xx.x curl 命令行批量探测
Wget wget 批量目录扫描
空 User-Agent 高速扫描工具(Masscan、自定义扫描脚本)

正规浏览器访问网站会携带 Chrome、Edge、Firefox 这类浏览器标识;而扫描工具、脚本程序会直接携带开发库、工具本身的默认 UA,属于非常典型的恶意流量指纹,可以直接作为 WAF 拦截规则。

相关推荐
AI科技星2 小时前
数术宇宙:零一无穷创世史诗
开发语言·网络·量子计算·拓扑学
tzy2332 小时前
IEC101的升级版——IEC104简介
网络·iec104·iec101·四遥·总招·变化上送
IT WorryFree2 小时前
三套 Zabbix7.4 API 可直接复制 params 模板
运维·服务器·网络
RisunJan2 小时前
Linux命令-pmap(进程内存映射报告工具)
linux·服务器·网络
未来侦察班2 小时前
网络协议 网络层,万物归于IP
网络·网络协议·协议·ip·网络层·tcpip
非凡大爹3 小时前
实验十三 华为三层交换机实现 VLAN 间通信实验指导书
网络·计算机网络·华为
10WTW014 小时前
微机原理习题
网络
行走__Wz4 小时前
【网工入门-eNSP模拟-01】ip地址配置
网络·tcp/ip·智能路由器
yyuuuzz4 小时前
独立站运营的几个技术层面常见问题
大数据·运维·服务器·网络·数据库·aws