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

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

1.实践内容

本次实践围绕五种典型的网络层与传输层攻击技术展开,旨在通过动手实验深入理解其原理、实施过程与防御重要性。具体内容涵盖以下五个方面:

  1. ARP缓存欺骗攻击:通过在同一广播域内,利用工具(如netwoxarpspoof)伪造并发送虚假的ARP响应报文,欺骗目标主机更新其ARP缓存表,将合法IP地址映射到攻击者控制的MAC地址。本实践成功演示了如何通过此攻击实现中间人窃听或流量劫持的前提条件,并通过对比攻击前后ARP缓存表的变化验证了攻击效果。
  2. ICMP重定向攻击:利用ICMP协议中“重定向”报文的功能,攻击者伪装成目标主机的默认网关,向目标主机发送伪造的ICMP重定向报文,欺骗其修改本地路由表,将发往特定网络的数据包转向攻击者指定的“更好路径”(即攻击机)。本实践通过指定参数,使靶机将发往互联网的流量重定向至攻击机,成功演示了此攻击对网络流量的非法操控。
  3. SYN Flood攻击:这是一种典型的拒绝服务(DoS)攻击。通过工具(如netwox)伪造大量源IP地址,向目标主机的特定服务端口(如Telnet的23端口)发送海量的TCP连接请求(SYN包),但不完成三次握手。这将迅速耗尽目标主机的半连接队列资源,导致其无法响应合法的连接请求。本实践通过观察攻击前后Telnet服务的可用性及Wireshark抓包分析,验证了攻击导致的服务瘫痪状态。
  4. TCP RST攻击:通过嗅探网络中的TCP通信,获取正确的序列号信息,然后伪造并向通信双方发送TCP重置(RST)报文。接收到伪造RST报文的主机会认为连接出现错误,从而立即中断合法的TCP会话。本实践演示了攻击如何实时切断已建立的Telnet连接,实现了对特定连接的精准阻断。
  5. TCP会话劫持攻击:在成功实施ARP欺骗(中间人攻击)的基础上,对流经攻击机的明文传输协议(如Telnet)会话进行实时嗅探与内容还原。本实践使用Ettercap工具,成功捕获并展示了Telnet登录过程中的用户名、密码等敏感信息,直观揭示了未加密协议在中间人攻击下的严重安全隐患。

2.实践过程

2.1ARP缓存欺骗攻击

为了确保ARP广播包能正常交互,实验在同一广播域(VMnet8)中进行。

  • 攻击机 (Kali): 192.168.200.64 | MAC: 00:0c:29:28:83:c7
  • 靶机A (SEED Ubuntu): 192.168.200.65 | MAC: 00:0c:29:a9:24:74
  • 靶机B (Windows XP): 192.168.200.66 | MAC: 00:0c:29:c2:db:49

image-20260411202914615

image-20260412225836932

image-20260409185918846

在攻击发起前,验证靶机之间的连通性及ARP缓存表的原始状态。(此时先让kali和XP靶机ping通了,使用的是kali自己的ip地址和mac地址)

image-20260411203119694

之后在kali攻击机上下载netwox工具,该工具用于需改arp缓存信息。使用命令apt install netwox下载工具:

image-20260409200203551

已经成功下载好工具,使用netwox 80命令可是发现一直无法实现攻击。(这里还是使用了之前的攻击跨网段的靶机,所以一直无法实现攻击)

image-20260411181029634

通过tcp抓包验证,kali攻击机确实在向靶机发送arp欺骗攻击,此时查看靶机的记录可以发现一直无法改变mac地址,此时改用dsniff 工具集来进行arp欺骗攻击。

image-20260411190238991

使用新命令使用kali攻击机攻击靶机arpspoof -i eth0 -t 192.168.200.66 192.168.200.65,将目标靶机192.168.200.65的mac地址改成攻击机自己的mac地址。

image-20260411203657769

这个是攻击机发送攻击的记录。

image-20260411203737628

这个两次之间的对比,第一次是正确的攻击机自己的ip地址和mac地址,第二次是将两个靶机之间互相ping通之后,攻击机已经将目标靶机192.168.200.65的mac地址篡改成kali攻击机自己的mac地址,至此实验一结束,arp欺骗攻击成功。

2.2 ICMP重定向攻击

首先在SEED Ubuntu机器中ping通baidu网址,看看是否能够成功与外界相连,并且使用route -n命令查询默认网关:

image-20260412173819242

表示可以ping通,靶机 SEED Ubuntu (192.168.200.65) 的默认网关 (Gateway) 是 192.168.200.2

使用命令netwox 86 -f "host 192.168.200.65" -g 192.168.200.64 -i 192.168.200.2进行攻击,具体解释如下所示:

  • -f "host 192.168.200.65" (Filter / 嗅探过滤): 告诉 Kali 专门监听由靶机 SEED Ubuntu (.65) 发出的数据包。一旦嗅探到它发包,立刻触发攻击。

  • -g 192.168.200.64 (New Gateway / 新网关)想要篡改成的假网关地址。我希望靶机以后把流量都交给 Kali (.64),所以这里填 Kali 的 IP。

  • -i 192.168.200.2 (Spoofed IP / 伪造源 IP): 这是最关键的一步。ICMP 重定向报文必须由靶机当前的合法网关发出,靶机才会相信并修改路由表。因此,Kali 必须把自己伪装成真实的网关 (.2) 来发送这个重定向包。

