找回密码
 立即注册
首页 业界区 业界 Ctf组会-网络基础,一篇总览基本的网络知识 ...

Ctf组会-网络基础,一篇总览基本的网络知识

副我 4 天前
哎,老师说要开会,给同学讲点什么,那就随便讲讲
本篇文章是总结梳理性的,提了很多东东,不知道的请自行了解。(懒得写那么详细了,这已经是让ai扩写过一遍然后我再改改的)
我blog上的这篇文章:  my blog 如果图加载不出来可以去我blog看
欢迎各位大佬补充指正!
0x00 前言

这篇文章试图做的,就是把这些知识串成一张图。
它不追求教材式的严格穷尽,而是从 基础且必备 的部分出发,尽量覆盖到 CTF、流量分析、信息收集与现实网络环境 中最常见、最有用的知识。
0x01 做流量分析

第一步:看时间线

谁先开始通信?
什么时候发生 DNS?
什么时候建连?
什么时候断开?
第二步:看通信双方

哪些 IP 最活跃?
哪些端口最关键?
哪些主机像客户端,哪些像服务端?
第三步:按层看

是 Ethernet、ARP、IPv4、IPv6,还是 WLAN?
是 TCP、UDP、ICMP 还是 QUIC?
应用层是 DNS、HTTP、TLS、Modbus 还是别的?
第四步:找异常

有没有 ARP 欺骗痕迹?
有没有奇怪的 DNS 查询?
有没有异常证书 SAN?
有没有很怪的 User-Agent?
有没有大量随机子域?
有没有反常的指纹?
第五步:重组与提取

Follow TCP Stream
导出对象
看证书
看 SNI / Host
看 DNS 历史
看是否存在文件、凭据、隧道数据或隐藏载荷
0x02 网络分层

很多人一提网络分层就想到 OSI 七层模型,然后开始背:
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
背完以后,实际看包时还是一脸茫然。
真正有用的不是死背层名,而是理解:
每一层都在解决一个不同的问题。
更贴近实际的思路,是用一个简化版的 TCP/IP 视角去理解:

  • 链路层 / 二层:在当前链路上怎么把数据发出去
    典型协议:Ethernet、ARP、WLAN
  • 网络层 / 三层:跨网络之后,最终要去哪里
    典型协议:IPv4、IPv6、ICMP
  • 传输层 / 四层:到了主机之后,交给哪个服务,怎么保证传输
    典型协议:TCP、UDP
  • 应用层:这个连接到底在干什么
    典型协议:DNS、HTTP、TLS、SSH、SMTP、Modbus 等
传统上四层常见的是 TCP 和 UDP;而像 QUIC 这类现代协议虽然基于 UDP 承载,但承担了更多高层连接控制能力,已经不太适合用老式分层直觉去硬套。
0x03 封装与解封装

想看懂抓包,必须先理解 封装
1.png

当应用程序要发送一段数据时,这段数据不是直接原样发上网,而是会一层层加头部:

  • 应用层生成内容
  • 传输层加上 TCP/UDP 头
  • 网络层加上 IP 头
  • 链路层加上 Ethernet 或 WLAN 头
  • 然后从网卡发出去
接收方收到后,再反过来一层层拆掉,这就是 解封装
0x04 二层

1. 以太网与 Ethernet 帧

2.png

在有线局域网里,最典型的链路层协议就是 以太网
在以太网中,数据以“帧”的形式传输。一个常见的 Ethernet 帧里,最重要的字段包括:

  • 目的 MAC
  • 源 MAC
  • EtherType
  • 负载
EtherType 用来告诉接收方:负载里装的是什么。
常见值包括:

  • 0x0800:IPv4
  • 0x0806:ARP
  • 0x86DD:IPv6
2. MAC 地址

