20252904 2025-2026-2 《网络攻防实践》第4周作业

20252904 2025-2026-2 《网络攻防实践》第4周作业

1.实验相关内容

1.1 ARP 缓存欺骗攻击

1.1.1 原理

​ ARP 协议的核心作用是将局域网内主机的 IP 地址解析为对应的 MAC 地址,主机通过本地 ARP 缓存表存储 IP 与 MAC 的映射关系,用于二层数据帧的转发。ARP 是无状态协议,主机无论是否主动发送 ARP 请求,只要收到 ARP 应答报文,就会无条件更新本地 ARP 缓存表;同时 ARP 报文无任何身份校验机制,攻击者可轻易伪造报文。

​ 攻击者向目标主机 / 网关伪造 ARP 应答报文,将目标 IP 对应的 MAC 地址替换为攻击者的 MAC 地址,使目标主机的流量全部转发至攻击者主机,实现流量劫持。

1.1.3 攻击执行流程

  1. 攻击者扫描局域网段,获取目标主机、网关的 IP 地址与 MAC 地址信息;
  2. 伪造双向 ARP 应答报文:向目标主机发送 “网关 IP 对应 MAC 为攻击者 MAC” 的应答,向网关发送 “目标主机 IP 对应 MAC 为攻击者 MAC” 的应答;
  3. 目标主机与网关的 ARP 缓存被篡改,二者的双向流量均转发至攻击者主机;
  4. 攻击者可选择转发流量(实现透明中间人攻击)、篡改流量、丢弃流量(导致目标主机断网)。

1.2 ICMP 重定向攻击

1.2.1 原理

​ 当主机向非本网段的目标发送数据时,会将报文转发至默认网关;若网关发现存在更优的同网段下一跳路由,会向主机发送 ICMP 重定向报文,通知主机更新路由表,后续报文直接转发至更优的下一跳地址,用于优化网络路由路径。ICMP 重定向报文无任何身份认证机制,绝大多数操作系统默认接收并处理来自网关的重定向报文,攻击者可轻易伪造源 IP 为网关的重定向报文,篡改主机路由。

​ 攻击者冒充网关向目标主机发送伪造的 ICMP 重定向报文,谎称到达目标网络的最优下一跳为攻击者 IP,使目标主机更新路由表,将对应流量全部转发至攻击者主机。

1.2.3 攻击执行流程

  1. 攻击者与目标主机处于同一局域网,获取目标主机 IP、默认网关 IP、目标访问网段等信息;
  2. 攻击者伪造源 IP 为默认网关 IP 的 ICMP 重定向报文,目标地址为受害主机;
  3. 报文中指定 “到达目标网络的最优下一跳 IP 为攻击者 IP”;
  4. 受害主机操作系统接收报文后,自动更新本地路由表;
  5. 受害主机访问目标网络的流量全部转发至攻击者,攻击者可实现流量监听、篡改或丢弃。

1.3 SYN Flood 攻击

1.3.1 原理

SYN Flood 攻击是利用 TCP 协议三次握手机制的缺陷,通过伪造大量源 IP 地址不存在的 SYN 报文,持续向目标服务器发送;服务器为每个请求创建半连接并占用资源,而虚假源 IP 永远不会回复 ACK 报文,导致半连接不断堆积,最终占满服务器的 SYN 半连接队列,耗尽系统内存、CPU 资源,正常客户端的连接请求无法被处理。

1.3.3 攻击执行流程

  1. 攻击者控制肉鸡 / 僵尸网络,锁定目标服务器的开放 TCP 端口;
  2. 攻击者伪造大量随机虚假源 IP 地址,持续向目标服务器发送 SYN 报文;
  3. 服务器为每个 SYN 请求分配系统资源,创建半连接条目,回复 SYN+ACK 报文;
  4. 虚假源 IP 无对应的 ACK 回复,服务器持续进行超时重传,半连接条目长期占用资源;
  5. 服务器 SYN 半连接队列被占满,系统内存、CPU 资源耗尽,无法处理正常客户端的连接请求,业务服务瘫痪。

1.4 TCP RST 攻击

1.4.1 原理

TCP 头部的 RST(重置)标志位,正常作用是处理异常 TCP 连接:当主机收到一个不属于本机任何已建立 TCP 连接的报文时,会回复 RST 报文,强制关闭无效连接;当连接出现异常时,也可通过 RST 报文直接释放连接,无需等待四次挥手流程。