image-20260412173643020

持续ping通www.baidu.com,发现真实的网关(其实是 Kali 伪造的)告诉靶机,新的下一跳(Nexthop)已经变成了 Kali (.64)。此时,靶机的流量已经被成功重定向到了kali攻击机上。至此,ICMP重定向攻击成功。

2.3 SYN Flood攻击

通过执行命令telnet 192.168.200.132,成功连接到目标主机,并正常进入登录界面,说明目标主机的Telnet服务在攻击前是可以正常访问的。

image-20260412181414950

执行SYN Flood攻击命令netwox 76 -i 192.168.200.134 -p 23

  • 76:这是 netwox 中专门用于执行 TCP SYN 泛洪攻击 (IPv4) 的模块编号。它会自动且疯狂地随机伪造源 IP 地址和源端口,让靶机根本查不到真实的攻击来源是谁。

  • -i 192.168.200.134-i 代表 IP address(目标 IP)。即**Metasploitable **虚拟机的地址。

  • -p 23-p 代表 port(目标端口)。23是 Telnet 服务的默认端口。

image-20260412182222255

image-20260412182518847

从 Wireshark 抓包截图中可见,攻击机正向靶机(192.168.200.134)的 23 端口疯狂发送 TCP [SYN] 报文,且源 IP 地址呈现高度随机的伪造特征,导致靶机的半连接队列被这些虚假请求瞬间填满。

image-20260412182532925

受此资源耗尽的影响,在 SEED Ubuntu 的验证截图中,正常的 Telnet 合法连接一直卡死在“Trying 192.168.200.134...”状态,彻底丧失了响应能力。抓包流量与终端断连现象相互印证,完美证明了靶机已陷入拒绝服务(DoS)瘫痪状态,本次 SYN 泛洪攻击实验圆满成功。

2.4 TCP RST攻击

与SYN Flood攻击相似,通过执行命令telnet 192.168.200.132,成功连接到目标主机,并正常进入登录界面,说明目标主机的Telnet服务在攻击前是可以正常访问的。(一定要记住关闭上一次的攻击,不然整个电脑都会非常卡顿,也无法成功连接)

image-20260412183132458

在kali攻击机中使用命令netwox 78 -i 192.168.200.134。

image-20260412184138504

在 Kali 攻击机上成功运行 netwox 78 模块,针对靶机(.134)的 TCP 流量进行持续的被动嗅探与 RST 注入。

image-20260412183429929

image-20260412184041253

完美印证了抓包结果。在 SEED Ubuntu 上,由于底层连接被伪造的 RST 包瞬间重置,导致上层应用表现为:无论尝试多少次 Telnet 连接,刚一显示 Connected(连接成功),就会立刻被强制踢出,显示 Connection closed by foreign host

image-20260412184022454

Wireshark 抓包清晰记录了完整的攻击过程。在靶机(.65 与 .134)完成正常的 TCP 三次握手(黑灰色 SYN/ACK 包)后,Kali 瞬间伪造了双方的身份,向双端双向发送了致命的红色 [RST, ACK] 报文,强行切断了刚刚建立的物理链路。
攻击机成功利用 TCP 协议信任序列号的脆弱性,精准注入伪造的重置报文,实现了针对特定 TCP 连接的精准阻断与拒绝服务(DoS)。至此,说明TCP RST攻击成功。

2.5 TCP会话劫持攻击

首先使用命令ettercap -G来打开,选择网卡eth0作为监听接口,开始统一嗅探,使攻击机能够捕获局域网中的通信数据:

image-20260412214006268

image-20260412214206312

首先,在 Kali 攻击机中启动 Ettercap 图形化界面,并执行 Scan for hosts 操作。Ettercap 会向局域网内广播 ARP 请求或利用 ICMP 探测,获取当前网段内所有存活主机的 IP 与 MAC 地址映射表(Host List)。

image-20260412215116775

image-20260412215153968

随后,为了实施精准的中间人攻击,我们在列表中将 SEED Ubuntu (192.168.200.65) 设定为 Target 1,将 Windows XP 靶机 (192.168.200.66) 设定为 Target 2。这一步的目的是告诉 Ettercap,我们接下来要阻断并监听这两台特定机器之间的双向通信。

image-20260412215525167

目标选定后,通过 Ettercap 菜单启动 ARP 毒化攻击(ARP poisoning)。从底部的控制台日志可以清晰地看到:GROUP 1 : 192.168.200.65GROUP 2 : 192.168.200.66 已成为受害者。

image-20260412221503999

在中间人环境搭建完毕后,我们在客户端 SEED Ubuntu 上发起对 Windows XP 靶机 23 端口(Telnet 服务)的连接请求。经过前期排错开启服务后,此次连接成功。客户端输入了账号 administrator 并盲打了密码。此时,这股包含身份凭证的 TCP 流量正毫无防备地穿过 Kali 攻击机。

