20232821 吴煦雯 2023-2024-2 《网络攻防实践》实践四报告
1.实践内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.ARP缓存欺骗攻击
原理:攻击者在有线以太网或是无线网络上发送伪造的ARP消息,对特定IP所对应MAC地址进行欺骗,使局域网内主机记录的MAC-IP地址映射表中被攻击者的条目的MAC地址修改为攻击者指定的MAC地址,这样局域网内发送给被攻击者的数据包就会发送给修改后的MAC地址主机。
应用场景:ARP欺骗技术实现网络嗅探;ARP欺骗技术实现中间人攻击。
防范措施:采用静态的IP地址-MAC地址绑定。
2.ICMP重定向攻击
原理:攻击者伪装成路由器(IP地址欺骗:冒充为网关)发送虚假的ICMP重定向路由路径控制报文,使得受害主机选择攻击者指定的路径,从而实现嗅探或假冒攻击。这里存在一个现象:再转发的过程中,攻击节点协议栈可能会向被攻击者发送ICMP重定向报文,说明直接发送给真实的网关比发送给攻击机少一跳,这个报文将会是欺骗路径更改至原路径。
应用场景:中间人攻击、网络嗅探。
防范措施:设置防火墙过滤,对于ICMP重定向报文判断是不是来自本地路由器。
3.SYN Flood攻击
原理:又称为SYN洪泛攻击模式拒绝服务攻击的一种,利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
防范措施:SYN-Cookie技术,该技术改变的资源分配策略:当服务器收到一个SYN报文后,不立即分配缓冲区,而是将连接信息生成一个cookie,并将这个Cookie作为将要返回的SYN+ACK报文的初始序列号。单客户端返回一个ACK报文是,根据报头信息计算cookie,与返回的确认号(初始的序列号+1)的前24位进行比较,如果相同,那么是一个正常连接,分配资源,建立连接。
4.TCP RST攻击
原理:伪造TCP重置报文攻击,是一种假冒干扰TCP通信连接的技术方法。攻击者通过嗅探的方式来监视通信双方,在获得源、目的IP地址即端口,以及序号之后就可以结合IP地址欺骗技术伪装成通信一方,在确保端口号一致和序列号落入TCP窗口之内的情况下,发送TCP重置报文给通信另一方,就可以中断双方正常的网络通信,达到拒绝服务的目的。
-应用场景:中断TCP连接。
5.TCP会话劫持攻击
原理:攻击者通过实施中间人攻击,嗅探到建立连接的通信双方的序列号,通过假冒用户的IP地址向Telnet服务器发送数据包,宣称自己就是用户。而攻击者发送的数据包中的序列号必须满足SVR_ACK<=序列号<=SVR_ACK+SVR_WND,其中的SVR_END为Telnet服务器的接收窗口,Telnet服务器才会接收该数据包。
ACK风暴:由于中间人攻击的局限性,用户的数据包仍然有可能会发送Telnet服务器或是接收到数据包,Telnet服务器会发现用户的数据包中的ACK与期望的值不一致,此时服务器会发送期望的ACK值,企图重新建立起同步状态,用户接收到服务器的响应报文后,也会发现ACK值不正确,会返回一个ACK包,此时会陷入死循环。ACK风暴是的TCP会话劫持攻击很容易被管理员发现,因此攻击者往往会发送RST重置掉用户和服务器之间的连接。
中间人攻击技术选取:ICMP路由重定向攻击、ARP欺骗攻击,大多数路由设备都禁用ICMP路由重定向,所以目前比较普遍的方法是ARP欺骗技术来进行TCP会话劫持。
防范措施:采用静态IP-MAC绑定。避免中间人攻击。
2.实践过程
1.ARP缓存欺骗攻击
(1)分别查询记录靶机、攻击机的IP、MAC地址
虚拟机 | IP地址 | Mac地址 |
---|---|---|
Win2kServer_SP0_target | 192.168.200.124 | 00:0C:29:60:07:C8 |
kali | 192.168.200.4 | 00:0c:29:42:32:59 |
MetaSploitable | 192.168.200.123 | 00:0c:29:74:54:6f |
(2)使用靶机 Metasploitable2-Linux通过ping 192.168.200.124 ping Win2k,并通过arp -a命令获得Win2kServer_SP0_target未被攻击时的MAC地址,如下图所示:
(3)在Ubuntu中使用sudo netwox 80 -e 00:0c:29:62:34:76 -i 192.168.200.124命令对Win2kServer发起ARP欺骗攻击:
(4)此时再次使用MetasploitableUbuntu ping Win2kServer,并通过arp -a命令获得Win2kServer此时被攻击时的MAC地址,如下图所示:
(5)发现此时无法ping通,并且Win2kServer的MAC地址变成了我们在上述命令中设置好的的MAC地址,也就是ubuntu的MAC地址,说明ARP欺骗攻击成功,此时Win2kServer主机也检测到了错误:
2.ICMP重定向攻击
虚拟机 | IP地址 |
---|---|
ubuntu | 192.168.200.3 |
kali | 192.168.200.4 |
(1)在kali中查询路由表:
(2)然后在攻击机ubuntu上使用工具 netwox 伪造重定向数据包,命令为 netwox 86 -f “host 192.168.200.4” -g 192.168.200.3 -i 192.168.200.1 ,嗅探链路中所有来自主机192.168.200.3的TCP数据包,并且以网关192.168.200.1的名义向主机192.168.200.3发送ICMP重定向包如下图所示:
(3)在kali上ping baidu.com 发现重定向已生效,ping之前先在ubuntu上打开wireshark进行嗅探:
(4)嗅探到的数据包如下:
3.SYN Flood攻击
下表为此次攻击所使用的虚拟机信息:
虚拟机 | IP地址 |
---|---|
ubuntu | 192.168.200.3 |
kali | 192.168.200.4 |
Metasploitable | 192.168.200.5 |
这里更改了Meta的ip地址。
(1)kali上使用TELNET服务登录靶机Metasploitable,登录成功:
(2)在攻击机ubuntu上使用工具 netwox 对靶机Metasploitable发动SYN FLOOD攻击,命令为 netwox 76 -i 192.168.200.123 -p 23 意思是对IP地址为192.168.200.123主机的23号端口服务实施攻击,这里23号对应的服务是TELNET服务,如下图所示:
(3)ubuntu的wireshark抓包时候发现大量SYN数据包被发送往目标主机:
4.TCP RST攻击
(1)首先在kali主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功:
(2)之后,在攻击机ubuntu上使用工具netwox对靶机实施TCP RST攻击,命令为 netwox 78 -i 192.168.200.5:
(3)此时再次在kali主机上使用TELNET服务登录靶机,显示连接已被外部主机中断:
(4)使用ubuntu的wireshark在此过程中捕获的数据包如下,发现大量RST标志的TCP数据包:
5.TCP会话劫持攻击
(1)首先在Kali上使用命令 ettercap -G:
(2)为实现TCP劫持,扫描主机,
其中:
192.168.200.1[网关]192.168.200.120[网关]
192.168.200.3[靶机Ubuntu]192.168.200.5[靶机Metasploitable]:
(4)之后将扫描到的Ubuntu和Metasploitable分别作为Target1 和 Target2:
(5)打开MITM Menu->ARP poisoning,出现弹窗后点击OK:
(6)出现目标确认消息即成功 :
(7)点击Ettercap Menu->View->Connections查看连接:
(8)在Ubuntu上使用TELNET服务登录靶机Metasploitable,登录成功:
(9)此时在kali上查看所嗅探到的链接:
(10)鼠标双击查看该链接的数据:
3.遇到的问题及解决
- 问题1:在kali中netwox实现不了。
- 问题1解决方案:全在在ubuntu里实现 。
- 问题2:攻击3中,TELNET服务登录靶机Metasploitable,Meta靶机配不通。
- 问题2解决方案:Meta靶机的ip地址中途更改为192.168.200.5 。
4.实践总结
实践四模拟进行了ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood 攻击、SYN RST 攻击和TCP会话劫持攻击,我深刻理解了网络安全的重要性和复杂性。掌握攻击原理和防范措施,提高了我的网络安全意识和技能,能够更好地保护自己和他人的网络安全。同时,也意识到网络攻击手段不断演进,需要持续学习和更新知识,保持对网络安全威胁的警惕。