20251911 2024-2025-2 《网络攻防实践》实践四报告

1. 实践内容

本次实践围绕TCP/IP协议栈中五种典型网络攻击展开,具体内容如下:

  • ARP缓存欺骗攻击:攻击者伪造ARP响应包,告诉目标主机“网关的MAC地址是攻击者的MAC地址”,使目标将本应发往网关的流量误发给攻击机。攻击机开启IP转发后,可在目标不知情的情况下实现中间人监听或篡改。

  • ICMP重定向攻击:利用ICMP重定向机制,攻击者伪装成网关向目标发送伪造的ICMP重定向报文,声称“去往外网走攻击机IP更近”。目标收到后更新路由缓存,将外网流量引向攻击机,攻击机再转发以维持上网功能。

  • SYN Flood攻击:针对TCP三次握手的半连接队列,攻击者向服务器发送大量伪造源IP的SYN请求。服务器为每个请求分配资源并等待ACK,但永远收不到最终确认,导致半连接队列耗尽,无法接受正常连接。

  • TCP RST攻击:利用TCP重置RST标志位,攻击者伪造源IP和目标端口,向通信一方发送窗口内有效的RST包,强制中断合法TCP连接。

  • TCP会话劫持攻击:攻击者通过中间人位置嗅探或猜测TCP序列号,伪造数据包插入现有会话,冒充其中一方发送指令。在明文协议中,可直接注入恶意命令。

2. 实践过程

2.1 环境准备与初始验证

2. 实践过程

前置ip与mac环境

名称 IP地址 MAC地址
seedUbuntu 192.168.200.65 00:0c:29:a6:5a:29
kali 192.168.200.64 00:0c:29:11:10:41
WinXp 192.168.200.66 00:0c:29:97:aa:11

image

image
image

首先确认各虚拟机网络互通。在 seedUbuntu 上分别 ping Kali 和 winXP,记录下响应情况。
image
然后执行 arp -n 查看当前的 ARP 映射表,确认各 IP 对应的 MAC 地址是真实的。
image
验证成功!

2.2 ARP 缓存欺骗攻击

目标:让 seedUbuntu 误以为 winXP 的 MAC 地址是 Kali 的 MAC。

操作

  1. 在 Kali 上下载并安装 netwox 工具

  2. 执行欺骗命令:

    netwox 80 -e 00:0c:29:11:10:41 -i 192.168.200.66
    

    其中 -e 填入 Kali 的 MAC,-i 填入 winXP 的 IP 地址。该命令会向局域网内发送伪造的 ARP 响应,声称 192.168.200.66 的 MAC 是 Kali 的 MAC。
    image

  3. 回到 seedUbuntu,再次执行 arp -n 查看映射表。发现 192.168.200.66 对应的 MAC 已经变成了 Kali 的 MAC(00:0c:29:11:10:41),欺骗成功!
    image

2.3 ICMP 重定向攻击

目标:让 seedUbuntu 将外网流量的下一跳指向 Kali。

操作

  1. 在 seedUbuntu 上 ping 百度,同时用 Wireshark 抓包,观察正常的 ICMP 报文。
    image

  2. 在 Kali 上执行:

    netwox 86 -f "host 192.168.200.65" -g 192.168.200.64 -i 192.168.200.1
    

!! 参数含义:-f 指定受害者 IP(seedUbuntu),-g 指定伪造的“更优网关”(Kali),-i 指定真实网关。
image

  1. 用 Wireshark 在 Kali 上抓包,可以看到发出的 ICMP 重定向报文。
    image

  2. 回到 seedUbuntu,再次 ping 百度,观察路由表,发现下一跳变成了 Kali 的 IP,攻击生效。
    image

2.4 SYN Flood 攻击

目标:对 winXP 的 23 端口即Telnet发起拒绝服务攻击。