image-20260412221438128

在 Ettercap 的 Connections 面板中,我们可以实时看到所有流经攻击机的会话。其中,192.168.200.65192.168.200.66 之间目标端口为 23 的 TCP 连接赫然在列。 双击该连接查看 Connection data,获取到了本次攻击的核心铁证:

  • 协议缺陷验证:由于 Telnet 采用极度不安全的纯明文传输(未经过任何 TLS/SSL 加密),Ettercap 将捕获到的数据包进行重组后,直接还原了完整的交互场景。

  • 精准记录:左侧窗口(客户端输入)不仅精确捕捉到了攻击者最终敲入的明文密码 mima1234,甚至连输入账号时的拼写停顿和错误(如 adminstrat...)也一字不落地记录了下来,这完美证明了 Ettercap 在进行字节级的高精度实时击键嗅探。

image-20260412222259382

image-20260412222506419

image-20260412222526259

综上所述,TCP会话劫持攻击成功实现。

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

3.1 问题一:使用netwox工具一直无法成功改变mac地址

3.2 问题二:使用arpspoof工具也一直无法成功改变mac地址

image-20260411181922942

此刻我将问题一二合并,指出一个困扰我很久的问题,为什么一直无法成功改变mac地址,因为一开始我一直追求与用kali攻击机去攻击metasploitableWin2kServer_SP0_target两台机器,但是这两台机器和kali攻击机 不处于同一个网段之下,中间是通过了honeywall网关来进行连接,所以在使用 netwoxarpspoof 发起攻击时频频失败(如报错 couldn't arp for host)。经深入排查,根本原因在于混淆了网络层(跨网段路由)与数据链路层(局域网广播)的协议边界。我的kali攻击机与两个靶机分属不同的虚拟交换机(VMnet8与VMnet1),中间存在网关隔离。虽然三层的 Ping 包能靠网关跨网段代转,但ARP协议依赖二层大喇叭广播,其数据包在物理上绝对无法穿透路由器。

解决思路与方法: 突破防线不能靠换工具,必须消除二层的物理隔离。我直接改用另外两台和kali攻击机所属于同一网段下的两台机器seed和winattack来参与实验,严格对齐同网段的IP与子网掩码以保证逻辑互通。在同一广播域内,先使用 ping 命令互通以预热底层ARP缓存表,随后执行 arpspoof 顺利完成单向欺骗。

3.3 问题三:在进行SYN Flood攻击的时候始终无法telnet靶机

image-20260412181308635

在Telnet连接靶机时,输入账号密码后界面卡死,最终提示“60秒登录超时(Login timed out)”。最后经过查阅资料后分析得出,并非密码错误,而是由于Kali攻击机仍在后台持续执行SYN Flood等攻击未终止。海量的恶意包占满了靶机的TCP半连接队列,耗尽了系统资源,导致靶机无法处理正常的身份验证请求,实质上形成了拒绝服务(DoS)状态。

解决思路和方法: 立即在Kali终端按下 Ctrl+C 强行停止所有攻击进程。等待10至20秒,让靶机的TCP协议栈自动清理掉堆积的无效连接后,重新发起Telnet请求即可成功登录。

3.4 问题四:一直无法成功telnet成功windowXP

image-20260412221001964

SEED Ubuntu 可以 Ping 通目标 Windows XP (192.168.200.66),但执行 telnet 时报错 Connection refused(连接被拒绝)。Ping通说明底层网络连通正常。Telnet报错拒绝,是因为 Windows XP 的 23 端口未监听,即 Telnet 服务未启动。

解决思路和方法: 进入 Windows XP 的控制面板或运行 services.msc 打开“服务”管理器。在列表中找到 Telnet 服务,将其启动类型改为手动或自动并点击“启动”。服务开启后,再次从 Ubuntu 发起连接即可成功登录。

4.学习感想和体会

在本次网络攻防实践中,我通过亲自动手实施ARP欺骗、ICMP重定向、SYN Flood、TCP RST攻击及TCP会话劫持,深刻体会到理论知识与实践操作结合的巨大价值。我不再将攻击原理视为抽象概念,而是亲眼见证了恶意数据包如何一步步扭曲网络协议的正常逻辑,最终达成窃听、劫持或瘫痪服务的目的。更重要的是,从“攻击者”视角的实践,极大地强化了我的防御者思维。我切身理解了为什么网络需要部署ARP绑定、防火墙、入侵检测系统以及必须采用HTTPS等加密协议——每项防御措施都是针对这些真实威胁的“盾牌”。这让我对网络安全体系的构建有了更立体、更紧迫的认识。

此外,实验中排查故障,产生问题并且解决问题的过程,锻炼了我的逻辑分析和问题解决能力。我认识到,扎实的网络基础和严谨的实验态度是成功的关键。最终,这次实践不仅提升了我的技术能力,更强化了我的责任感:掌握攻击手段是为了更好地守护安全,技术的应用必须恪守伦理与法律的边界。

posted @ 2026-04-12 23:00  Z_y_y  阅读(16)  评论(0)    收藏  举报