20231911马星 2022-2023-2 《网络攻防实践》实验四

1.实践内容

在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.1 ARP欺骗攻击:
(1)ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》
(2)原理:一方面,ARP协议在进行IP地址到MAC地址映射査询时,采用广播请求包方式在局域网段中询问映射关系,但没有对响应结果进行真实性验证;另一方,ARP协议为提高效率,设计ARP缓存机制,以及会将主动的ARP应答视作有效信息进行接受,这使得ARP缓存出常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。
1.2 ICMP路由重定向攻击
(1)ICMP路由重定向攻击是指攻击者发送伪造的路由重定向消息到目标主机,试图引导网络流量通过攻击者控制的路由器,从而实现中间人攻击。
​(2)原理:攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP 重定向报文,给被攻击节点指定的新路由器IP地址,并以这个新路由器IP地址为攻击节点。被攻击节点会对ICMP报文进行限制条件监测,检查通过后,就会通过这个新路由器向外网进行通信,攻击者就可以进行嗅探或者监听了。
1.3 TCP RST攻击
(1)TCP RST攻击也被称为伪造TCP重置报文攻击(spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法。
​(2)原理:TCP重置报文将直接关闭掉一个TCP会话连接,通信方A与B建立TCP协议进行数据传输时,攻击者可以利用TCP重置报文切断A与B之间的会话,当然这里攻击者要借用IP源地址欺骗伪装成A或者B才可以。
1.4 TCP SYN Flood拒绝服务攻击
(1)它试图使目标系统无法处理新的TCP连接请求,从而使合法用户无法建立连接。
(2)TCPSYN Flood原理利用TCP三次握手存在连接队列平静的缺陷,主机A想与服务器建立会话必须经过三次握手协议,攻击者B不断的向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为主机A提供服务。
1.5 TCP会话劫持攻击
TCP会话劫持是劫持通信双方已建立的TCP会话连接,再假冒其中一方的身份,与另一方进行进一步通信,这样攻击方就可以躲避一些身份认证。
我们可以把会话劫持攻击分为两种类型:
①中间人攻击(Man In The Middle,简称MITM);
②注射式攻击(Injection);
并且,还可以把会话劫持攻击分为两种形式:
①被动劫持,
②主动劫持;
被动劫持实际上就是在后台监视双方会话的数据流,从中获得敏感数据;而主动劫持则是将会话当中的某一台主机“踢”下线,然后由攻击者取代并接管会话,这种攻击方法危害非常大,攻击者可以做很多事情,比如“cat etc/master.passwd”(FreeBSD下的Shadow文件)。

2.实践过程

本次实践选取kali虚拟机、Metasploitable2-Linux虚拟机和win2k虚拟机。实践第一部分是使用 ifconfig命令分别查看三台虚拟机的IP和MAC地址
在Kali虚拟机输入命令:ifconfig查看虚拟机IP地址和MAC地址:
IP:192.168.43.246,MAC:00:0c:29:ea:6f:0a
在这里插入图片描述在win2k虚拟机输入命令ipcconfig/all看虚拟机IP地址和MAC地址:
IP:192.168.200.124,MAC:00:0c:29:48:77:d3
在这里插入图片描述
在Metasploitable2-Linux虚拟机输入命令ifcconfig看虚拟机IP地址和MAC地址:
IP:192.168.200.123,MAC:00:0c:29:0b:4d:6b
在这里插入图片描述2.1 ARP缓存欺骗攻击
1.在Metasploitable2-Linux虚拟机上ping win2K靶机的IP地址,查看其是否与win2k靶机连通:
可以看到两个虚拟机之间是联通的。
在这里插入图片描述在Metasploitable2-Linux虚拟机中输入arp -a,查看ARP缓存的信息:
在这里插入图片描述2.在Kali虚拟机中安装netwox,在命令行中输入:apt install netwox:
在这里插入图片描述然后在Kali上执行指令 netwox 80 -e 00:0c:29:0b:4d:6b(Metasploitable2-Linux的MAC地址) -i 192.168.200.124( win2k的IP地址):
在这里插入图片描述中间内容是安装netwox。
然后再在Metasploitable2-Linux虚拟机中再次输入arp -a命令,发现win2k靶机的MAC发生改变,停止运行Kali攻击机中的netwox 80 -e00:0c:29:0b:4d:6b -i 192.168.200.124指令,再次查看arp缓存会发现win2k靶机的MAC地址变回攻击前的地址了
在这里插入图片描述2.2 ICMP重定向攻击
1.在Ubuntu虚拟机上输入指令ifconfig查看虚拟机的IP地址:
Ubuntu虚拟机的IP地址为192.168.200.4。
在这里插入图片描述运行route -n命令:
可以看到虚拟机的网关为192.168.200.1。
在这里插入图片描述然后输入指令ping baidu.com:
发现能ping通,且对面的IP地址为110.242.68.66:
在这里插入图片描述3.在Kali虚拟机中运行攻击指令netwox 86 -f “host 192.168.200.4(Ubuntu的IP地址)” -g 192.168.43.246(Kali攻击机IP地址) -i 192.168.200.1(Ubuntu的网关):
在这里插入图片描述回到Ubuntu虚拟机中,再次运行ping baidu.com命令,发现目标主机的IP地址被重定向到Kali虚拟机的IP地址。
2.3 SYN Flood攻击
1.打开Kali攻击机中的Wireshark,并选择eth0网卡:
在这里插入图片描述2.在SEEDUbantu主机的终端中运行命令telnet 192.168.200.123(Metasploitable2-Linux的IP地址),以命令行的形式访问Linux靶机:
可以看到,Ubuntu主机能够正常访问Linux靶机。
在这里插入图片描述在wireshark中输入ip.addr == 192.168.200.123 ,可以看到有正常的TCP-SYN/ACK响应
在这里插入图片描述4.在Kali虚拟机中输入指令:netwox 76 -i 192.168.200.123(Metasploitable2-Linux靶机的IP地址) -p 23,对Metasploitable2-Linux靶机进行SYN Flood攻击:
在这里插入图片描述

可以在wireshark中看到许多目的地址为192.168.200.123(Metasploitable2-Linux靶机的IP地址)的SYN数据包,且发送地址(source)为伪造的:
在这里插入图片描述2.4 TCP RST攻击

在TCP RST攻击中同样选择利用攻击机Ubuntu向靶机Metasploitable2-Linux发起telnet服务访问,用Kali攻击机对靶机发起TCP RST攻击。
1.在攻击机Ubuntu中输入:telnet 192.168.200.123(Metasploitable2-Linux靶机的IP地址):
在这里插入图片描述2.在Kali虚拟机上利用netwox对Metasploitable2-Linux靶机进行TCP RST攻击 ,输入指令:netwox 78 -i 192.168.200.123:
在这里插入图片描述3.回到Ubuntu的界面,可以发现连接已经被强制关闭了
4.打开Kali查看Wireshark中的包,可以看到攻击机向靶机发送了RST包:
在这里插入图片描述2.5 TCP会话劫持攻击

1.在kali上输入ettercap -G打开Ettercap,再点击右上角的对钩进入操作界面,点击放大镜开始扫描网络中的主机:
在这里插入图片描述选择Ubuntu主机(192.168.43.120),将其添加到Target1中;选择Metasploitable2-Linux靶机(192.168.43.134),将其添加到Target2中:
在这里插入图片描述点击右上角的小地球打开MITM,选择ARP poisoning,点击OK,开始攻击,下方显示框里也表明此时的受害机是MetasploitableUbuntu与SEEDUbuntu
在这里插入图片描述2.在SEEDUbuntu上通过命令telnet 192.168.200.123服务登录靶机MetasploitableUbuntu,登录成功,此登录过程已被嗅探攻击
在这里插入图片描述3.回到Kali虚拟机,点击“View”-“Connections”,可以查看到该连接

在这里插入图片描述4.在ettercap中选择View->Connections查看连接情况,打开后能够看到SEEDUbuntu登录MetasploitableUbuntu使用的用户名和密码,说明攻击成功
在这里插入图片描述

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

  • 问题:运行QT5.7程序显示没有权限问题(Operation net permitted)
  • 问题解决方案:进入root模式

4.学习感悟、思考等)

通过这次学了解到常见的网络攻击形式,了解Tcp协议栈的缺陷,进行以上实践,我深刻地理解到了它们的攻击过程,明白了网络安全的重要性在实践中提高动手能力。

参考资料

《网络攻防技术与实践》——诸葛建伟

上一篇:155 Linux C++ 通讯架构实战10,工具telent 和 wireshark的使用


下一篇:浅谈WPF之路由事件-路由策略