zty1234

导航

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

1. 实践内容

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


2. 前置知识

TCP/IP协议栈:今天我们要进行的实践都要基于TCP/IP协议栈中的特定的协议。我们平常学习的网络体系结构分为以下三种:七层、四层和五层。其中,七层网络结构(OSI模型)主要提供了一个标准化的理论框架,详细定义了网络通信的每一层功能,便于不同系统之间的互操作性和协议设计。但是它过于复杂,实际应用中很少完全实现,更多用于理论分析和教学。我们提到的TCP/IP协议栈主要是至四层网络结构(TCP/IP模型)和五层网络结构,四层结构简化了OSI模型,专注于实际应用,成为互联网的基础架构,实现了全球范围内的网络互联。但是它层次较少,某些功能划分不够清晰,如应用层包含了OSI模型中表示层和会话层的功能。而五层网络结构在OSI和TCP/IP之间找到了平衡,既保留了OSI的层次清晰性,又简化了实际应用,常用于教学和网络设计。然而虽然比OSI简化,但在实际应用中仍不如TCP/IP模型普及,适用性有限。

ARP缓存欺骗攻击:
ARP(Address Resolution Protocol,地址解析协议) 用于将网络层的IP地址解析为数据链路层的MAC地址,以便在局域网中正确传输数据包。它的工作流程包括:

  1. ARP请求:当设备需要发送数据时,如果不知道目标IP对应的MAC地址,会广播一个ARP请求包,询问“谁有这个IP地址?”。
  2. ARP响应:拥有该IP地址的设备会回复一个ARP响应包,告知其MAC地址。
  3. 更新ARP缓存:发送方收到响应后,将IP-MAC映射存入ARP缓存,供后续通信使用。
    它可以提供的服务有:
  • 地址解析:实现IP地址到MAC地址的动态映射。
  • 局域网通信:确保数据包在局域网内正确传递。

ARP缓存欺骗攻击 (ARP Spoofing)是一种网络攻击,攻击者通过伪造ARP消息,欺骗目标设备将其MAC地址与错误的IP地址关联,从而截获或篡改网络流量。
它的攻击过程主要分为以下几步:

  1. 伪造ARP响应:攻击者发送虚假的ARP响应包,声称自己的MAC地址对应目标IP地址。
  2. 更新ARP缓存:目标设备更新其ARP缓存,将攻击者的MAC地址与目标IP地址关联。
  3. 流量重定向:发往目标IP地址的网络流量被重定向到攻击者的设备,攻击者可以截获、篡改或阻断这些流量。

ICMP重定向攻击:
ICMP(Internet Control Message Protocol,互联网控制消息协议) 是TCP/IP协议栈的一部分,主要用于在IP网络中传递控制消息和错误报告。它通常用于网络诊断和故障排除,例如通过ping命令测试网络连通性。它的主要功能有:

  • 错误报告:当数据包无法到达目的地时,ICMP会发送错误消息(如“目标不可达”)。
  • 网络诊断:通过工具如pingtraceroute,ICMP用于检测网络连通性和路径。
  • 流量控制:通知发送方降低数据发送速率(如“源抑制”消息)。

ICMP重定向攻击 是一种网络攻击,攻击者通过伪造ICMP重定向消息,诱使目标设备将数据包发送到攻击者指定的路由,从而截获或篡改网络流量。
它的攻击过程主要分为以下几步:

  1. 伪造ICMP重定向消息:攻击者发送伪造的ICMP重定向消息,声称存在更优的路由。
  2. 更新路由表:目标设备接收并信任该消息,更新其路由表,将数据包重定向到攻击者指定的路径。
  3. 流量截获:攻击者可以截获、篡改或阻断目标设备的网络流量。

TCP和TCP的三次握手:
TCP(Transmission Control Protocol,传输控制协议) 是一种面向连接的、可靠的、基于字节流的传输层通信协议。它确保数据在网络中可靠、有序地传输,广泛应用于Web浏览、电子邮件、文件传输等场景。
TCP三次握手 指的是TCP协议建立连接的过程,确保通信双方能够同步序列号并确认对方的接收和发送能力。其过程如下:
第一次握手:客户端发送SYN包(SYN=1,seq=x)到服务器,请求建立连接。
第二次握手:服务器收到SYN包后,回复SYN-ACK包(SYN=1,ACK=1,seq=y,ack=x+1),表示同意建立连接。
第三次握手:客户端收到SYN-ACK包后,发送ACK包(ACK=1,seq=x+1,ack=y+1),确认连接建立。

SYN Flood攻击 :
SYN Flood攻击是一种常见的拒绝服务攻击(DoS),利用TCP协议的三次握手过程中的漏洞,耗尽目标服务器的资源,使其无法响应合法用户的请求。在正常的TCP连接中,客户端发送SYN包,服务器回复SYN-ACK包,客户端再回复ACK包,完成连接。而攻击者发送大量伪造的SYN包到目标服务器,通常使用虚假的源IP地址。这样服务器在第二次握手时为每个SYN包分配资源并等待ACK回复,但由于源IP是伪造的,ACK永远不会到达。服务器资源被大量未完成的连接占用,导致无法处理合法请求。

