实验内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.1 ARP缓存欺骗攻击原理
ARP攻击或欺骗的原理是:
通过发送伪造虚假的ARP报文(广播或单播),来实现的攻击或欺骗!
如虚假报文的mac是伪造的不存在的,实现ARP攻击,结果为中断通信/断网!
如虚假报文的mac是攻击者自身的mac地址,实现ARP欺骗,结果可以监听、窃取、篡改、控制流量,但不中断通信!
1.2 ICMP重定向攻击简介
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。
1.3 SYN Flood攻击
SYN Flood(半开放攻击)是一种拒绝服务(DDoS)攻击,其目的是通过消耗所有可用的服务器资源使服务器不可用于合法流量。通过重复发送初始连接请求(SYN)数据包,攻击者能够压倒目标服务器机器上的所有可用端口,导致目标设备根本不响应合法流量。
1.4 TCP RST攻击
在TCP协议中,RST:(Reset the connection)用于复位因某种原因引起出现的错误连接,也用来拒绝非法数据和请求。如果接收到RST位时候,通常发生了某些错误。假设有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须重新开始建立连接。
1.5 TCP会话劫持攻击
会话劫持利用了TCP/IP工作原理来设计攻击。TCP使用端到端的连接,即TCP用(源IP,源TCP端口号,目的IP,目的TCP端号)来唯一标识每一条已经建立连接的TCP链路。另外,TCP在进行数据传输时,TCP报文首部的两个字段序号(seq)和确认序号(ackseq)非常重要。序号(seq)和确认序号(ackseq)是与所携带TCP数据净荷(payload)的多少有数值上的关系:序号字段(seq)指出了本报文中传送的数据在发送主机所要传送的整个数据流中的顺序号,而确认序号字段(ackseq)指出了发送本报文的主机希望接收的对方主机中下一个八位组的顺序号。因此,对于一台主机来说,其收发的两个相临TCP报文之间的序号和确认序号的关系为:它所要发出的报文中的seq值应等于它所刚收到的报文中的ackseq的值,而它所要发送报文中ackseq的值应为它所收到报文中seq的值加上该报文中所发送的TCP净荷的长度。
TCP会话劫持的攻击方式可以对基于TCP的任何应用发起攻击,如HTTP、FTP、Telnet等。对于攻击者来说,所必须要做的就是窥探到正在进行TCP通信的两台主机之间传送的报文,这样攻击者就可以得知该报文的源IP、源TCP端口号、目的IP、目的TCP端号,从而可以得知其中一台主机对将要收到的下一个TCP报文段中seq和ackseq值的要求。这样,在该合法主机收到另一台合法主机发送的TCP报文前,攻击者根据所截获的信息向该主机发出一个带有净荷的TCP报文,如果该主机先收到攻击报文,就可以把合法的TCP会话建立在攻击主机与被攻击主机之间。带有净荷的攻击报文能够使被攻击主机对下一个要收到的TCP报文中的确认序号(ackseq)的值的要求发生变化,从而使另一台合法的主机向被攻击主机发出的报文被被攻击主机拒绝。TCP会话劫持攻击方式的好处在于使攻击者避开了被攻击主机对访问者的身份验证和安全认证,从而使攻击者直接进入对被攻击主机的的访问状态,因此对系统安全构成的威胁比较严重。
实验过程
实践环境:实践一中配置的蜜网环境
开启蜜网环境中的网关、Kali Linux攻击机、win2000靶机、SEED ubuntu虚拟机和Linux靶机。
蜜网的账户名roo,密码honey 密网提权输入命令su -
Linux靶机的用户名和密码为:msfadmin/msfadmin
Ubuntu的管理员密码为dees
攻击机和靶机的IP地址如下:
ifconfig命令查看 Linux靶机的IP地址为:192.168.200.123
ipconfig命令查看win2000靶机的IP地址为:192.168.200.124
ifconfig命令查看Ubuntu 的 IP地址为:192.168.200.9
ifconfig命令查看Kali Linux攻击机的IP地址为:192.168.200.6
2.1 ARP缓存欺骗攻击
在Linux靶机上输入ping 192.168.200.124(win2000靶机IP地址),尝试是否与win2000靶机连通。
![](https://img-blog.csdnimg.cn/img_convert/d6c186e84ce9cd67f42fdb9b75f64a97.png)
ping通
在linux靶机中输入arp -a,查看ARP缓存的信息。
![](https://img-blog.csdnimg.cn/img_convert/bd8d65eb019312761bf71071a769b7c6.png)
可以看到win2000靶机的物理地址为 00:50:56:BE:97:F4
在蜜网网关中提权,然后输入ifconfig,获取网卡的信息。
![](https://img-blog.csdnimg.cn/img_convert/0e418f0affb1fe674c85b1e77992741d.png)
可以看到密网的物理地址为 00:0C:29:B6:74:A0
进入Kali Linux攻击机,在终端中输入sudo su提权,然后输入netwox 80 -e 00:0C:29:B6:74:A0(密网物理地址) 1 -i 192.168.200.124(win2000靶机IP地址)。(若没有安装netwox会提示安装)
![](https://img-blog.csdnimg.cn/img_convert/1af420db38a1a8e03820c2e37a816e88.png)
在Linux靶机中再次输入arp -a,运行,发现执行速度明显变慢,且win2000靶机的MAC地址变为00:0C:29:B6:74:A0(密网的物理地址)。
![](https://img-blog.csdnimg.cn/img_convert/faadb66d116cab85f332ef862ebee4cc.png)
停止运行Kali攻击机中的指令,在Linux靶机中再次ping通win2000靶机,然后输入arp -a,发现win2000靶机的MAC地址变回攻击前的地址了。
![](https://img-blog.csdnimg.cn/img_convert/0af992ebaa5c11f99317bef77657ba13.png)
![](https://img-blog.csdnimg.cn/img_convert/784c259e1f52484f625015a8cc349624.png)
2.2 ICMP重定向攻击
打开Ubuntu虚拟机,运行route -n
![](https://img-blog.csdnimg.cn/img_convert/fb9cd0c5afa5559fb319e6ea71a37729.png)
发现该虚拟机的网关为192.168.200.2
![](https://img-blog.csdnimg.cn/img_convert/5ffbe0bcbac4bf722a8cb2b90e70ae78.png)
然后输入ping baidu.com,发现能ping通,且对面的IP地址为110.242.68.66。
在Kali Linux攻击机中运行攻击指令netwox 86 -f "host 192.168.200.9(Ubuntu IP地址)" -g 192.168.200.6(Kali攻击机IP地址) -i 192.168.200.2(网关)。
![](https://img-blog.csdnimg.cn/img_convert/fa11640567a29decaa9d33029c6c32fe.png)
回到SEED虚拟机中,再次运行ping baidu.com命令,发现目标主机的IP地址被重定向到Kali Linux攻击机了。
![](https://img-blog.csdnimg.cn/img_convert/f61cef9a6266811bd227ac3d20f7038d.png)
2.3 SYN Flood攻击
打开Kali Linux攻击机中的Wireshark,选择eth0网卡。
在SEED主机的终端中运行命令telnet 192.168.200.123,以命令行的形式访问Linux靶机。
![](https://img-blog.csdnimg.cn/img_convert/953ef4001fcc8d2273d5f65fcfaf4ee5.png)
![](https://img-blog.csdnimg.cn/img_convert/37a935c6d5d74e68ee8a7ba90975c1a2.png)
出现上图红线内容,说明Ubuntu主机能够正常访问Linux靶机。
并且能在wireshark中找到正常的TCP-SYN/ACK响应。
![](https://img-blog.csdnimg.cn/img_convert/b7960b1b656c8e553a4b1ea83f391571.png)
在Kali Linux虚拟机的终端中运行攻击命令netwox 76 -i 192.168.200.123(Linux靶机IP地址) -p 23,对Linux靶机进行SYN Flood攻击。运行几秒之后,按Ctrl+Z停止运行。可以在wireshark中看到许多目的地址为192.168.200.123的SYN数据包,且发送地址(source)为伪造的。
![](https://img-blog.csdnimg.cn/img_convert/35b701e745b664d89fd9bfa0804168b6.png)
2.4 TCP RST攻击
首先要保证,Ubuntu主机能够通过telnet的方式访问Linux靶机。(2.3已表明可以telnet访问)
在Kali Linux攻击机的终端中运行命令netwox 78 -i 192.168.200.123(Linux靶机IP地址),然后在Ubuntu主机中重新telnet,发现连通后,连接被立即中止了。
![](https://img-blog.csdnimg.cn/img_convert/aed84e2963181a4f2eef5df2d9621126.png)
2.5 TCP会话劫持攻击
在Kali Linux攻击机中运行Ettercap。单击右上角的对号,开始嗅探。
![](https://img-blog.csdnimg.cn/img_convert/b4b689990f8f52cbb6230c63dc11d053.png)
单击“...”-“hosts”-“Scan for hosts”,开始扫描网络中的主机。
![](https://img-blog.csdnimg.cn/img_convert/108aa74ae897a0f1845dcda97c103290.png)
单击“...”-“Hosts”-“Hosts list”,查看扫描出来的主机。
![](https://img-blog.csdnimg.cn/img_convert/0bd3f6494ab6605c54e0f630558ff9b8.png)
选择Ubuntu主机(192.168.200.9),将其添加到Target1中;选择Linux靶机(192.168.200.123),将其添加到Target2中。
![](https://img-blog.csdnimg.cn/img_convert/4d00b37c41f01924a0bc9a2f9601390e.png)
![](https://img-blog.csdnimg.cn/img_convert/a7d0e66174865f7ce747a5819ea537fb.png)
单击“...”-“Targets”-“Current targets”,查看当前的目标。
![](https://img-blog.csdnimg.cn/img_convert/4b4c40665a0afd761d5c52e9e1b630ca.png)
运行ARP Poisoning。
![](https://img-blog.csdnimg.cn/img_convert/1965f1ae9ebd3b92b80b6b63c29544ff.png)
![](https://img-blog.csdnimg.cn/img_convert/8b801d44a146c1683c2e13c04ea7a7df.png)
在SEED主机中telnet一下Linux靶机,输入账号密码进行登录。
![](https://img-blog.csdnimg.cn/img_convert/44c13aecc2bcb599b625635cea529b4b.png)
回到Kali Linux虚拟机,点击“...”-“View”-“Connections”,双击主机为Ubuntu主机(192.168.200.9)和Linux靶机(192.168.200.123)的那一项。
![](https://img-blog.csdnimg.cn/img_convert/f18c8a33011d533741eb832bc4cbf4ed.png)
![](https://img-blog.csdnimg.cn/img_convert/a6f36018990f34a324f23399dabe4212.png)
能在Connection Data中看到两个主机之间交互的数据,包括登录Linux靶机时输入的账号和密码。
3.学习感想和体会
TCP/IP协议栈重点协议的攻击方法,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击,这些攻击技术是现实中常见的网络安全问题,了解这些攻击技术对于保护网络安全非常重要。通过学习这些攻击技术,我们可以更好地了解网络攻击者的行为模式和目的,从而更好地防范和应对网络攻击。
同时这些攻击技术的实验操作需要一定的技术知识和实践经验。网络安全是一项永恒的课题,需要不断地学习和探索。通过实验,我们可以更好地了解网络攻击,能够深入了解网络安全的重要性,并且了解如何防御网络攻击。同时,这些实验也帮助我们提高了网络安全的技能和实战经验。
参考资料