20199113 2019-2020-2 《网络攻防实践》 第五周作业
1、实践内容
1.1 TCP/IP网络协议攻击
网络安全属性
网络安全属性主要包括:机密性、完整性、可用性、真实性和不可抵赖性
名称 | 内容 |
机密性 | 指网络中信息不被非授权实体(包括用户和进程等)获取与使用。 |
完整性 | 网络信息的真实可信性,即网络信息不会被偶然或者蓄意地进行删除、修改、伪造、插入等破坏,保证授权用户得到的信息是真实的。 |
可用性 | 得到授权的实体在需要时可以使用所需要的网络资源和服务。 |
真实性 | 确保通信双方是它所声称的真实实体,而非假冒实体。 |
不可抵赖性 | 通信的双方在通信过程中,对于自己所发送或接收的消息不可抵赖 |
网络攻击模式
在网络通信中,攻击者可以采取如下四种基本的攻击模式,包括截获、中断、篡改与伪造。
截获:是一种被动攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反,主要的攻击技术为嗅探 (Sniffing) 与监听 (Eavesdropping);
中断:是一种主动攻击模式,其目的是致使正常的网络通信和会话无法继续,是对可用性的违反,具体的攻击技术为拒绝服务(Denial of Service,DoS);
篡改:是一种主动攻击模式,其目的是对网络通信过程的信息内容进行修改,使得通信一方或双方接收到篡改后的虚假消息,是对完整性的违反,具体的攻击技术为数据包篡改;
伪造:是一种主动攻击模式,其目的是假冒网络通信方的身份,欺骗通信双方达到恶意,是对真实性的违反,具体的攻击技术为欺骗(Spoofing);
TCP/IP网络协议栈安全缺陷与攻击技术
TCP/IP网络协议栈在设计时采用了分层模型,分为了网络接口层、互联层、传输层与应用层,每一层负责不同的功能,各自具有相应的网络协议,每个层次上都有一定的安全问题,如下图所示:
1.2 网络层协议攻击
IP源地址欺骗
IP源地址欺骗:是指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。
原理:IP协议在设计时只是用数据包中的目标地址进行路由转发,从而不对原地址进行真实性验证。IP 数据包的源地址会被正确地设置为数据包所发出的IP地址,但是怀有恶意目的的攻击者会修改IP协议包头,使其包含一个不同的虚假IP地址,使其看起来像是从另外一个地址发出的,这样就达到了欺骗目标和隐藏发送源的目的。
步骤:
1. 使被信任主机的网络暂时瘫痪,以免对攻击造成干扰。
2. 连接到目标机的某个端口来猜测ISN基值和增加规律。
3. 把源地址伪装成被信任主机,发送带有SYN标志的数据段请求连接。
4. 等待目标机发送SYN+ACK包给已经瘫痪的主机。
5. 再次伪装成被信任主机向目标主机发送ACK,此时发送的数据段带有预测的目的主机的ISN+1。
6. 连接建立,发送命令请求
示意图:
IP源地址欺骗技术的应用场景:拒绝服务攻击,网络扫描
IP源地址欺骗技术的防范措施:
使用随机化的初试序列号
避免采用基于IP地址的信任策略
在路由器和网关上实施包过滤
使用网络层安全传输协议
ARP欺骗
ARP欺骗:也称为ARP下毒,是指攻击者在有线或以太网上发送伪造的ARP信息,对特定IP所对应的的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。
ARP工作原理:当设备再数据链路层访问一个主机的时候,若已经得知对方的mac地址,则直接组合形成MAC帧进行传输;若只知道IP而不知道对方的MAC地址则通过ARP协议请求对方的MAC地址。
攻击步骤:
-
节点A发送数据包给目的节点B时,会通过ARP协议在局域网段广播ARP请求包,询问节点B的IP地址所映射的MAC地址。
-
攻击节点C说IP目标IP地址所映射的MAC地址是他自己,并不断地向源节点发送ARP响应包。
-
由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存。
-
当源节点A要再次发送数据包到节点B时,直接将数据包发送到C对应的MAC地址,即攻击节点C,这样C就通过欺骗假冒了目的节点B。
-
如果ARP欺骗攻击的是网关节点,将导致整个局域网所有节点经过网关出入的数据包都会首先通过攻击节点,可能被嗅探、监听和恶意修改。
原理图:
ARP欺骗技术的应用场景:交换式网络、构造中间人攻击、恶意代码
防范措施:预防ARP欺骗攻击的主要方法有静态绑定关键主机的IP地址与MAC地址映射关系,使用相应的ARP防范工具,使用VLAN虚拟子网细分网络拓扑并加密传输数据以降低ARP欺骗攻击的危害后果等
ICMP路由重定向攻击
ICMP 路由重定向攻击 (ICMP Redirect Attack) 是指攻击者伪装成路由器发送虚假的 ICMP 路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。
ICMP路由重定向机制原理:ICMP报文分为两种类型:差错报告类、控制类报文。(差错报文分为:目的站不可达、数据报超时、数据包参数错误,控制类报文:请求/应答类和通知类)
ICMP路由重定向攻击过程:攻击者使用IP源地址欺骗技术,冒充IP网关,向攻击节点发送ICMP重定向报文。被攻击节点进行审核后接受ICMP请求,从而攻击者将成为被攻击者和路由网关之间的桥梁。转发过程中根据重定向原理会发送真实的重定向报文。
防范措施:过滤一些类型的ICMP数据包,设置防火墙过滤,判断ICMP重定向报文是不是来自路由器。
1.3 传输层协议攻击
TCP RST攻击
TCPRST 攻击:也被称为伪造 TCP重置报文攻击 (spoofed TCP reset packet) , 是指一种假冒干扰 TCP通信连接的技术方法。
TCPRST攻击步骤:
(1)攻击主机C可以通过嗅探方式监视通信双方A、B之间的TCP连接。
(2)在获得源、目标IP地址及端口、序列号之后,接可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方。
(3)在确保端口号一致及序列号落入TCP造成通信双方正常网络通信的中断,达到拒绝服务的效果。
TCPRST攻击示意图:
TCP会话劫持攻击
TCP会话劫持:是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。
TCP会话劫持原理: TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。
TCP会话攻击过程:靶机与服务器进行连接,服务器向靶机返回相应包,其中的序列号被攻击机嗅探得到,进而仿冒靶机向服务器发送数据包。此时攻击机仿冒服务器向靶机发送RST包,避免靶机对通信的干扰。
TCP会话挟持攻击防御措施:
-
禁用主机上的源路由
-
采用静态绑定IP-MAC映射表以及避免ARP欺骗
-
引用和过滤ICMP重定向报文
-
网络层加密机制(IPsec协议)
TCP SYN Flood拒绝服务攻击
TCP SYN Flood :又称SYN洪泛攻击,他是利用TCP三次握手协议 的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
TCP SYN Flood攻击步骤:
(1)在TCP SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。
(2)受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。
(3)如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文,受害主机继续发送SYN+ACK包,当半开连接报文填满,服务器也就拒绝新的连接。
TCP SYN Flood攻击示意图:
防范措施:
-
SYN-Cookie技术
-
防火墙地址状态监控技术
UDP Flood拒绝服务攻击
UDP洪泛;是一种拒绝服务攻击,其中大量的用户数据报协议(UDP)数据包被发送到目标服务器,目的是压倒该设备的处理和响应能力。防火墙保护目标服务器也可能因UDP泛滥而耗尽,从而导致对合法流量的拒绝服务。
防范措施包括:
-
禁用或过滤监控和响应服务
-
在网络关键位置使用防火墙和代理机制来过滤掉一些非预期的网络流量
2.实践过程
实践:在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。
主机 | IP地址 | Mac地址 |
kali |
192.168.200.2 | 00:0c:29:25:47:0a |
SEEDUbuntu | 192.168.200.4 | 00:0c:29:33:77:ed |
Metasploitable2 | 192.168.200.6 | 00:0c:29:34:fa:76 |
ARP缓存欺骗攻击
1. 利用Netwox进行IP源地址欺骗,目的是Kali能够监听SEED Ubuntu和MetaSploitable的通信。
首先让SEEDUbuntu与MetaSploitable2进行通信,用ping
命令得到ARP缓存表(arp -a
查看ARP缓存表)
2. 使用命令行sudo apt-get install netwox
和sudo apt-get install netwag
如果出现没有这个包的提示信息,则先使用命令行sudo apt-get update
对kali进行升级再安装netwox和netwag 接下来在在Kali上执行指令netwox 80 -e 00:0c:29:25:47:0a -i 192.168.200.6
, 80
是指netwox的80号工具,-e
:攻击机kali的MAC地址,-i
:MetaSploitable的IP地址,周期性发送应答,告诉请求方192.168.200.4(seed靶机)的MAC地址为00:0c:29:25:47:0a(kali攻击机)
回到SEEDUbuntu里arp -a
查看我们看出冒充成功了!
ICMP重定向攻击
首先,使用netwox的86号工具进行ICMP重定向攻击,在Kali攻击机上执行命令netwox 86 -f "host 192.168.200.4" -g 192.168.200.2 -i 192.168.200.1
,这个命令是当嗅探到SEED的数据包时,以192.168.200.1的名义发送ICMP重定向报文,使192.168.200.2(Kali)成为其默认路由。
用wireshark查看它访问的过程,可以看到SEED靶机打开网页时的数据包,数据包已经被重定向到192.168.200.1
SYN Flood攻击
选择利用SEED Ubuntu向靶机MetaSploitable发起telnet服务访问,用Kali攻击机攻击靶机的telnet服务端口,并用Wireshark查看。
1. 使用SEED Ubuntu向MetaSploitable发起登陆telnet 192.168.200.125
,输入用户名密码
2. 在Kali上利用netwox的76
号工具对靶机的23
号端口进行SYN Flood攻击netwox 76 -i 192.168.200.125 -p 23
3.打开 SEED 的 Wireshark,可以看到攻击机向靶机发送了大量的虚假 IP 发出的 SYN 连接请求,这些虚假的连接请求没有 MAC 地址,无法溯源攻击者的真实身份:
TCP RST攻击
与TCP Flood攻击相似,换了工具号为78,Kali上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i 192.168.200.4
TCP会话劫持攻击
首先我们将SEED Ubuntu利用telnet 192.168.200.125 登陆MetaSploitable。
在Kali上打开Wireshark设置过滤条件tcp.port == 23,然后在SEED Ubuntu中输入ls,回到Kali的Wireshark中查看,会发现有l和s的数据包
打开TransmissionControl Protocol
查看
有了这些值,接下来我们就可以伪造发下一个包,所以把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息之后,攻击机使用netwox工具伪造SEED Ubuntu给MetaSploitable发一个tcp包。发送成功后,原来的SEED Ubuntu就会失去连接,同时MetaSploitable会把Kali当作访问者 ,如此实现了会话劫持
3.学习中遇到的问题及解决
需要更换kali的源,https://blog.csdn.net/qq_31386215/article/details/65937159 有教程
出现kali上不上网的情况,将网络适配器都改成NAT模式。
4.实践总结
这次试验操作花的时间不多,在很多内容上花费了大量的时间,以后的学习中需要一步一个脚印,最近的作业太多了!!