TCP RST攻击:
TCP RST攻击是一种利用TCP协议进行的攻击,攻击者通过伪造TCP重置(RST)包,强制中断目标设备之间的TCP连接,导致通信中断。首先攻击者伪造一个RST包,其中包含目标连接的源IP、目标IP、源端口、目标端口以及正确的序列号。然后攻击者将伪造的RST包发送给通信的一方或双方。接收方收到RST包后,会认为连接出现错误,因而立即终止连接。

TCP会话劫持攻击:
同样的,TCP会话劫持攻击是一种利用TCP协议进行的攻击,攻击者通过窃取或伪造TCP会话中的序列号,冒充合法用户接管会话,从而窃取数据或执行恶意操作。首先,攻击者通过嗅探工具监听目标设备之间的TCP通信,获取序列号和确认号。然后攻击者伪造包含正确序列号的数据包,冒充合法用户发送给目标服务器。最后,服务器接受伪造的数据包,攻击者成功接管会话,可以窃取数据或执行恶意操作。


3. 实践过程

实验一:ARP缓存欺诈
本实验使用攻击机一台(kali),靶机两台(winxp,seed)。
先查看三个机器的ip和mac地址:



可以看到,kali的ip地址是192.168.200.6,mac地址是00:0c:29:20:26:aa,seed的ip地址是192.168.200.5,mac地址是00:0c:29:47:cb:62,winxp的ip地址是192.168.200.3。Mac地址是:00-0C-29-B0-66-37。

首先,使用seed来ping winxp,指令是ping 192.168.200.3

成功ping通。
在seed上键入arp -a查看arp表。

可以看到都是ip和mac对应的。
在kali中键入netwox 80 -e 00:0c:29:20:26:aa 1 -i 192.168.200.3,构成一个winxp的ip到kali的mac的映射。
然后在seed中再次键入arp -a,得到下图的结果,可以发现winxp的ip下成功变成了kali的mac地址,表示欺骗成功!

最后在kali上打开wireshark监听eth0,用seedping 192.168.200.3,在kali上成功捕获到包。

实验二:ICMP重定向攻击
本实验使用攻击机一台(kali),靶机一台(seed)。
由实验一已知:kali的ip地址是192.168.200.6,seed的ip地址是192.168.200.5。
首先,在seed上键入route -n。可以看到网关ip是192.168.200.1。

然后回到kali,打开wireshark监听eth0,键入指令netwox 86 -f "host 192.168.200.5" -g 192.168.200.6 -i 192.168.200.1,将icmp报文重定向到kali机上。
可以看到,icmp报文被重定向到kali(192.168.200.6)。

在wireshark上也能看到icmp被重定向的信息。

实验三:SYN Flood攻击
本实验使用攻击机一台(kali),靶机两台(winxp,seed)。
由实验一知,kali的ip地址是192.168.200.6,seed的ip地址是192.168.200.5,winxp的ip地址是192.168.200.3。
先试用seed对winxp进行telnet登录,指令telnet 192.168.200.3。输入账号密码成功登录。

然后开启wireshark监听网络,在kali上键入netwox 76 -i 192.168.200.3 -p 23,对winxp的telnet端口进行SYN Flood攻击。短短几秒之后便有几十万余的包。可以看到都是伪造的不同的ip地址和端口发送往靶机192.168.200.3:23的包。

实验四:SYN RST攻击
本实验使用攻击机一台(kali),靶机两台(winxp,seed)。
由实验一知,kali的ip地址是192.168.200.6,seed的ip地址是192.168.200.5,winxp的ip地址是192.168.200.3。
再次用seed对winxp进行telnet登录,指令telnet 192.168.200.3。输入账号密码成功登录。

回到kali,打开wireshark监听网络,键入netwox 78 -i 192.168.200.3。可以看到,kali伪造了seed的地址发了个带有RTS标志的包。

seed使用telnet登录进winxp的连接也断掉了。

继续重试若干次,都是发现连接被马上停止。

实验五:TCP会话劫持攻击
本实验使用攻击机一台(kali),靶机两台(winxp,seed)。
由实验一知,kali的ip地址是192.168.200.6,seed的ip地址是192.168.200.5,winxp的ip地址是192.168.200.3。
首先在kali上键入ettercap -G打开ettercap。

点勾开始嗅探,然后点击 menu->Hosts->Scan for hosts。

再通过hosts list查看扫描到的主机。

将seed设置为target 1,winxp设置成target 2。

进入MITM menu,选择ARP poisoning,点击OK。


然后点击menu->view->connections。

切换到seed,使用telnet登录winxp。再回到kali,发现这里放着所有我在seed上用telnet登录winxp的内容,包括账号和密码。


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

  • 问题1:实验三telnet winxp被拒绝连接。
  • 问题1解决方案:原因是winxp上的telnet服务(23端口)没有打开。在我的电脑->右键->管理->计算机管理->服务和应用程序->服务->telnet,设为手动并启动然后保存。就能成功登录。

5. 实践总结

通过本次实验,我深入理解了TCP/IP协议栈中关键协议的安全漏洞及攻击方式,包括ARP缓存欺骗、ICMP重定向、SYN Flood、TCP RST攻击和TCP会话劫持。实验让我直观感受到网络协议的脆弱性,例如ARP信任机制易被伪造、TCP序列号可被猜测等。同时,我也认识到防御措施的重要性,如加密通信、序列号随机化和入侵检测。这次实验让我对网络安全的攻防博弈有了更深的理解,也激发了我进一步学习的兴趣。


参考资料

posted on 2025-03-20 21:47  zty1423  阅读(33)  评论(0)    收藏  举报