MAC 地址是链路层地址,通常和网卡相关。
它的主要作用不是“全球唯一标识某台机器”,而是帮助局域网中的设备完成“这一跳投递”。
交换机在转发以太网帧时,主要看的就是 MAC 地址。
因此,在同一个二层网络里,真正决定帧发给谁的是目的 MAC,而不是 IP。
这就是为什么包里最先看到的是一串 MAC 地址
因为数据要先走当前链路这一跳,链路层先于网络层发生作用
Q:为什么不能直接用 MAC 作为 IP
这是一个很经典的问题。
直觉上看,既然网卡有 MAC,为什么互联网不直接拿 MAC 做地址?
因为 MAC 只在当前链路这一跳有意义。
一个包经过路由器后,链路层头部通常会被重写,源 MAC 和目的 MAC 都可能变化。
所以 MAC 不是一个能端到端保持稳定的地址。
而 IP 是逻辑地址,能够分层、聚合、划分网段,适合大规模路由。
互联网之所以能扩展,就是因为 IP 可以按前缀聚合,而不是为全球每一个终端维持一条扁平记录。
MAC 用来解决本地链路上的一跳投递,IP 用来解决跨网络的逻辑寻址。
0x05 ARP

应用程序通常知道自己要访问的目标是一个 IP 地址,但链路层发帧时需要的是 MAC。
这就需要一个“翻译器”,把 IP 翻译成当前链路上的 MAC,这个协议就是 ARP
3.png

ARP 的过程很直观:

  • 已知目标 IP
  • 不知道对应的 MAC
  • 在局域网里广播问:谁是这个 IP?
  • 目标主机回复自己的 MAC
  • 发送方将结果缓存进 ARP 表
因为发送方还不知道目标 MAC,所以请求通常要广播;而目标主机已经知道请求者是谁,因此回复通常可以单播返回。
ARP 解析的不一定是“最终目标”的 MAC,而是“下一跳”的 MAC。
ARP 欺骗与中间人

ARP 没有强认证机制,所以它天然容易被欺骗。
攻击者可以伪造 ARP 应答,告诉受害者“我是网关”,再告诉网关“我是受害者”,于是双方流量都先经过攻击者,实现中间人。
这就是经典的 ARP 欺骗 / ARP 劫持
它的典型效果包括:

  • 明文流量嗅探
  • 局域网内中间人攻击
  • 流量篡改
  • 断网或劫持
对于流量分析来说,识别 ARP 异常也很重要,比如:

  • 同一个 IP 对应多个不同 MAC
  • 某主机频繁发送 ARP 响应
  • 网关的 ARP 映射突然变化
0x06 WLAN、无线接入与 AP

1. WLAN 是什么

WLAN 可以理解为无线局域网,最常见的实现就是 Wi-Fi。
它本质上仍然是局域网接入的一种方式,只是链路层不再通过网线和交换机,而是通过无线信道和接入点通信。
在有线网络里,你可以把线插进交换机;
在无线网络里,终端通常通过 AP,也就是 Access Point,接入网络。
所以 AP 的角色可以简单理解为:
无线终端和局域网/上层网络之间的桥梁。
2. 无线连接历程

4.jpeg


  • 发现附近无线网络
  • 选择 SSID
  • 认证与关联
  • 密钥协商
  • 获得链路接入
  • 再通过 DHCP 获取 IP、网关、DNS
即使是无线网络,真正完成“接入互联网”也仍然离不开前面讲的那些基础:链路层接入、IP 配置、路由、DNS、TCP/UDP 等。
3. 无线网络和抓包

如果你在做无线相关分析,会遇到更复杂的二层/管理帧问题。
如果有兴趣可以自行了解,这里只做提及。

  • 无线网络有自己的一套链路层机制
  • AP、SSID、认证、关联这些都是无线接入中的基础概念
  • 无线接入之后,后续 IP、DNS、HTTP 等问题和有线网络并没有本质不同
无线环境下,抓到的未必只是普通数据帧,还可能包含 Beacon、Probe、Authentication、Association 等管理帧;因此无线抓包和有线抓包在观察对象上并不完全等价。
0x07 三层

如果说二层解决的是“当前链路上的这一跳”,那么三层,也就是 网络层,解决的就是“跨网络之后最终去哪”。
0x08 IPv4

IPv4 使用 32 位地址,通常写成点分十进制,例如:
  1. 192.168.1.10
复制代码
IPv4 地址由 网络部分 + 主机部分组成,通过子网掩码进行划分。
例如:
  1. IP:      192.168.1.10
  2. Mask:    255.255.255.0
复制代码
表示:

  • 网络:192.168.1.0/24
  • 主机:10
IPv4 的核心作用是实现:

  • 逻辑寻址
  • 网络分层
  • 路由转发
  • 路由聚合