操作

  1. 在 winXP 上启用 Telnet 服务,控制面板服务中开启。
    image

  2. 先用 Kali 尝试正常 Telnet 登录 winXP,确认服务可用。
    image

  3. 在 Kali 上执行:

    netwox 76 -i 192.168.200.66 -p 23
    

    该命令向 winXP 的 23 端口发送大量伪造源 IP 的 SYN 包。

  4. 用 Wireshark 抓包,看到大量 SYN 标志的 TCP 包涌向 192.168.200.66,源地址随机。
    image

  5. 此时再次尝试从seedUbuntu Telnet 到 winXP,出现严重延迟或连接失败,说明半连接队列被占满。

2.5 TCP RST 攻击

目标:中断 seedUbuntu 与 winXP 之间已建立的 Telnet 连接。

操作

  1. 在 seedUbuntu 上执行 telnet 192.168.200.66 登录 winXP,保持会话。
    image

  2. 在 Kali 上执行 RST 攻击命令:

    netwox 78 -i 192.168.200.66 --device eth0
    

    !!!注意:必须指定 --device eth0 明确网卡接口,否则攻击可能无效。
    image

  3. 回到 seedUbuntu 的 Telnet 窗口,立即看到连接被强制关闭。
    image
    Wireshark 中捕获到大量 RST 包,由 Kali 伪造发送。
    image

  4. 再次尝试从 seedUbuntu Telnet 到 winXP,发现短时间内无法成功连接,证明攻击有效。
    image

2.6 TCP 会话劫持攻击

目标:在中间人位置窃取 Telnet 登录的账号密码。

操作

  1. 在 Kali 上启动 Ettercap 图形界面
    image

  2. 开始嗅探
    image

  3. 点击“Hosts” → “Scan for hosts”扫描网络内主机,然后在“Hosts list”中查看扫描结果。
    image

  4. 将 seedUbuntu 设置为 Target 1,winXP 设置为 Target 2。
    image

  5. 点击“MITM Menu” → “ARP poisoning”,勾选“Sniff remote connections”,启用中间人攻击。
    image

  6. 在 seedUbuntu 上执行 telnet 192.168.200.66 并输入用户名和密码。
    image

  7. 在 Ettercap 中点击“View” → “Connections”,找到对应的 Telnet 记录,双击即可看到捕获的明文账号密码,会话劫持成功。
    image

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

  • 问题2:ARP 欺骗后,目标主机偶尔出现断网现象。

    • 原因分析:攻击机未开启 IP 转发,导致被欺骗的流量无法继续转发到真实网关。
    • 解决方案:在攻击机上执行 sysctl net.ipv4.ip_forward=1 开启转发,必要时同时欺骗网关实现双向劫持。!!!!!!!!
  • 问题3:SYN Flood 攻击时,Kali 自身变得卡顿导致死机!。

    • 原因分析:netwox 76 默认以较高速率发包,虚拟机资源有限导致响应慢。
    • 解决方案:适当降低攻击强度,或给 Kali 分配更多 CPU/内存资源。实验时观察到现象后及时停止攻击即可。

4. 学习感想与体会

通过本次动手实验,我对几种经典网络攻击的触发条件和实现细节有了更直观的认识。尤其是对于ARP 欺骗,让我意识到,同一广播域内的主机之间缺乏身份验证,任何人都可以冒充他人。这解释了为什么ARP表在安全加固中很重要。对于ICMP 重定向攻击虽然现代操作系统有所限制,但在老系统或配置不当的环境中仍然有效,提醒我不能轻易信任控制报文。并且对于SYN Flood展示了资源耗尽类攻击的简单粗暴——不需要漏洞,只需要数量。这也让我理解了 SYN Cookie 机制(!!)的价值。

实验中也遇到一些小波折,通过查阅资料和请教同学,这些问题都得到了解决。总的来说,这次实践加深了我对 TCP/IP 协议栈安全弱点的理解,也提升了动手排错的能力。

posted @ 2026-04-14 19:52  yuzzz11111  阅读(1)  评论(0)    收藏  举报