TCP RST 攻击利用 TCP 协议 RST 标志位的机制缺陷,伪造合法的 RST 报文,强制中断通信双方的正常 TCP 连接,导致业务通信异常中断。

1.4.3 攻击执行流程

  1. 攻击者通过 ARP 欺骗等手段实现流量嗅探,获取目标 TCP 连接的四元组(源 IP、目的 IP、源端口、目的端口),以及当前的 SEQ 号、滑动窗口范围;
  2. 攻击者伪造 TCP 报文,设置 RST 标志位为 1,将 SEQ 号设置为接收方的滑动窗口范围内,源 / 目的 IP 与端口匹配目标连接的四元组;
  3. 将伪造的 RST 报文发送给通信的一方或双方;
  4. 接收方收到报文后,判定为合法的重置请求,立即关闭对应的 TCP 连接,终止正常通信;
  5. 攻击者可重复发起攻击,持续阻断目标的 TCP 通信。

1.5 TCP 会话劫持攻击

1.5.1 原理

​ 绝大多数应用层协议的身份认证仅在 TCP 连接建立初期完成,后续会话过程不再重复校验身份;攻击者只要获取会话的四元组与正确的 SEQ/ACK 号,即可冒充通信一方发送伪造报文,接收方会将其判定为合法会话数据。

TCP 会话劫持攻击(又称 TCP 劫持),先通过嗅探获取目标 TCP 会话的完整信息,等待会话完成身份认证后,伪造符合 SEQ/ACK 规则的 TCP 数据报文,冒充合法客户端向服务器发送恶意指令,甚至完全接管整个会话,实现未授权访问。

1.5.3 攻击执行流程

  1. 攻击者通过 ARP 欺骗实现流量中间人嗅探,获取目标 TCP 会话的四元组、实时 SEQ/ACK 号、滑动窗口信息;
  2. 等待目标会话完成身份认证(如用户登录网站、SSH 登录服务器、数据库登录),进入已授权的会话状态;
  3. 攻击者发送伪造的 RST 报文给合法客户端,断开客户端与服务器的连接(沉默客户端),避免客户端的报文干扰序列号同步;
  4. 攻击者冒充合法客户端,使用匹配的 SEQ/ACK 号,向服务器发送包含恶意指令的伪造 TCP 数据报文;
  5. 服务器接收报文后,判定为合法客户端的请求,执行对应的恶意指令,并返回响应数据;
  6. 攻击者持续维护 SEQ/ACK 号的同步,完全接管整个 TCP 会话,实现长期未授权访问。

1.6 五类攻击核心信息对比表

攻击类型 协议栈层级 核心利用缺陷 核心攻击目标 攻击类型分类
ARP 缓存欺骗攻击 数据链路层 ARP 协议无状态、无身份认证 局域网 IP-MAC 映射篡改、流量劫持 中间人攻击 / 嗅探攻击
ICMP 重定向攻击 网络层 ICMP 重定向报文无认证、主机默认信任 主机路由表篡改、流量劫持 路由劫持 / 中间人攻击
SYN Flood 攻击 传输层 TCP 三次握手半连接资源分配机制 服务器系统 / 带宽资源耗尽、服务瘫痪 DDoS / 拒绝服务攻击
TCP RST 攻击 传输层 TCP RST 报文校验机制薄弱、无强认证 正常 TCP 会话强制中断、通信阻断 中断攻击 / 拒绝服务攻击
TCP 会话劫持攻击 传输层 TCP 会话无强身份认证、仅靠 SEQ/ACK 校验 已认证会话接管、未授权访问 会话劫持 / 权限绕过攻击

实验环境

名称 IP地址 MAC地址
kali(攻击机) 192.168.200.6 00:0c:29:9f:63:60
seedubuntu 192.168.200.9 00:0c:29:62:1c:68
kali(靶机) 192.168.200.10 00:0c:29:59:ef:85

2.实践过程

2.1 arp缓存欺骗攻击

首先使用nmap扫描靶机相应地址段,扫描靶机是否存活

nmap -sP 192.168.200.0/25

发现主机存活,尝试对主机链接

ping 192.168.200.4

发现能Ping通,通过arp观察其arp缓存

arp -a

image-20260414095845091

安装netwox工具。

sudo apt update
sudo apt install netwox

Netwox是一款开源命令行网络工具箱,内置 200 + 实用网络工具,主打快速构造、发送、伪造网络数据包,常用于网络排查、扫描、欺骗与安全测试。

image-20260414095924437

image-20260414100108426

输入

netwox