这也是互联网能够进行大规模路由的基础。
1. 特殊地址与私有地址

IPv4 中有一些具有特殊用途的地址:
地址作用127.0.0.1回环地址(本机)0.0.0.0未指定地址255.255.255.255本地广播169.254.0.0/16链路本地地址(APIPA)还有三段 RFC1918 私有地址,只在内网使用:
  1. 10.0.0.0/8
  2. 172.16.0.0/12
  3. 192.168.0.0/16
复制代码
此外,还有两点可以了解一下
  1. 网络地址   192.168.1.0
  2. 可用主机   192.168.1.1 - 192.168.1.254
  3. 广播地址   192.168.1.255
复制代码
这些地址在以下场景中非常常见:

  • SSRF 内网探测
  • 内网横向移动
  • ACL / WAF 绕过
  • 抓包分析
  • 云环境元数据访问
tips:在云环境中,还经常会遇到 169.254.169.254 这样的元数据服务地址。
2. 子网掩码与 CIDR

IPv4 网络通过 子网掩码(Subnet Mask)划分网络与主机部分。
例如:
  1. IP:      192.168.1.10
  2. Mask:    255.255.255.0
复制代码
掩码 255.255.255.0 的二进制为:
  1. 11111111.11111111.11111111.00000000
复制代码
前 24 位表示网络部分,因此也可以写成:
  1. 192.168.1.10/24
复制代码
这种表示方式称为 CIDR(Classless Inter-Domain Routing)
常见 CIDR:
CIDR掩码/8255.0.0.0/16255.255.0.0/24255.255.255.03. 实例:判断是否同一网段

例如两个地址:
  1. 192.168.1.10/24
  2. 192.168.1.25/24
复制代码
计算网络地址:
  1. 192.168.1.10  & 255.255.255.0 = 192.168.1.0
  2. 192.168.1.25  & 255.255.255.0 = 192.168.1.0
复制代码
因此它们 在同一网段,可以直接通信
而如果是:
  1. 192.168.1.10/24
  2. 192.168.2.10/24
复制代码
网络地址:
  1. 192.168.1.0
  2. 192.168.2.0
复制代码
不在同一网段,需要通过网关转发
0x09 IPv6

IPv6 通常被简单概括为“地址空间更大”,但在实际网络和安全场景中,它的变化远不止这一点。
IPv6 使用 128 位地址,常见表示形式为十六进制,例如:
  1. 2001:db8::1
复制代码
tips:IPv6 地址允许省略前导 0,并使用 :: 压缩连续的 0,但同一个地址中 :: 只能出现一次。
在 DNS 中,IPv6 地址通过 AAAA 记录解析。
IPv6 中也存在一些常见的特殊地址和地址范围:

  • ::1:回环地址(IPv6 loopback)
  • fe80::/10:链路本地地址(Link-local)
  • fc00::/7:ULA(Unique Local Address,类似 IPv4 私有地址)
与 IPv4 不同,IPv6 在邻居发现和网络通信上也做了一些重要变化:

  • 使用 NDP(Neighbor Discovery Protocol) 代替 ARP
  • 不再使用传统广播(Broadcast)
  • 大量机制依赖 多播(Multicast)
在 CTF 和实际安全研究中,IPv6 的价值往往来自 被忽视的网络路径。例如:

  • 许多访问控制规则只过滤 IPv4
  • 部分安全设备默认只检测 IPv4 流量
  • 一些应用在处理 IPv6 表示形式时存在解析问题
  • IPv6 地址格式复杂,容易导致白名单或黑名单绕过
因此即使在以 IPv4 为主的环境中,IPv6 也经常成为 意外的访问入口或绕过路径
tips:利用 IPv6 链路本地地址 (fe80:: ) 进行绕过过滤器的横向移动
0x0A 路由表

5.jpeg

主机发一个 IP 包之前,通常不是立刻开始 ARP,而是先查自己的 路由表
路由表决定了:

  • 哪些网段是直连的
  • 哪些流量需要交给网关
  • 应该走哪个网卡
  • 找不到时是否走默认路由
顺序一般是:

  • 目标是一个 IP
  • 先查路由表
  • 决定下一跳
  • 再 ARP 找下一跳的 MAC
  • 最后发帧出去
