20211904 2021-2022-2 《网络攻防实践》第四次作业
1.1 ARP缓存欺骗攻击
攻击原理:
首先ARP是(Address Resolution Protocol)即地址解析协议的简写,ARP协议是根据IP地址获取物理地址的一个TCP/IP协议。
在局域网内主机之间的通信是通过物理地址(MAC地址)来完成的,主机在发送信息时会将包含所请求IP地址的ARP请求广播到局域网内所有的主机,接受返回的消息,根据返回的消息确定物理地址,并且在收到物理地址后会将此IP与对应的物理地址存入本机的ARP缓存中保留一定的时间,下次请求时直接查询ARP缓存,不用再进行广播请求,这也就是攻击的核心原理。
通过欺骗局域网内靶机网关的物理地址,是靶机认为自己的网关的物理地址是攻击者提供的物理地址,并且将此错误的映射关系存入自身的ARP缓存中,导致无法正常上网。
当然攻击者也可以伪造自己的IP地址是之与靶机的IP地址相同,此时靶机一旦发送ARP广播就会发现IP冲突异常,并且攻击者的MAC地址也是可以伪造的,在广播的局域网内靶机的IP一直冲突也会导致靶机无法正常上网。
[图片来源网络]
1.2 ICMP重定向攻击
攻击原理:
首先ICMP协议简介ICMP是(Internet Control Message Protocol)即Internet控制消息协议的缩写。ICMP协议是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络是否通畅、主机是否可达、路由是否可用等网络本身的消息。这些控制消息并不传输用户数据,但是对于用户数据的传递起着重要的作用。
ICMP重定向信息是路由器向主机提供实时的路由信息,告知当前网络的基本路由情况,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。攻击机可以向靶机发送重定向信息,使靶机根据自己发送的重定向信息来修改路由表,此时攻击机可以将靶机的网关重定向为自身的IP地址,这时就可以作为靶机的网关进行进一步的中间人攻击等攻击方式,但是这样也会暴露自身的IP地址。
1.3 SYN Flood攻击
攻击原理:
首先SYN Flood攻击是一种基于TCP/IP协议的拒绝服务器攻击,这种攻击会造成服务器TCP连接数达到最大上限,使服务器不能为用户建立正常的TCP连接,达到攻击的目的。
TCP三次握手:
-第一次握手。发送发主机将SYN标志位置1,随机产生序列号seq=x后发送该数据包给接收方主机,此时发送方主机进入SYN_SENT状态,等待接收方主机接受后相应确认报文。
-第二次握手。接收方主机接收到数据包后根据标志位SYN=1确认发送方主机请求建立连接,向发送发主机发送标志位SYN=1,ACK=1,ack=x+1随机序列号seq=y的确认数据包,并进入SYN_RCVD状态。
-第三次握手。发送方主机收到确认数据包后,检查ack是否为x+1,ACK是否为1,若正确则向接收方主机发送ACK=1,seq=x+1,ack=y+1的数据包,接收方收到之后检查ACK是否为1,ack是否为y+1,若都正确则成功建立连接,双方同时进入ESTABLISHED的状态,已经完成三次握手,可以开始传输数据。
若攻击机向靶机发送SYN包请求建立TCP连接,靶机收到SYN包之后会向攻击机发送确认数据包,并且进入SYN_RCVD状态,但是攻击机使用的IP地址是伪造的,那么往往无法得到正确回应报文,也就无法完成第二次握手,导致靶机一直处在SYN_RCVD状态,并且开放对应的端口,等待回复直到timeout。如果此时攻击机一直向靶机发送SYN不断进行TCP请求,那么靶机就会因为僵持在SYN_RCVD状态并且开放对应端口,一旦攻击机发送的SYN过多消耗大量端口以及占用SYN_RCVD状态,靶机就会失去响应,无法正常工作。
[图片来源网络]
1.4 TCP RST攻击
攻击原理:
首先RST是TCP报头中的一个标志位,这个标志位置1则说明要重置TCP连接。当发送方发送RST包时,直接会关闭与接收方的连接,并且丢弃缓冲区中等待发送的包,并且接收方在收到RST包时也不需要发送ACK包来进行确认。
正常情况下,有以下三种情况会出现RST包:
-请求连接一个不存在的端口。
-取消连接。
-接收到了一个根本不存在的的连接上的分节。
靶机与网关之间建立了正常的TCP连接,攻击机伪造一个RST包发给靶机的网关使靶机网关与靶机之间的连接异常断开,丢弃将要给靶机发送的处在缓冲区所有数据,造成靶机无法正常上网。
[图片来源网络]
TCP报头
标志位 | 含义 |
---|---|
URG | 紧急指针有效 |
ACK | 确认序列号有效 |
PSH | 接收方应尽快将报文交给应用层 |
RST | 重置连接 |
SYN | 发起新连接 |
FIN | 释放连接 |
1.5 TCP会话劫持攻击
攻击原理:
首先会话(Session)的意思是两台主机之间的一次通讯。会话劫持是结合嗅探以及欺骗技术等在内的综合攻击手段。攻击者可以在一次正常会话中作为第三方参与其中,可以在正常的数据包中插入恶意数据,也可以监听会话中主机之间的通信,甚至可以替代其中一方与另一方进行通信。
-中间人攻击
靶机与网关建立了正常的TCP连接,攻击机作为第三方同步监听两者会话,此时攻击机伪装成靶机与靶机网关通信,让靶机网关相信此时的连接还是正常的,最后攻击机给靶机发送RST包使靶机丢失与靶机网关之间的连接,使靶机无法上网。
2.实验过程
2.1 ARP缓存欺骗攻击
虚拟机信息
虚拟机名称 | IP地址 | 物理地址 |
---|---|---|
Win2kServer | 192.168.25.130 | 00:0C:29:97:24:FB |
MetasploitableUbuntu | 192.168.25.131 | 00:0C:29:D3:EB:72 |
Kali | 192.168.25.132 | 00:0C:29:4F:74:AD |
实验目的
使用Kali作为攻击机使用arp欺骗破坏MetasploitableUbuntu和Win2kServer正常通信
-
首先使攻击机和靶机处于同一个局域网网段,统一设置仅主机模式
-
尝试使用靶机 MetasploitableUbuntu ping Win2kServer
此时通过 arp -a 指令查看arp缓存表,此时MetasploitableUbuntu的物理地址是正确的
-
在攻击机Kali上使用工具 netwox 伪造 Win2kServer的MAC地址,指令为 netwox 80 -e 伪造的MAC地址 -i 对应的IP地址
-
此时靶机MetasploitableUbuntu无法ping通靶机Win2kServer了,通过指令arp-a发现Win2kServer的MAC地址变成我们伪造的MAC地址了
-
此时的Win2kServer显示IP地址冲突,因为此时链路中出现了IP地址相同物理地址不同的主机
-
停止使用工具进行ARP欺骗后,靶机MetasploitableUbuntu又可以ping通靶机Win2kServer了
2.2 ICMP重定向攻击
虚拟机信息
虚拟机名称 | IP地址 |
---|---|
Kali | 192.168.25.4 |
SEEDUbuntu | 192.168.25.5 |
实验目的
使用Kali作为攻击机伪造ICMP重定向数据包发送给SEEDUbuntu,使其默认路由更改为Kali的IP地址,破坏其与网关的正常通信
-
使用SEEDUbuntu ping baidu.com之后,使用route -n查看ping包的数据流向,发现网关是192.168.25.1
-
在攻击机Kali上使用工具 netwox 伪造重定向数据包,指令为 netwox 86 -f "host 192.168.25.5" -g 192.168.25.5 -i 192.168.25.1 意思是嗅探链路中所有来自主机192.168.25.5的TCP数据包,并且以网关192.168.25.1的名义向主机192.168.25.5发送ICMP重定向包,重定向以192.168.25.4作为网关。
-
此时再次使用SEEDUbuntu ping baidu.com 发现重定向数据
-
在 Kali 上使用Wireshark监听eth0 抓取了 Kali 发送的ICMP重定向数据包
-
停止攻击后,再次使用SEEDUbuntu ping baidu.com ,恢复正常
2.3 SYN Flood攻击
虚拟机信息
虚拟机名称 | IP地址 |
---|---|
Kali | 192.168.25.4 |
SEEDUbuntu | 192.168.25.5 |
MetasploitableUbuntu | 192.168.25.131 |
实验目的
使用Kali作为攻击机对靶机MetasploitableUbuntu实施SYN泛洪攻击,使其 TELNET 服务崩溃,并用SEEDUbuntu查看靶机MetasploitableUbuntu 的 TELNET 服务情况
-
在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功
-
在攻击机Kali上使用工具 netwox 对靶机MetasploitableUbuntu发动SYN泛洪攻击,指令为 netwox 76 -i 192.168.25.131 -p 23 意思是对IP地址为192.168.25.131主机的23号端口服务实施攻击,这里23号对应的服务是TELNET服务
-
再次在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu,发现一直无法连接
-
在Kali上使用Wireshark监听可以发现此时Kali向靶机发送了大量伪造源地址的SYN请求数据包,针对23号服务端口
-
停止攻击后,再次在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功
2.4 TCP RST攻击
虚拟机信息
虚拟机名称 | IP地址 |
---|---|
Kali | 192.168.25.4 |
SEEDUbuntu | 192.168.25.5 |
MetasploitableUbuntu | 192.168.25.131 |
实验目的
使用Kali作为攻击机破坏在SEEDUbuntu上使用TELNET服务登录MetasploitableUbuntu的操作
-
在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功
-
在攻击机Kali上使用工具 netwox 对靶机MetasploitableUbuntu实施TCP RST攻击,指令为 netwox 78 -i 192.168.25.131
-
再次在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu ,直接显示连接已被外部主机中断
-
在Kali上使用Wireshark监听也可以发现此时Kali向靶机发送了RST数据包
-
停止攻击后,再次在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功
2.5 TCP会话劫持攻击
虚拟机信息
虚拟机名称 | IP地址 |
---|---|
Kali | 192.168.25.4 |
SEEDUbuntu | 192.168.25.5 |
MetasploitableUbuntu | 192.168.25.25 |
实验目的
使用Kali作为攻击机劫持SEEDUbuntu与靶机MetasploitableUbuntu的会话,查看截获到的数据
-
在攻击机Kali上使用命令 ettercap -G 打开工具
-
点击右上角的设置并选择hosts,选择扫描主机,扫描到SEEDUbuntu和MetasploitableUbuntu后分别作为Target1 和 Target2 接下来选择劫持方式为ARP欺骗劫持,最后点击左上角的图标开启嗅探
-
在SEEDUbuntu主机上使用TELNET服务登录靶机MetasploitableUbuntu,登录成功
-
在Kali上查看TELNET登录后建立的连接,可以查询到登录使用的用户名和密码
3.学习中遇到的问题及解决
-
问题1:ettercap劫持工具无法打开,一直卡在进入的界面
-
问题1解决方案:重启后还是不行,后面进入root模式下又可以了,再次测试发现是没有分配到IP地址,所以进不去。设置正确的IP地址后就可以了。
经过这次实验,我学会了几种TCP/IP网络协议攻击方式,这不仅加深了我对于网络攻防的兴趣,而且让我深入实践了计算机网络课程中所学的知识,以后我会从细节的角度出发,去了解这些嗅探工具的原理并从底层去了解攻击的实现。