20242924 2024-2025-2 《网络攻防实践》实践4报告
1.实践内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.1 ARP缓存欺骗攻击
ARP(Address Resolution Protocol):即地址解析协议,是一种将IP地址转化成物理地址的协议。不管网络层使用什么协议,在网络链路上传送数据帧时,最终还是必须使用硬件地址的。
ARP欺骗原理则是通过发送欺骗性的ARP数据包致使接收者收到数据包后更新其ARP缓存表,从而建立错误的IP地址与MAC地址的对应关系,使得源主机发送数据时不能发往正确的接收者。
1.2 ICMP重定向攻击
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。
1.3 SYN Flood攻击
SYN Flood攻击利用的是TCP的三次握手机制,攻击端利用伪造的IP地址向被攻击端发出请求,而被攻击端发出的响应报文将永远发送不到目的地,那么被攻击端在等待关闭这个连接的过程中消耗了资源,如果有成千上万的这种连接,主机资源将被耗尽,从而达到攻击的目的
1.4 SYN Rst攻击
RST攻击也称伪造TCP重置报文攻击,它通过更改TCP协议头的标志位中的“reset”比特位(0变1),来关闭掉一个TCP会话连接。
1.5 TCP会话劫持攻击
TCP会话劫持是劫持通信双方已建立的TCP会话连接,再假冒其中一方的身份,与另一方进行进一步通信,这样攻击方就可以躲避一些身份认证。
2.实践过程
2.1 ARP缓存欺骗攻击
ARP缓存欺骗攻击实验环境
首先这里需要三台机器,选择kali作为攻击机,其他两台机器作为正常通信的机器(靶机1:Linux MetaSploitable,靶机2:seed) 。
通过查询,各攻击机和靶机的ip地址和mac地址如表格所示:
虚拟机名称 | IP 地址 | MAC 地址 |
---|---|---|
Kali | 192.168.200.2 | 80:0c:59:00:04:08 |
MetasploitableUbuntu | 192.168.200.125 | 00:10:c2:91:25:94:a9 |
SEED | 192.168.200.17 | 00:0c:29:32:55:27 |
使用靶机seed ping MetasploitableUbuntu
通过arp -a命令获得MetasploitableUbuntu未被攻击时的MAC地址,如下图所示
在kali机上执行下面的命令,执行后会在局域网内广播这条命令
sudo netwox 80 -e 00:0c:29:32:55:27 -i 192.168.200.17
再次执行arp -a
,发现mac地址发生改变,欺骗成功。
2.2 ICMP重定向攻击
选择kali和seedubuntu,ip地址分别为192.168.200.2和192.168.200.17
虚拟机名称 | IP 地址 | MAC 地址 |
---|---|---|
Kali | 192.168.200.2 | 80:0c:59:00:04:08 |
SEED | 192.168.200.17 | 00:0c:29:32:55:27 |
在seed中使用route -n
查看网关地址,为192.168.200.1
在seed中ping百度
在攻击机Kali上使用工具 netwox 伪造重定向数据包,命令为 netwox 86 -f "host 192.168.200.17" -g 192.168.200.2 -i 192.168.200.1
,嗅探链路中所有来自主机192.168.200.17的TCP数据包,并且以网关192.168.200.1的名义向主机192.168.200.17发送ICMP重定向包,重定向以kali的IP地址192.168.200.2作为网关,如下图所示
嗅探到的数据包如下:
在SEED虚拟机上再次ping baidu.com,发现已经重定向到192.168.200.2上,则ICMP重定向攻击成功,路由的下一跳地址被修改为了192.168.200.2。
2.3 SYN Flood攻击
以下为此次攻击所使用的虚拟机IP信息:
虚拟机名称 | IP 地址 | MAC 地址 |
---|---|---|
Kali | 192.168.200.2 | 80:0c:59:00:04:08 |
MetasploitableUbuntu | 192.168.200.125 | 00:10:c2:91:25:94:a9 |
SEED | 192.168.200.17 | 00:0c:29:32:55:27 |
通过netwox的76号工具对192.168.200.17的23号端口进行SYN Flood攻击
netwox 76 -i 192.168.200.17 -p 23
打开kali的wireshark进行抓包,Kali正在向seed(192.168.200.17)的23号端口发送SYN请求。实现SYN Flood攻击
2.4 SYN Rst攻击
以下为此次攻击所使用的虚拟机IP信息:
虚拟机名称 | IP 地址 | MAC 地址 |
---|---|---|
Kali | 192.168.200.2 | 80:0c:59:00:04:08 |
MetasploitableUbuntu | 192.168.200.18 ((更换网络后,ip地址发生变化) | 00:10:c2:91:25:94:1a9 |
SEED | 192.168.200.17 | 00:0c:29:32:55:27 |
首先在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功:
telnet 192.168.200.125
在Kali上利用netwox的78号工具对靶机进行TCP RST攻击
netwox 78 -i 192.168.134.125
此时再次在SEEDUbuntu主机上使用TELNET服务登录靶机,显示连接已被外部主机中断:
使用wireshark在此过程中捕获的数据包如下,可以发现RST数据包,成功实现SYN Rst攻击
2.5 TCP会话劫持攻击
以下为此次攻击所使用的虚拟机IP信息:
kali:192.168.200.2
MetasploitableUbuntu 192.168.200.18
seedUbuntu 192.168.200.17
首先在Kali上使用命令 ettercap -G
,通过右上角勾号开始嗅探,选择hosts,并且扫描主机。
将扫描到的SEEDUbuntu和MetasploitableUbuntu分别作为Target1 和 Target2
接下来选择劫持方式为ARP欺骗劫持,通过ettercap menu->view->connections查看连接
选择ok
在SEEDUbuntu上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功:
此时在kali上查看所嗅探到的链接:
鼠标双击查看该链接的数据,从中可以看到该会话所包含的内容,用户名及密码
3.学习中遇到的问题及解决
- 问题1:虚拟机之间无法ping通
问题1 解决方案:修改网络连接模式为VMnet8,把Meta的ip地址从192.168.200.130改为192.168.200.125 - 问题2:在进行SYN Rst攻击时,telnet服务总是失败
问题2 解决方案:一开始我以为是没有成功安装telnet服务,后来经过检查发现更换网络后meta的ip地址发生了改变,修改ip地址执行命令后成功实现了telnet服务。
4.实践总结
通过本次实验,我对ARP欺骗攻击、ICMP重定向攻击、SYN FLOOD攻击和TCP RST攻击以及TCP会话劫持攻击等网络攻击方式的理论和实践都有了一个更深入的了解与掌握,丰富了网络攻防的技能。但同时我在过程中虽然对理论知识有了一个大概的掌握,但是真正动手实践后还是发现了很多潜在的问题,这些问题通过询问同学帮助以及网络搜索得到了解决,对于网络攻防时间我还需更进一步的努力。
参考资料
- 《网络攻防技术与实践》课本