以下问题你在细致学习了路由表可能就会理解:

  • 为什么访问外网时发给的是网关 MAC
  • 为什么同一个目标在不同机器上走不同路径
  • 为什么 VPN 一开,很多流量突然走另一张表
  • 为什么 Docker、虚拟机、多网卡环境很容易出现奇怪网络行为
0x0B DHCP、默认网关

一台设备刚接入网络时,它并不知道自己的网络配置,例如:

  • IP 地址
  • 子网掩码
  • 默认网关
  • DNS 服务器
如果这些信息都手动配置,在大规模网络中几乎无法管理。因此网络中通常部署 DHCP(Dynamic Host Configuration Protocol) 来自动分配这些参数。
DHCP 的作用不仅仅是分配一个 IP 地址,它还可以通过 DHCP Option 一并下发多种网络配置,例如:

  • IP 地址(Option 50)
  • 子网掩码(Option 1)
  • 默认网关(Option 3)
  • DNS 服务器(Option 6)
  • 租约时间(Lease Time)
  • 域名、NTP 等其他配置
当设备接入网络时,DHCP 通常会经历 DORA 四步过程
6.png


  • Discover
客户端刚接入网络时没有 IP,因此会向局域网发送 广播包
  1. DHCP Discover
  2. Source IP: 0.0.0.0
  3. Destination: 255.255.255.255
复制代码
用于寻找 DHCP 服务器。

  • Offer
DHCP 服务器收到 Discover 后,会返回一个 DHCP Offer,其中包含:

  • 分配的 IP 地址
  • 子网掩码
  • 默认网关
  • DNS
  • 租约时间

  • Request
客户端收到多个 Offer 时,会选择其中一个,并发送 DHCP Request 表示确认使用该地址。

  • ACK
DHCP 服务器返回 DHCP ACK,租约正式生效,客户端开始使用该 IP。
默认网关的作用

DHCP 中下发的 默认网关(Default Gateway),通常是当前网络的 三层出口设备
当主机访问 非本地网段 时,数据包会发送给默认网关,由网关负责继续转发。
例如:
  1. 主机IP      192.168.1.10
  2. 掩码        255.255.255.0
  3. 网关        192.168.1.1
复制代码
当访问:
  1. 192.168.1.50     → 同网段,直接通信
  2. 8.8.8.8          → 发给默认网关 192.168.1.1
复制代码
在抓包中,DHCP 通常出现在:

  • 设备刚接入网络
  • 网络重新获取地址
  • 租约过期续租
因此 DHCP 流量常常可以帮助判断 设备上线时间、网络拓扑和网关位置
0x0C 三层设备与网络设备

一些常见的设备

  • 网卡:负责收发当前链路上的帧
  • 交换机:主要在二层根据 MAC 转发
  • 路由器:主要在三层根据 IP 和路由表转发
  • AP:无线接入点,负责终端接入 WLAN
  • 网关:在主机视角里,通常是通往其他网络的下一跳
  • 防火墙:在转发基础上增加访问控制和状态判断
tips:交换机会根据收到帧的源 MAC 学习“这个 MAC 在哪个端口后面”,形成 MAC 地址表,再据此转发。
0x0D ICMP

很多人只知道 ping 使用 ICMP,因此会把 ICMP 当作“网络是否连通的检测工具”。
实际上,ICMP(Internet Control Message Protocol)是 IP 协议族中的控制与错误报告协议,用于在网络通信出现问题时,让主机或路由器返回状态信息。
ICMP 报文通常由 路由器或目标主机自动生成,用于告知发送方当前网络发生了什么情况。
常见的 ICMP 类型包括:
类型作用Echo Request / Echo Reply用于 ping,检测目标主机是否存活Destination Unreachable目标不可达,例如网络不可达、端口不可达Time ExceededTTL 超时Redirect路由重定向Parameter ProblemIP 报文参数错误例如:
当使用 ping 发送请求时,流程实际上是:
  1. 发送方 → ICMP Echo Request → 目标主机
  2. 目标主机 → ICMP Echo Reply → 发送方
复制代码
如果目标不存在或无法到达,则可能返回:
  1. ICMP Destination Unreachable
复制代码
除了 IPv4 中的 ICMP,IPv6 中还有 ICMPv6,邻居发现、路径 MTU 探测等很多机制也依赖它。
TTL 与 ICMP