证明安装成功

image-20260414100145157

sudo netwox 80 -e 00:0c:29:9f:63:60 -i 192.168.200.1 -E 00:0c:29:59:ef:85 -I 192.168.200.10

冒充网关(192.168.200.1),向目标主机(192.168.200.10)发送伪造 ARP 响应

  • -e:伪造的源 MAC(冒充网关 MAC)
  • -i:伪造的源 IP(网关 IP)
  • -E:目标主机 MAC
  • -I:目标主机 IP

image-20260414101138117

在攻击机攻击之前,可以观察到靶机物理地址为00:50:56:e5:b4:5a。攻击后,攻击机将靶机arp缓存表的网卡物理地址改成00:0c:29:9f:63:60,说明当靶机传输数据包信息都会发往攻击机。

已经修改网卡物理地址变成kali(攻击机)的MAC地址。

image-20260414101006838

2.2 ICMP 重定向攻击

sudo sysctl net.ipv4.ip_forward=1

开启 Linux 内核的 IP 转发功能,让攻击机能像路由器一样转发数据包。

  • net.ipv4.ip_forward Linux 内核参数,0 关闭,1开启。
  • sysctl 临时修改内核参数,重启后失效。
  • sudo 需要管理员权限。
sudo netwox 86 -g 192.168.200.6 -f "host 192.168.200.10"

netwox 86持续进行 ARP 欺骗,同时抓取经过本机的流量

-g 192.168.200.6 冒充网关,欺骗目标设备把流量下一跳发给你。

-f "host 192.168.200.10"只对 192.168.200.10 靶机发动攻击,并只抓取该主机的流量。

image-20260414103607435

ping192.168.200.9

发现下一跳时192.168.200.6。说明刚才重定向攻击成功。

image-20260414103213769

在运行一个终端,输入以下命令,验证攻击是否生效

sudo tcpdump -i eth0 -n -v icmp and icmp[0] == 5
  • -v:显示详细输出,看清包里的具体内容。
  • icmp:只抓取 ICMP 协议的包(Ping 和路由控制都属于这个协议)。
  • and icmp[0] == 5:它直接去检查 ICMP 数据包头部的 Type 字段。

抓取后可看到,靶机发送的数据信息直接发送给攻击机,说明也说明靶机下一跳是攻击机IP。

192.168.200.6 > 192.168.200.9: ICMP redirect 192.168.200.10 to host 192.168.200.6, length 36

​ 信息说明192.168.200.6192.168.200.9 发送了一条ICMP 重定向报文,通知主机 192.168.200.9,它前往目标主机 192.168.200.10 的流量不需要按照原有路由转发,直接发送给 192.168.200.6 这台主机即可,整个数据包长度为 36 字节。成功伪造路由信息,实现流量劫持或中间人监听。

image-20260414103424282

2.3 SYN Flood攻击

首先打开wireshark抓包,登录bbs网站(这里随意找一个就可以)

luit -encoding gbk telnet bbs.newsmth.net

登陆后可以发现,数据包的传输情况。

image-20260414105519978

攻击机端输入:

netwox 76 -i 192.168.200.9 -p 23

netwox 76 向目标主机发送 TCP SYN 包,执行半开放端口探测的工具。 netwox 76 -i 192.168.200.9 -p 23就是向 IP 为 192.168.200.9 的靶机的 23 号端口发送 TCP 连接请求包,以此来扫描目标主机的 23 端口是否开放,23 端口默认对应 Telnet 服务,通过对方是否回应 SYN+ACK 报文,就能判断该端口是否处于监听状态。

image-20260414105635201

在攻击机持续发送数据包时,seed机明显感觉到卡顿,并且收到大量的请求包导致电脑无法正常运行,从而成功的实现了SYN Flood攻击

image-20260414105333010

2.4 TCP RST 攻击

依旧登录水木社区。

luit -encoding gbk telnet bbs.newsmth.net

image-20260414110334589

sudo netwox 78

sudo netwox 78netwox 工具集中的 TCP RST 洪水攻击(TCP Reset Flood)工具,用于向目标发送大量伪造的 TCP RST 包,强制中断目标的 TCP 连接。

image-20260414110049353

在攻击机攻击后,可发现,自己正在登陆的水木社区强制断开连接,并且尝试多次都是无法连接社区。

image-20260414110203580

