1.实践内容
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1.ARP缓存欺骗攻击
原理:攻击者在有线以太网或是无线网络上发送伪造的ARP消息,对特定IP所对应MAC地址进行欺骗,使局域网内主机记录的MAC-IP地址映射表中被攻击者的条目的MAC地址修改为攻击者指定的MAC地址,这样局域网内发送给被攻击者的数据包就会发送给修改后的MAC地址主机。
2.ICMP重定向攻击
原理:攻击者伪装成路由器(IP地址欺骗:冒充为网关)发送虚假的ICMP重定向路由路径控制报文,使得受害主机选择攻击者指定的路径,从而实现嗅探或假冒攻击。这里存在一个现象:再转发的过程中,攻击节点协议栈可能会向被攻击者发送ICMP重定向报文,说明直接发送给真实的网关比发送给攻击机少一跳,这个报文将会是欺骗路径更改至原路径。
3.SYN Flood攻击
原理:又称为SYN洪泛攻击模式拒绝服务攻击的一种,利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。
4.TCP RST攻击
原理:伪造TCP重置报文攻击,是一种假冒干扰TCP通信连接的技术方法。攻击者通过嗅探的方式来监视通信双方,在获得源、目的IP地址即端口,以及序号之后就可以结合IP地址欺骗技术伪装成通信一方,在确保端口号一致和序列号落入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会话劫持。
2.实践过程
在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
1、ARP缓存欺骗攻击
选择Kali作为攻击机,其他两台机器作为正常通信的机器。三个虚拟机的IP地址分别如下:linux靶机192.168.200.123、win2k192.168.200.124、kali 192.168.200.4
使用靶机 Metasploitable2-Linux通过ping 192.168.200.124 ping Win2k,并通过arp -a命令获得Win2kServer_SP0_target未被攻击时的MAC地址,如下图所示:
使用sudo apt-get install netwox 在kali上安装netwox命令
打开Kali,利用netwox 80 -e (kali的物理地址) -i (win2k的ip地址)命令对其进行攻击打开arp地址,发现与上次查看发生了改变,欺骗成功。
发现此时无法ping通,并且Win2kServer的MAC地址变成了我们在上述命令中设置好的的MAC地址,也就是ubuntu的MAC地址,说明ARP欺骗攻击成功,此时Win2kServer主机也检测到了错误:
2.ICMP重定向攻击
在kali中查询路由表:
在攻击机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重定向包,在kali上ping baidu.com 发现重定向已生效,ping之前先在ubuntu上打开wireshark进行嗅探
3.SYN Flood攻击
kali上使用TELNET服务登录靶机Metasploitable,登录成功
在攻击机ubuntu上使用工具 netwox 对靶机Metasploitable发动SYN FLOOD攻击,命令为 netwox 76 -i 192.168.200.123 -p 23 意思是对IP地址为192.168.200.123主机的23号端口服务实施攻击,这里23号对应的服务是TELNET服务,如下图所示:
ubuntu的wireshark抓包时候发现大量SYN数据包被发送往目标主机:
4.TCP RST攻击
在kali主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功
在攻击机ubuntu上使用工具netwox对靶机实施TCP RST攻击,命令为 netwox 78 -i 192.168.200.5
此时再次在kali主机上使用TELNET服务登录靶机,显示连接已被外部主机中断
5.TCP会话劫持攻击
点击右上角对勾,在host选项卡里选择scan for host开始扫描,选择host list查看扫描结果
选择SEED主机,将其添加到Target1中;选择Linux靶机,将其添加到Target2中
Poisoning
在SEED主机中telnetLinux靶机,输入账号密码进行登录
Kali Linux虚拟机,点击View,Connections
查看telnet登录后建立的连接,可以查询到登录使用的用户名和密码
3.学习中遇到的问题及解决
问题1:无法使用netwox指令
解决:使用命令sudo apt-get install netwox安装netwox
问题2:进行实验1时,总是欺骗不成功
解决:改用了桥接模式
问题3:在进行第五个实验的时候,kali总是扫不到Linux靶机
解决:将Linux靶机放到和kali虚拟机一个网段内
4.学习感悟、思考
关于一些网络配置的问题还不是很清楚需要进行进一步的学习。