7.png

ICMP 还与 路径探测工具 traceroute 密切相关。
IP 数据包在网络中转发时,每经过一台路由器都会让 TTL(Time To Live)减 1
当 TTL 变为 0 时,路由器会丢弃该数据包,并返回:
  1. ICMP Time Exceeded
复制代码
traceroute 正是利用这一机制:

  • 发送 TTL=1 的数据包 → 第一跳路由器返回 ICMP Time Exceeded
  • 发送 TTL=2 的数据包 → 第二跳路由器返回 ICMP
  • 不断递增 TTL → 逐步发现完整路径
因此 traceroute 可以显示:
  1. 客户端 → 路由器A → 路由器B → 路由器C → 目标
复制代码
tips:
Windows (tracert):默认使用 ICMP Echo Request。
Linux/Unix (traceroute):默认使用 UDP 高端口
CTF 相关

在抓包或网络流量分析题中,ICMP 往往提供非常关键的信息,例如:
1. 主机探测
通过 ICMP Echo Request 判断主机是否存活,
抓包时会看到大量 ICMP Echo 请求。
2. 端口状态判断
当向关闭端口发送 UDP 时,目标主机通常返回:
  1. ICMP Destination Unreachable (Port Unreachable)
复制代码
这也是 UDP 扫描的依据之一
3. 网络路径问题
如果抓包中大量出现:
  1. ICMP Time Exceeded
复制代码
可能说明:

  • TTL 设置异常
  • 路由环路
  • traceroute 探测行为
4. 隐蔽通信
ICMP 还可能被用于:

  • ICMP Tunnel
  • ICMP C2
  • 数据隐写
例如攻击者把数据放在 ICMP payload 中进行通信,从而绕过部分防火墙策略。
0x0E NAT

在现实网络中,大量设备使用的是 私有地址(RFC1918)
  1. 10.0.0.0/8
  2. 172.16.0.0/12
  3. 192.168.0.0/16
复制代码
这些地址 不会在公网进行路由,因此内网主机无法直接在互联网被访问。
为了解决这个问题,网络边界设备通常会使用 NAT(Network Address Translation),也就是 网络地址转换
NAT 的核心行为是:
当数据包经过边界设备时,修改 IP 地址,必要时同时修改端口。
因此 NAT 本质上是一种 地址与连接的转换机制
8.png

一个典型的 NAT 例子

假设内网主机:
  1. 192.168.1.10
复制代码
访问公网服务器:
  1. 8.8.8.8:53
复制代码
经过路由器 NAT 后,数据包会变成:
  1. Source IP: 203.0.113.5
  2. Source Port: 45000
  3. Destination: 8.8.8.8:53
复制代码
其中:
  1. 203.0.113.5
复制代码
是路由器的公网地址。
路由器会在内部维护一张 NAT 会话表
  1. 192.168.1.10:52341  ↔ 203.0.113.5:45000
复制代码
当服务器返回数据时,路由器再根据这张表把流量转回内网主机。
常见 NAT 类型

常见的 NAT 形式包括:
1. SNAT(Source NAT)
修改 源地址,通常用于内网访问公网。
2. DNAT(Destination NAT)
修改 目标地址,常用于端口映射。
例如:
  1. 公网 203.0.113.5:80
  2. 内网 192.168.1.10:80
复制代码
3. PAT(Port Address Translation)
同时转换地址和端口,也叫 NAPT
这是家庭路由器最常见的模式。
NAT 在实际环境中的普遍存在

NAT 几乎存在于所有网络环境中,例如:

  • 家庭路由器
  • 企业网络出口
  • 云服务器 VPC
  • Docker 网络
  • 虚拟机 NAT 网络
理解 NAT 对网络安全非常重要,因为很多网络现象都与它有关,例如:

  • 为什么外网只能看到 一个公网出口地址
  • 为什么 内网服务默认无法从公网访问
  • 为什么需要 端口映射(Port Forwarding)
  • 为什么 反弹 shell 无法直接访问内网主机
  • 为什么某些服务在 容器内监听,但外部无法访问
很多网络排障问题,本质上都是 NAT 转换或端口映射配置问题
0x0F 端口与五元组

9.png

