4. Network 基础
物理层攻击

数据链路层攻击
Ethernet
以太网(Ethernet) 是最常见的数据链路层协议, 用于在本地网络中传输数据:
• 通过 MAC 地址寻址(而不是 IP 地址);
• 传输单位是帧(Frame), 而不是 IP 包;
• 可以在有线(RJ45)或无线(Wi-Fi)网络上运行;
• 每个以太网帧大约 1500 字节
MAC
每个网卡(NIC)都有一个唯一的 48-bit MAC 地址
格式: xx:xx:xx:xx:xx:xx(如 e8:39:35:2d:3e:18),前 3 个字节(OUI)标识制造商(如 Intel, Cisco),后 3 个字节是设备的唯一编号;
但 MAC 地址可以被用户伪造! 使用 ifconfig 或 ip link set 命令可以更改 MAC 地址,攻击者可以使用 MAC 欺骗进行 ARP 欺骗(ARP Spoofing)攻击
网络层攻击
IP 地址
一个 IP 地址(IPv4, 如 192.168.1.100)由两部分组成:
- Network Prefix(网络前缀)
• 类似于邮政编码(ZIP Code), 用于标识一个网络(LAN/子网);
• 所有属于同一网络的设备共享相同的网络前缀; - Host Suffix(主机后缀)
• 类似于街道地址(House Number), 用于唯一标识同一网络中的设备
CIDR 记法(无类别域间路由)
使用 斜杠(/)后面加上网络前缀的位数, 表示 IP 地址的网络范围
网络发包
如果网络前缀相同 (Same LAN):
目标设备在同一个局域网 (LAN)中, 直接通过 Ethernet 交换数据, 不经过路由器
如果网络前缀不同(Different LAN):
目标设备在不同的子网, 需要通过网关(Gateway)转发, 数据包先发送到默认网关(Router), 然后再转发到目标网络.
ARP
ARP Spoof
通过伪造 apr 发包, MITM 告诉两端的发包人自己才是对方的 ip 然后进行转发, 可以实现转写和窃听
Border Gateway Protocol
isp 使用了 bgp 协议来告知ip prefix 与 如何连接邻居 (其他公司的ip), 之后 router 计算 router table, 以便转发的方向能更加靠近目标
BGP Hijacking
BGP 没有安全认证机制, 因此所有isp都可以伪造各种 bgp 公告, 从而劫持本来正确流向的网络流量
RPKI 防御
采用数字签名 (密码学方法) 来验证 bgp 是否来自于合法的 isp
网络运营商签署这个协议之后别的用户使用需要首先验证该协议是否合法匹配
IPv4 Private Address Range
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 三个网址并不会由 isp 提供映射, 可以留给用户自行设计使用
Network Address Translation (NAT)
大部分 isp 只给用户提供一个 IPv4 的地址, 本地路由器会给本地每个设备提供一个本地地址, 确保不超过 private address range. 这里使用的协议是 DHCP
每次对外收发包由本地路由器进行收集和改写, 这样外部 ip 并不能知道本地具体设备的 ip 地址
IPv4 LoopBack 地址
127.0.0.1 = localhost
Transportation Layer
Off-path 离线攻击
攻击者伪造 ip 发送 syn 包, 但是由于无法看到 服务器的 syn-ack 响应, 也很难猜到正确的 序列号, 因此这个可以被三次握手防御
Reset 攻击
不断发送 RST flag 的数据包, 只要当前的 seq 处于窗口范围内就会被识别为成功, 这里概率大大上升, 然后就会终止当前应用
App Layer
DNS Hijacking
攻击者进入本地router, 修改 dhcp 设置将dns设置为 攻击者的 dns 服务器
Host File Hijacking
攻击者修改os中的hosts file 来将用户访问请求重定向到危险的服务器
DNS monitoring and DNS blocking
isp 可以监视用户的访问请求和记录, 并且可以给一些不合适的网站注入一些错误的响应网页
Off-path DNS cache poisoning
攻击者伪造 DNS 服务器的响应, 让 DNS 解析器缓存错误的 IP 地址, 导致用户访问错误的网站(通常是攻击者控制的钓鱼网站)
QID(Query ID)是 16-bit 的查询标识符, DNS 解析器用它来匹配请求和响应
攻击者不知道查询的确切 QID, 但可以快速猜测, 发送 大量伪造的 DNS 响应, 每个都带不同的 QID, 如果攻击者猜中的 QID, 本地 DNS 解析器会缓存错误的 IP
由于总共 16 位, 其中短时间可以猜测 256 次, 因此概率为

部分防御方式
1.随机化端口选择2.随机化查询字符串大小写
3.DNSSEC 使用加密签名验证 DNS 响应, 确保解析结果是可信的, 而不是伪造的
