一.实践内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。1.ARP缓存欺骗攻击
ARP缓存欺骗攻击利用了ARP协议缺乏身份验证的漏洞。攻击者通过在局域网内发送伪造的ARP响应消息,将自己的MAC地址与网络中其他设备的IP地址绑定,从而使得网络上原本发往该IP地址的数据包错误地发送给攻击者。这样,攻击者可以截获、篡改甚至中断网络通信,同时保持对目标设备的“假冒”身份。该攻击往往需要定期发送伪造消息以维持ARP缓存中的错误映射。
2.ICMP重定向攻击
ICMP重定向攻击利用了设备默认信任ICMP重定向消息的特点。攻击者伪造合法的ICMP重定向信息,诱使目标主机更新其路由表,将本来直达目标的数据流转而通过攻击者控制的网关。这种攻击方式可以实现流量劫持,从而截获、篡改甚至中断通信。其原理在于大多数网络设备未对ICMP重定向消息进行严格验证,攻击者正是利用这一漏洞来操纵路由选择。
3.SYN Flood攻击
SYN Flood攻击利用了TCP三次握手过程中的资源分配机制。攻击者向目标服务器发送大量的TCP SYN请求包,这些请求往往采用伪造的源IP地址。当服务器收到SYN包后,会为每个连接分配资源并发送SYN-ACK回复,等待客户端发送最终的ACK确认。然而,由于攻击者不会发送该ACK,连接一直处于半开状态,占用服务器的连接队列。随着大量半开连接的累积,服务器的资源被耗尽,无法响应正常的连接请求,从而实现拒绝服务攻击。
4.TCP RST攻击
TCP RST攻击利用了TCP协议中的重置(RST)包机制。攻击者向目标主机发送伪造的TCP RST(重置)包,伪装成连接中的一方(如客户端或服务器)。当目标主机收到伪造的RST包时,它会错误地认为该连接已经被中断或重置,因此会立即关闭该连接。通过这种方式,攻击者能够强制终止正常的TCP连接,导致通信中断,从而实现拒绝服务攻击。该攻击的关键在于攻击者能够伪造源IP地址和端口,使得目标主机错误地处理连接。
5.TCP会话劫持攻击
TCP会话劫持攻击是通过窃取或伪造TCP连接中的有效数据包来接管已经建立的会话。攻击者首先需要监听目标网络上的通信流量,获取到TCP连接的序列号和其他关键信息(如会话的ID和身份验证信息)。一旦攻击者掌握了这些信息,就可以伪造并注入合法的数据包,冒充会话的合法一方,继续与对方进行通信。通过这种方式,攻击者可以控制会话,篡改数据或执行未授权的操作,甚至窃取敏感信息。攻击的关键是劫持和利用目标会话中的有效序列号,使攻击者能够插入伪造的包而不被目标主机察觉。
二.实践过程
1.ARP缓存欺骗攻击。
(1)在本次实验中,选择Kali作为攻击机,WinX、SEEDUbuntu9作为靶机。kali的IP地址为192.168.200.2,WinX的IP地址为192.168.200.4,SEEDUbuntu9的IP地址为192.168.200.5,mac为00:0c:29:b8:26:d9。三台主机需要在同一个网段内。(2)在SEEDUbuntu9上ping一下WinX主机,确认二者是联通的,命令为ping 192.168.200.4。

(3)查看SEEDUbuntu9的arp表,命令为arp -a。可以看到WinX的mac为00:0c:29:4d:08:13。

(4)接下来我们要安装一个网络攻击的工具netwox,注意安装工具的时候需要链接外部网络。命令为sudo apt-get install netwox。

(5)使用netwox进行arp缓存欺骗攻击。命令为sudo netwox 80 -e 00:0c:29:b8:26:d9 -i 192.168.200.4,其中00:0c:29:b8:26:d9为SEEDUbuntu9、即被转发的靶机的mac地址,192.168.200.4为WinX、即进行欺骗攻击的目标主机的IP地址。

(6)再次查看SEEDUbuntu9的arp表,可以看到WinX的mac地址已经发生了改变,和SEEDUbuntu9一样了。