IP 地址只能定位到一台主机,但一台主机上往往运行着多个网络服务,例如 Web 服务、数据库服务、SSH 等。如果只有 IP 地址,操作系统无法知道数据包应该交给哪个应用程序处理。
因此在传输层引入了 端口(Port) 的概念。
可以用一个简单的类比理解:

  • IP 地址:一栋楼的地址
  • 端口号:楼里的房间号
当数据包到达主机时,操作系统会根据 端口号 将数据交给对应的进程。
端口号是一个 16 位整数,范围为:
  1. 0 - 65535
复制代码
常见服务端口

在网络排障、渗透测试和 CTF 中,记住一些常见端口非常有帮助:
端口服务20 / 21FTP22SSH23Telnet25SMTP53DNS67 / 68DHCP80HTTP110POP3123NTP143IMAP161SNMP443HTTPS445SMB3306MySQL3389RDP5432PostgreSQL6379Redis8080常见 Web 服务但需要注意:
端口只是约定,并不是绝对规则。
任何服务都可以运行在任意端口上。例如:
  1. HTTP → 8080
  2. HTTP → 8000
  3. HTTP → 5000
复制代码
因此在抓包或分析流量时,不能只根据端口判断协议,还需要结合:

  • 报文内容
  • 协议特征
  • TLS 指纹
  • 流量行为
Q:端口 0是什么捏?
五元组

在网络流量分析中,一个连接通常用 五元组(Five Tuple) 来唯一标识:
  1. 源IP
  2. 源端口
  3. 目的IP
  4. 目的端口
  5. 协议
复制代码
例如:
  1. 192.168.1.10:52341 → 8.8.8.8:53 UDP
复制代码
完整的五元组可以写成:
  1. 192.168.1.10
  2. 52341
  3. 8.8.8.8
  4. 53
  5. UDP
复制代码
五元组的意义在于,它可以 唯一标识一条网络会话
许多网络机制实际上都依赖五元组,例如:

  • NAT 会话表
  • 防火墙状态跟踪
  • NetFlow / 流量统计
  • Wireshark 会话重组
  • netstat / ss 本地连接查看
例如在 NAT 中,路由器会记录类似这样的映射关系:
  1. 192.168.1.10:52341 → 203.0.113.5:45000
复制代码
通过五元组,设备才能正确地将返回流量送回对应主机。
0x10 TCP

TCP(Transmission Control Protocol)是互联网中最常见的传输层协议之一,大量应用协议都运行在 TCP 之上,例如:

  • HTTP / HTTPS
  • SSH
  • SMTP
  • MySQL
  • FTP
TCP 连接机制

TCP 是互联网中最常见的传输层协议,它通过 三次握手建立连接、四次挥手关闭连接,并依赖一系列标志位(如 SYN、ACK、FIN、RST、PSH)来管理连接状态。
在抓包分析中,还经常会遇到一些典型现象,例如 连接重置(RST)TCP 重传乱序(Out-of-Order)MSS/MTU 协商 以及 IP 分片 等,这些都是 TCP 在真实网络环境中的正常行为或常见问题。
这些机制属于网络分析的基础知识,在流量分析、故障排查和安全研究中都非常重要,建议读者自行进一步了解其工作原理(懒得加了)。
10.png

Q:Fast Open 与 Window Scaling是什么捏?
0x11 UDP

与 TCP 不同,UDP(User Datagram Protocol)是一种 无连接的传输层协议
UDP 在发送数据之前 不需要建立连接,也不会保证数据一定到达,因此它的协议设计非常简单:

  • 不保证可靠传输
  • 不保证顺序
  • 不进行重传
  • 没有拥塞控制
UDP 只负责把数据包发送出去,因此它的开销非常小、延迟低。
这使得 UDP 非常适合 实时性要求高的场景,例如:

  • DNS 查询
  • NTP 时间同步
  • 实时音视频
  • 在线游戏
  • 流媒体传输
UDP 的报文结构也非常简单,仅包含四个字段:
  1. Source Port
  2. Destination Port
  3. Length
  4. Checksum
复制代码
在抓包或流量分析中,UDP 通常表现为 一次请求对应一次响应,例如常见的 DNS 查询。
需要注意的是,由于 UDP 不维护连接状态,因此在很多网络设备中:

  • 不存在 TCP 那样的会话管理
  • 也不会有三次握手或连接关闭过程