​ 正常网络场景中,RST 报文用于处理异常连接:当主机收到指向未监听端口的 SYN 请求、连接超时或进程异常崩溃时,会发送 RST 报文以快速释放资源、终止无效连接。其工作原理依赖 TCP 连接的唯一标识 “四元组”(源 IP、源端口、目的 IP、目的端口),只要收到的 RST 报文四元组匹配现有连接,操作系统内核就会直接删除该连接的控制块、释放资源并关闭连接,无需额外确认。在网络攻击场景中,攻击者可通过 netwox 78 等工具构造大量伪造的 RST 报文,向目标主机持续发送,强制中断其所有正在运行的 TCP 连接(如 HTTP、SSH、Telnet 等服务),实现拒绝服务攻击。

image-20260414110255321

当关闭攻击后,成功新登录发现恢复正常连接。

image-20260414110402800

2.5 TCP 会话劫持攻击

在 SEEDUbuntu 上启动 Telnet 服务等待被连。

sudo /etc/init.d/openbsd-inetd restart

重启 OpenBSD-inetd 服务,inetd 常被称作 “超级服务器”,负责统一监听系统里多个轻量网络服务(如 telnet、ftp、echo 等)的端口,当有外部连接请求时,再启动对应的服务程序来处理

image-20260414110801973

telnet 192.168.200.9

Telnet 默认使用 23 端口,连接成功后会要求输入账号和密码,登录后就可以像在本地一样操作这台远程主机。

image-20260414110926410

sudo tcpdump -i eth0 -n -S host 192.168.200.9 and host 192.168.200.10

实时抓取并显示 192.168.200.9 和 192.168.200.10 这两台主机之间互相传输的所有网络数据包

image-20260414111458289

通过靶机kali远程控制seed登录水木社区。

image-20260414111439319

攻击机可观察到,靶机端口为33600,序列号为seq770489363,确认号ack2064381843。可通过这些信息,伪造假数据包传输到seed客户端中,实现攻击。

image-20260414111412610

创建文件的命令是touch /tmp/HACKER\n,使用在线网站把ASCII转化为HEX十六进制数。

image-20260414111843620

sudo netwox 40 -l 192.168.200.10 -m 192.168.200.9 -o 33600 -p 23 -q 770489363 -r 2064381843 -z -A -H "746f756368202f746d702f4841434b45520a"

命令中-l指定伪造源 IP,-m指定目标 IP,-o/-p匹配通信端口,-q/-r严格填入合法序列号与确认号,-A设置 ACK 标识保证数据包被靶机认可,-H后跟随十六进制编码的恶意指令touch /tmp/HACKER,最终将伪造的合法数据包注入已建立的 Telnet 连接,让靶机在无感知的情况下执行创建文件的操作,完成无交互的远程命令执行。

image-20260414112824803

查看seed中touch /tmp文件夹,发现hacker文件夹已经被创建。seed机被攻击。

image-20260414112936365

3.学习中遇到的问题及解决

1.权限不足

image-20260414183431779

原因:

​ 当前以普通用户 kali 身份运行 netwox 76 命令,而 netwox 76 是一个SYN Flood 攻击工具,需要通过原始套接字伪造 TCP SYN 包,这类操作必须拥有 root 权限才能执行。Linux 系统为了安全,严格限制非 root 用户使用原始套接字,防止恶意用户发起网络攻击、嗅探流量或伪造数据包。

解决方法:

​ 使用root用户即可

4.学习感想和体会

​ 本次 TCP/IP 网络协议攻防实践,让我对网络安全有了更深刻的认知与体悟。实践初期,面对复杂的协议原理与攻击流程,我一度难以跟上参考视频的节奏,只能通过查阅资料、拆解原理,才逐步理清各类网络攻击的逻辑与操作。

​ 最具挑战的是 SYN Flood 攻击与原始套接字操作环节,起初因权限不足导致命令执行失败,报错信息让我手足无措。在排查问题的过程中,我深入理解了 Linux 系统原始套接字的权限限制,也掌握了从报错溯源、定位问题根源的方法。同时,在抓包分析、协议构造的过程中,我真切感受到 IPv4、TCP 等早期协议在设计时重效率、轻安全的局限,也明白了网络攻防的核心从来不是工具的堆砌,而是对底层协议的透彻理解。

​ 整个实践过程充满了试错与突破,从报错排查到原理吃透,从工具使用到逻辑贯通,不仅锻炼了我的问题解决能力,更让我深刻认识到:真正的网络安全能力,根植于对网络底层逻辑的掌握。

posted @ 2026-04-14 18:40  源同学  阅读(9)  评论(0)    收藏  举报