2.ICMP重定向攻击。
(1)在本次实验中,选择Kali作为攻击机,SEEDUbuntu9作为靶机。kali的IP地址为192.168.25.128,SEEDUbuntu9的IP地址为192.168.25.129。两台主机需要在同一个网段内。(2)查看SEEDUbuntu9的网关地址192.168.25.2,命令为route -n。

(3)在kali上使用netwox对SEEDUbuntu9进行ICMP重定向攻击。命令为sudo netwox 86 -f "host 192.168.25.129" -g 192.168.25.128 -i 192.168.25.2,其中192.168.25.129是靶机的IP地址,192.168.25.128是攻击机的IP地址,192.168.25.2是网关。

(4)在SEEDUbuntu9上ping一下百度网站,可以观察到流量的下一跳变成了攻击机的地址。

3.SYN Flood攻击。
(1)在本次实验中,选择Kali作为攻击机,Metasploitable_ubuntu、SEEDUbuntu9作为靶机。kali的IP地址为192.168.25.128,Metasploitable_ubuntu的IP地址为192.168.25.132,SEEDUbuntu9的IP地址为192.168.25.129。三台主机需要在同一个网段内。(2)在SEEDUbuntu9主机上对Metasploitable_ubuntu主机进行telnet访问服务,命令为telnet 192.168.25.132。此时登陆Metasploitable_ubuntu主机还是很轻松的。

(3)在kali上使用netwox对Metasploitable_ubuntu进行SYN Flood攻击。命令为sudo netwox 76 -i 192.168.25.132 -p 23。

(4)再次在SEEDUbuntu9主机上对Metasploitable_ubuntu主机进行telnet访问,发现此时已经无法登录Metasploitable_ubuntu主机了。

(5)打开wireshark进行抓包,可以看到kali攻击机向靶机发送了大量无用的syn链接请求包。

4.TCP RST攻击。
(1)在本次实验中攻击机与靶机的情况与3相同。(2)在SEEDUbuntu9主机上对Metasploitable_ubuntu主机进行telnet访问服务,可以登录。

(3)在kali上使用netwox对Metasploitable_ubuntu进行TCP RST攻击。命令为sudo netwox 78 -i 192.168.25.132。

(4)再次在SEEDUbuntu9主机上对Metasploitable_ubuntu主机进行telnet访问,发现此时链接已经被强制关闭。

5.TCP会话劫持攻击。
(1)在本次实验中攻击机与靶机的情况与3相同。(2)本次实验需要使用ettercap工具,输入命令ettercap -G,可以打开ettercap的图形化界面。

(3)点击右上角的对号—>Host—>Scan for hosts。

(4)在列表中将SEEDUbuntu9、Metasploitable_ubuntu两个靶机的IP地址分别设置为target1和target2。

(5)点击MITM—>ARP poisoning—>OK。

(6)点击Menu—>View—>Connections。

(7)然后在SEEDUbuntu9主机上对Metasploitable_ubuntu主机进行telnet访问,输入Metasploitable_ubuntu的账号和密码,登录,返回ettercap界面,可以看到在Connections上建立的链接。

(8)打开链接数据,可以看到登录Metasploitable_ubuntu时所输入的账号和密码。

三.实践总结
本次实验实际操作了一些TCP/IP协议的攻击,通过这些攻击我很好地了解TCP/IP协议的工作原理及其潜在的安全漏洞。实验内容包括ARP缓存欺骗攻击、ICMP重定向攻击和SYN Flood攻击等,通过使用netwox等工具,我们对目标网络实施攻击并通过Wireshark等工具观察数据包的变化。导致服务无法访问。ARP欺骗通过伪造ARP消息,实施中间人攻击,截获或篡改目标主机的网络通信;ICMP重定向攻击可以将靶机的流量重定向到指定的目标主机中;在SYN Flood攻击中,我们通过伪造大量TCP请求包,使目标主机的连接数增加;等等等等。针对这些攻击,我同样搜索了一些防范的方法,包括部署静态ARP表和ARP检测工具避免ARP欺骗,配置防火墙、阻止不必要的ICMP请求来防止ICMP重定向攻击,使用SYN Cookie、TCP连接排队机制等对抗SYN Flood等等。本次实验让我深刻认识到了TCP/IP协议安全性问题的重要性,并且提高了对网络安全的理解。