在安全研究中,UDP 也经常出现在以下场景:

  • DNS 流量分析
  • UDP 扫描
  • 放大攻击(Amplification Attack)
  • QUIC / HTTP3 等新协议
tips:UDP 协议本身不建立像 TCP 那样的连接状态,但网络设备或应用程序仍可能基于五元组维护短时会话状态。
0x12 应用层协议、外围情报与流量特征

DNS

人类习惯记域名,网络层只认 IP。
所以访问网站时,通常要先经过 DNS
11.png

常见记录类型

最基础的这些建议记住:

  • A:IPv4 地址
  • AAAA:IPv6 地址
  • CNAME:别名
  • MX:邮件服务器
  • NS:权威 DNS
  • TXT:文本记录
UDP DNS、TCP DNS 与 DoH

传统 DNS 查询通常走 UDP 53,因为请求短、开销小。
但 DNS 也可以走 TCP,比如响应太大或区域传送时。
现代网络里还很值得提的是 DoH,也就是 DNS over HTTPS。
它把 DNS 查询放进 HTTPS 中,使传统基于端口 53 的检测变得不那么充分。
DNS 分区解析

现实中,同一个域名可能对不同来源返回不同结果。
这叫分区解析,也常叫 split-horizon DNS。
它可能按:

  • 内外网
  • 地域
  • 运营商
  • 业务环境
返回不同记录。
这对实战和 CTF 都很有意义。
因为同一个域名在你的环境和目标环境里不一定长得一样。
DNS 欺骗与 DNS 隧道

DNS 很常被用于攻击和隐蔽通信。
DNS 欺骗可能让受害者把域名解析到错误 IP。
DNS 隧道则可以把数据编码到查询名里,通过大量 DNS 请求响应传递信息。
抓包中看到以下特征时应提高警惕:

  • 超长、随机的子域名
  • 高频 DNS 请求
  • 大量 TXT 记录
  • 异常活跃的 53 端口流量
Q:DNS Rebinding是什么捏
域名、Whois、证书透明度

网络分析和信息收集并不只看包本身,外围信息也很重要。
Whois

Whois 可以查询域名注册相关信息,例如:

  • 注册商
  • 创建时间
  • 到期时间
  • Name Server
  • 部分组织信息
现代域名注册信息很多已因隐私和注册政策变化而变得不完整,因此 Whois 的信息价值不如早年稳定,但仍可作为基础线索之一。
证书与 CT 日志

TLS 证书里常常包含:

  • 颁发者
  • 有效期
  • 指纹
  • SAN 域名列表
而现代公开证书会被记录到 CT(Certificate Transparency) 日志中。
这使得 CT 日志成了一个很强的子域情报来源。
也就是说,子域枚举不一定只能爆破,很多时候可以直接从 CT 里捞到。
HTTP、HTTPS、TLS

HTTP

HTTP 是明文应用层协议。
在抓包中如果没有加密,你可以直接看到:

  • 方法
  • 路径
  • Host
  • Cookie
  • User-Agent
  • 表单内容
  • 返回内容
这也是很多经典 CTF 流量题直接藏 flag 的地方。
HTTPS 与 TLS

HTTPS 本质是 HTTP over TLS。
HTTP 内容被放在 TLS 之内,不能直接看明文,但 TLS 握手阶段仍可能泄露很多信息。
tips:现在TLS 1.3是主要的,不过已经有ECH这种连SNI一起加密的噢~
Host 与 SNI

同一个 IP 可以承载多个站点。
HTTP 通过 Host 区分站点,HTTPS 里 TLS 握手阶段常借助 SNI 指出目标域名。
所以在流量分析中,即使内容加密了,往往仍能看到访问的域名或至少看到相关线索。
证书体系、吊销与“现代 HTTPS”基础

今天说 SSL,很多时候实际上是在说 TLS。
理解现代证书体系,至少应该知道:

  • 客户端信任根证书
  • 根证书签发中间证书
  • 中间证书签发站点证书
  • 客户端验证证书链、域名、有效期和用途
此外,还存在吊销机制,比如:

  • CRL
  • OCSP
在基础场景里,不需要把证书体系讲到非常底层,但至少要让读者明白:
HTTPS 不是“加密一下就完了”,而是一整套身份信任体系。
流量指纹

现代网络越来越多地使用加密,但这并不意味着流量分析失去价值。
相反,分析重点从“看明文”转向了“看特征”。
TCP 指纹

不同系统和工具生成 TCP 包时会有细微差异,比如:

  • 初始 TTL
  • 窗口大小
  • MSS
  • TCP options 顺序
TLS 指纹

TLS ClientHello 中的版本、扩展、套件组合也能构成指纹,例如 JA (已经到JA4了呜呜呜)一类思路。
这有助于判断流量更像:

  • 正常浏览器
  • 某个脚本库
  • 自动化工具
  • 恶意样本
网页特征与行为特征

即使不看内容,很多网页流量也有很强的行为特征:

  • 请求资源顺序
  • 常见静态路径
  • User-Agent 风格
  • Cookie 模式
  • API 请求节奏
  • WebSocket 长连接
代理、反向代理、VPN、隧道与 IPsec

现实中的客户端和服务器,很少是“直接裸连”的。
中间往往夹着很多层。
本地代理与正向代理

本地代理常用于抓包、调试、转发。
正向代理则代表客户端去访问外部资源,客户端明确知道代理存在。
反向代理

反向代理代表服务器接收请求。
Nginx、CDN、负载均衡都属于常见反向代理场景。
这意味着你看到的前端机器不一定是真实后端。
VPN 与隧道

VPN 的核心是在公共网络上建立逻辑上的专用通道。
它会影响:

  • 路由
  • 出口 IP
  • DNS
  • 网络可见性
隧道则是更宽泛的概念,把一种协议包进另一种通道里传输。
DNS 隧道、SSH 隧道、HTTP 隧道等都属于这个范畴。
IPsec

IPsec 是网络层安全协议族,常用于 VPN。
知道它的存在就足以帮助建立“网络层也能加密保护”的意识。
0x13 扩展视野

QUIC

现代网络里,一个越来越重要的协议是 QUIC
它运行在 UDP 之上,却实现了很多传统上由 TCP + TLS 共同提供的能力。
HTTP/3 就基于 QUIC。
这意味着一个分析观念必须更新:
看到 UDP,不代表它只是简单小报文。
有时候你看到的可能是:

  • 浏览器与网站的现代加密通信
  • 更快的握手
  • 多路复用
  • 新一代 Web 流量
对 CTF 来说,知道 QUIC 的存在至少能帮助你避免用过时的直觉误判流量。
AS 与 BGP

互联网由许多自治系统构成,每个自治系统有 ASN。
自治系统之间交换路由信息主要依赖 BGP。
这说明互联网并不是一个单中心控制的大网,而是很多网络彼此连接形成的体系。
ISIS / OSPF

这些更多是自治系统内部的路由协议。
工控协议

除了 Web、DNS、邮件、SSH 这些大众协议,现实网络中还有大量行业协议。
比如工控领域常见的 Modbus。
0x14 结语

网络基础是为了在看到真实流量时,知道数据到底在做什么。
你需要明白:

  • 二层在解决本地链路上的投递
  • 三层在解决跨网络寻址
  • 四层在解决服务定位和传输机制
  • 应用层在承载具体业务
  • 无线接入并没有绕过这些层,而只是换了一种接入方式
  • 域名、证书、Whois、CT 日志会泄露外围情报
  • 代理、CDN、VPN、隧道、NAT 会改变你看到的表象
  • 加密并没有让分析失效,只是把重点从“内容”转向“特征”
当这些东西真正串起来以后,你再看一份流量,就不会只看到一堆十六进制和缩写。
你会知道:
它从哪个链路出去,为什么发给这个 MAC,为什么要先问 DNS,为什么走这个网关,为什么建立这个端口的 TCP 连接,为什么虽然是 HTTPS 但仍能看出域名,为什么证书会暴露子域,为什么这个 UDP 看起来像现代浏览器,为什么这个流量很像代理、很像隧道、很像中间人。
这才是网络基础最有价值的地方。
它不是一堆零散名词,而是一张解释现实通信行为的地图。
文中部分图片来自网络,部分为自行绘制或 AI 生成,仅作学习交流使用;如有疏漏或侵权问题,请联系处理。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册