20199318 2019-2020-2 《网络攻防实践》第五周作业
1.知识点梳理与总结
1.1 TCP/IP网络协议栈攻击概述
1.1.1网络安全属性与攻击模式
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改、泄露,系统连续可靠正常运行,网络服务不被中断。
-
网络安全属性
机密性:是指网络中的信息不被非授权实体获取和使用,通常基于加密算法进行保障。 完整性:是指信息未经授权不能进行改变的特性,即信息在存储和传输过程中保持不被修改、不被破坏和丢失的特性。 可用性:是指被授权实体访问并按需求使用的特性,即当需要时能够正常地存取和访问所需的信息与服务。 真实性:是指确保通信对方是它所声称的真实实体,而非假冒实体。 不可抵赖性:是指在通信中确保任何一方无法抵赖自己曾经做过的操作的安全特性,包括对自己行为的不可抵赖及对行为发生时间的不可抵赖,有时也被称为不可否认性和可审査性。
-
网络攻击基本模式
在网络通信中,攻击者可以釆取四种基本的攻击模式,包括截获、中断、篡改与伪。 截获是一种被动攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反,具体攻击技术为嗅探(Sniffing)与监听(Eavesdropping); 中断、篡改与伪造都属于主动攻击模式,中断攻击的目标是致使正常的网络通信和会话无法继续,是对可用性的破坏,具体攻击技术为拒绝服务(Denial of Service, DoS); 而伪造则是假冒网络通信方的身份,欺骗通信对方达到恶意目的,是对真实性属性的背离,具体攻击技术为欺骗(Spoofing):篡改则是对网络通信过程的信息内容进行修改,使得通信一方或双方接收到篡改后的虚假信息,是对完整性的违背,具体技术为数据包募改,一般需要结合身份欺骗进行中间人攻击。
1.1.2 TCP/IP网络协议柱安全缺陷与攻击技术
-
TCP/IP网络协议桟的安全缺陷与攻击技术:
-
网络接口层
网络接口层协议最常用的是以太网协议。在以太网接口检测数据帧,当检测到的数据帧目标MAC地址不属于自己时,就直接把它忽略,不发往上层协议,但当网络接口处于混杂模式下时,则可以直接嗅探并截获数据包。 常用的网络接口层协议还有PPP (Point to Point Protocol)协议,PPP协议为在点对点连接上传输多协议数据包提供了一个标准方法,它最初设计是为两个对等节点之间的数据包流量传输提供一种封装协议,主要用来创建电话线路及ISDN拨号接入ISP的连接,利用以太网资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE,目前流行的ADSL上网即使用这一协议。PPP协议在安全性方面也不提供对其所封装数据完整性和机密性的保障,也存在被嗅探与监听的安全隐患。
-
互联层
互联层的基础协议是互联网协议IPv4,其他还包括ICMP、ARP (Address Resolve Protocol,地址解析协议)、BGP (Border Gateway Protocol,边界网关协议)等动态路由协议。 IP层可能受到的攻击有:IP地址欺骗攻击、利用源路由选项滥用,IP分片重组缺陷进行攻击、IP分片攻击利用了一些操作系统协议栈、防火墙、入侵检测系统处理特殊IP分片包时的错误和缺陷,来达到拒绝服务或躲避检测的攻击目标。 ARP协议的基本功能就是通过目标设备的IP地址,査询目标设备的MAC地址,以保证网络通信的顺利进行。然而ARP解析过程采用广播问询方式来确认目标MAC地址,并在每台主机上维护ARP缓存,保存MAC-IP映射缓存,这种协议设计并没有对映射关系的真实性进行任何验证,因此很容易会被欺骗,这种攻击技术称为ARP欺骗。 ICMP协议存在的主要安全缺陷在于攻击者可以利用ICMP重定向报文控制数据包路由路径,从而实施ICMP路由重定向攻击。此外ICMP协议也可能被滥用造成拒绝服务攻击,包括Ping洪泛攻击(Ping Flood)和Smurf攻击等。
-
传输层
传输层协议主要包括TCP和UDP。TCP建立会话之后的连接过程中,仅仅依靠IP地址、端口和SEQ/ACK号对通信对方进行验证,非常容易遭受伪造和欺骗攻击,攻击者可以进行TCP RST攻击直接中断会话过程,或结合其他攻击技术进行中冋人会话劫持攻击。此外,TCP协议的三次握手过程存在设计缺陷,攻击者可以进行SYN洪泛攻击。
-
应用层
应用层协议非常多样化,目前一些流行应用的应用层协议如HTTP, FTP、POP3/SMTP、DNS、SMB等均缺乏安全考虑,并大多釆用明文传输,存在被嗅探监听、欺骗与中间人攻击的风险,如DNS欺骗攻击、SMB中间人攻击、URL欺骗或钓鱼(Phishing)攻击、网页挂马攻击等。
1.1.3原始报文伪造技术及工具
实现欺骗技术需要攻击者伪造出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。
在类UNIX平台和Windows平台上,攻击者都可以通过使用原始套接字(Raw Socket),绕过TCP/IP协议栈的报文封装处理和验证,构造出任意的数据报文,如进行各种欺骗攻击的伪造报文。
除了自己编程实现伪造报文之外,目前在安全社区中也存在着一些可以实施各种网络欺骗攻击的工具软件,Netwox是其中一个非常强大且易用的开源工具包,可以创建任意的TCP/UDP/1P数据报文。
1.2 网络层协议攻击
1.2.1 IP源地址欺骗
IP源地址欺骗(IPSpoofing)是指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。
-
IP源地址欺骗原理
IP源地址欺骗可以实现的根本原因在于:IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证.打一个比方,IP转发数据包的过程很像邮局寄送平信,按照信封格式是需要寄信人填写寄信地址,但邮局转发与投递信件时,只会査看收信人地址,而不会去验证寄信地址的真实性,只要收信人地址正确无误并贴了邮票,信件就会被送达。同样,路由器在转发IP数据包时,也只根据目标IP地址査询路由路径,进行数据包的转发直至送达目标,不会对数据包是否真正来自其声称的源地址进行验证。
-
IP源地址欺骗技术应用场景
IP源地址欺骗最普遍应用于拒绝服务攻击中,拒绝服务攻击通过向目标主机发送庞大的流量以耗尽网络带宽或计算资源。IP源地址欺骗也经常在进行网络扫描时应用,以隐藏真实的扫描源地址。IP源地址欺骗还被攻击者用来对付一些基于IP地址的身份认证机制,如类UNIX平台上的主机信任关系,防火墙或服务器中配置的特定IP访问许可等。
-
利用Netwox进行IP源地址欺骗
Netwox中对于IP数据包的伪造有许多种类,从ICMP到TCP/UDP都可以伪造,并且可以设置相应的参数,里面只要将IP源地址填入自己想壊的IP地址便可构成IP源地址欺骗的一个包。
-
IP源地址欺骗的防范措施
预防遭受IP源地址欺骗的防范措施包括: (1) 使用随机化的初始序列号,使得远程攻击者无法猜测到通过源地址欺骗伪装建立TCP连接所需的序列号,降低被源地址欺骗的风险; (2) 使用网络层安全传输协议如IPsec,对传输数据包进行加密,避免泄露高层协议可供利用的信息及传输内容; (3) 避免采用基于1P地址的信任策略,以基于加密算法的用户身份认证机制来替代这些访问控制策略; (4) 在路由器和网关上实施包过滤是对抗1P源地址欺骗的一种主要技术,局域网网关上成启动入站过滤机制(ingress filtering),阻断来自外部网络但源IP地址却属于内部网络的数据包,这项机制能够防止外部攻击者假冒内部主机的IP地址。理想情况下,网关也应执行出站过滤机制(egress filtering),阻断来自内部网络但源IP地址却不属于内部网络的数据包,这可以防止网络内部攻击者通过IP源地址欺骗技术攻击外部主机。
1.2.2 ARP欺骗
-
ARP协议工作原理
(1)每台主机设备上都拥有一个ARP缓存(ARPCache),根据以往在网络中与其他主机的通信,在ARP缓存中维护着已访问网络主机的IP地址和MAC地址的映射关系; (2)当一台主机需要将数据包发送到目标主机时,首先会检査自己的ARP缓存中是否存在目标主机IP地址所对应的MAC地址。如果有,则直接将数据包发送到这个MAC地址;如果没有,就向本地局域网段发送一个ARP请求广播包,査询目标主机IP地址所对应的MAC地址; (3)本地局域网段中所有主机在收到这个ARP请求包之后,会检査数据包中的目标IP地址是否与自己的IP地址一致,如果不相同就忽略此数据包;如果相同,该节点首先将源端IP地址和MAC地址的映射关系添加到自己的ARP缓存中。如果发现ARP缓存中已经存在该IP地址的记录项,则将其覆盖,然后给源节点发送一个ARP响应数据包,告诉对方自己是它所査找的MAC地址节点; (4)源节点在收到这个ARP响应数据包后,将得到的目标主机IP地址和MAC地址对的映射表项添加到自己的ARP缓存中,并利用此信息开始数据包的传输,如果源节点一直没有收到ARP响应数据包,则表示ARP査询失败。
-
ARP欺骗攻击技术原理
ARP欺骗攻击的根源在于ARP协议在设计时认为局域网内部的所有用户都是可信的,是遵循协议设计规范的,但事实上并非如此,局域网内可以存在内部攻击者,或者已渗透进入局域网的外部攻击者或恶意代码。ARP协议在进行IP地址到MAC地址映射査询时存在安全缺陷,一方面采用了广播请求包方式在局域网段中询问映射关系,但没有对响应结果进行真实性验证的技术流程与方法,而另一方面ARP协议为提高效率,设计了ARP缓存机制,以及会将主动的ARP应答视作有效信息进行接受,这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。
-
ARP欺骗攻击技术的应用场景
在交换式网络中可以利用ARP欺骗技术进行局域网中的嗅探,并通过进一步的协议分析窃取敏感信息;将利用ARP欺骗构造中间人攻击,从而实施TCP会话劫持的攻击方法;ARP欺骗技术目前也被恶意代码所普遍使用,被称为ARP病毒,这类恶意代码发作机。然后再实施信息窃取、报文裏改和病毒传播等攻击。
-
利用Netwox进行ARP欺骗
Netwox中的33号工具可以构造任意的以太网ARP数据报,80号工具可以周期性地发送ARP应答报,因此可以利用这两个工具来实施ARP欺骗攻击。
-
ARP欺骗攻击防范措施
预防ARP欺骗攻击的主要方法有静态绑定关键主机的IP地址与MAC地址映射关系、使用相应的ARP防范工具、使用VLAN虚拟子网细分网络拓扑,并加密传输数据以降低ARP欺骗攻击的危害后果等。
1.2.3 ICMP路由重定向攻击
- ICMP踣由重定向机制原理
ICMP报文类型分为两类:差错报告类和控制类。差错报告报文分为3类:目的站不可达、数据报超时、数据报参数错误。控制类报文分为两类:请求/应答类和通知类。其中请求/应答类总是成对出现的:回送请求/应答、地址掩码请求/应答、路由器恳求/通告、时间戳请求/应答,一共8种;通知类有两种:源站抑制和重路由定向。
-
ICMP路由重定向攻击技术
(1)攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点; (2)被攻击节点在接收到该报文后,会进行限制条件检査,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新路由器(即网关); (3)攻击节点可以开启路由转发,充当一个中间人,对被攻击节点与外部网络的通信进行全程嗅探监听,达到与ARP欺骗类似的攻击效果; (4)在转发过程中,根据ICMP路由重定向机制的设计原理,由于从被攻击节点到外部网络存在更优的路由路径,即直接通过原先的网关进行路由较重定向后的路由路径少一跳,因此攻击节点协议栈可能会向被攻击节点发送一个ICMP重定向报文,指定原先网关作为新路由器,这个报文将使欺骗路由路径还原至原先正常状态,这也是ICMP路由重定向攻击中的一个非常有趣的“谎言与真话”现象。
-
利用Netwox进行ICMP踣由重定向攻击
利用Netwox的第86号工具,可以进行ICMP重定向攻击实验,其工作原理是嗅探网络中的数据包,每嗅探到一个符合要求的数据包(自己设定),就向该IP地址发送一个ICMP重定向报文,让该1P的主机重定向至预先设定的IP地址。
-
ICMP路由重定向攻击防范
ICMP路由重定向攻击的主要防范措施是根据类型过滤一些ICMP数据包,设置防火墙过滤,对于ICMP重定向报文判断是不是来自本地路由器等。
1.3 传输层协议攻击
1.3.1 TCP RST攻击
TCP RST攻击也被称为伪造TCP重置报文攻击(spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法。TCP协议头的标志位中拥有一个“ieset”比特位,绝大部分数据包中该标志位都置为0,而一旦该标志位置为1,则接收该数据包的主机将立即断开这个会话连接,不再利用该连接进行数据包发送和接收。简单地说,TCP重置报文将直接关闭掉一个TCP会话连接。
1.3.2 TCP会话劫持攻击
-
TCP会话劫持攻击原理
TCP会话劫持(TCPSession Hijacking)则是一项更为复杂的TCP协议攻击技术方法.其目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行进一步通信。通常一些网络服务会在建立TCP会话之后进行应用层的身份认证,客户端在通过身份认证之后,就可以通过TCP会话连接对服务端进行控制或获取资源,期间不再需要再次进行身份认证。由于TCP会话劫持为攻击者提供了一种绕过应用层身份认证的技术途径,因此得到了较高水平攻击者的青睐。
1.3.3 TCP SYN Flood拒绝服务攻击
-
SYN Flood 攻击原理
在SYN Hood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包,如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,这种情况下源端永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,并将半开连接放入端口的积压队列中,虽然一般的主机都有超时机制和默认的重传次数,但是由于端口的半连接队列的长度是有限的,如果不断地向受害主机发送大量的TCPSYN报文,半开连接队列就会很快填满,服务器也就拒绝新的连接,导致该端口无法响应其他机器进行的正常连接请求,最终使受害主机被拒绝服务。
-
SYN Flood攻击防范措施
对于SYN Hood攻击的主要防范措施包括:SYN-Cookie技术和防火墙地址状态监控技术。
1.3.4 UDP Flood拒绝服务攻击
由于UDP协议的无状态不可靠的天然特性,UDPFlood拒绝服务攻击的原理非常简单,即通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或者目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
对于UDP Flood攻击的防范措施包括:禁用或过滤监控和响应服务;禁用或过滤其他的UDP服务;如果用户必须提供一些UDP服务的外部访问,那么需要在网络关键位置但用防火墙和代理机制来过滤掉一些非预期的网络流量来保护这些服务,使它不会被滥用。
1.4 TCP/IP网络协议栈攻击防范措施
在网络接口层,主要监测和防御的安全威胁是网络嗅探,可以利用防范网络嗅探的思路,检测出局域网中的监听点,并在网络设计上尽量细分和优化网络结构,尽量消除数据广播的情况,并对关键路径上的网关、路由器等设备进行严格的安全防护,以减少网络嗅探的危害影响。
在互联层上,虽然IP、ICMP、ARP等协议中存在的本质安全缺陷,使得很难完全规避欺骗攻击安全风险,但仍可以釆用多种检测和过滤技术来发现和阻断网络中可能出现的欺骗攻击,此外也应増强防火墙、路由器和网关设备的安全策略,对一些用于欺骗攻击的特殊数据包进行过滤。
在传输层,可以实现基于面向连接和无连接服务的加密传输和安全控制机制,包括身份认证,访问控制等。
应用层可以釆用加密、用户级身份认证、数字签名技术、授权和访问控制技术,以及主机安全技术,如审计、入侵检测等。
2.实践作业
请在网络攻防实验环境(以SEED_VM作为攻击机,Linux Metasploitable/Windows Metasploitable作为靶机)中完成TCP/IP协议栈重点协议的攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击及TCP会话劫持攻击(bonus)。
2.1 ARP缓存欺骗攻击
攻击机:SEED;IP:192.168.200.5;MAC:00:0c:29:17:72:69
靶机1:Linux Metasploitablel;IP:192.168.200.125;MAC:00:0c:29:11:a8:5a
靶机2:win2kServerL;IP:192.168.200.124;MAC:00:0c:29:d1:46:7c
靶机2的arp映射关系如下:
在攻击机使用命令:
netwox 33 -b 00:0c:29:d1:46:7c -g 192.168.200.125 -h 00:0c:29:d1:46:7c -i 192.168.200.124
替换ARP缓存,其中两个MAC地址都是靶机2的MAC地址,第一个IP地址为靶机1的IP地址,第二个IP地址为靶机2的IP地址,攻击机截获了靶机2的ARP请求包,向靶机2不断发送ARP响应包,由此修改了原本ARP缓存靶机1的MAC地址。
2.2 ICMP重定向攻击
攻击机:KALI;IP:192.168.200.6
靶机:Windows攻击机;IP:192.168.200.2
网关:192.168.200.1
攻击机利用Netwox的第86号工具,执行攻击命令 :
netwox 86 -f "host 192.168.200.2" -g 192.168.200.6 -i 192.168.200.1
-f
代表靶机地址, -g
代表靶机的下一跳地址,-i
代表伪造的身份。意思以路由192.168.200.1的名义向数据包的源地址192.168.200.2发送一个ICMP重定向报文,使其使用192.168.200.6为默认的路由。
查询靶机的route跳转记录,并于之前的做对比,可以发现经过攻击机192.168.200.6
2.3 TCP RST 攻击
使用netwox第78号工具发起攻击,执行命令
netwox 78 -i 192.168.200.5
对dees机进行TCPRST攻击,冒充靶机向目的IP发送大量RST标志位1的数据包,导致TCP连接断开,靶机与目标服务器断开通信:
可以看到靶机已与百度网页断开通信:
2.4 SYN Flood攻击
使用netwox中的76号工具进行攻击,执行
netwox 76 -i "192.168.200.5" -p 23
对靶机的23号端口进行SYN Flood攻击:
在wireshark上进行抓包,发现攻击机向靶机发送大量虚假SYN连接请求,这些请求没有MAC地址,无法查询攻击者:
对靶机进行telnet连接,显示连接失败:
2.5 TCP会话劫持攻击
安装ettercap命令apt-cache search ettercap,apt-get install -y ettercap-graphical
,启动web服务/etc/init.d/apache2 start,/etc/init.d/apaches2 status
:
修改/etc/ettercap/etter.dns
配置文件,添加欺骗的A记录和PDR记录:
输入ettercap -G
开启ettercap,选择eth0网卡,点击√
开启服务,然后选择Hosts
下Hosts list
,然后点击Scanf for hosts
,能显示当前网段内的扫描的主机IP,将windows靶机192.168.200.124添加为Target1,将SEED靶机192.168.200.5添加为Target2
然后选择ARP posisoning
,勾选Sniff remote connections
,开始远程嗅探:
靶机之间ARP查询,对方MAC地址已经变为攻击机MAC地址:
靶机之间进行ping操作,嗅探结果如下:
靶机之间进行telnet连接,嗅探结果如下:
靶机登录百度,嗅探结果如下:
3.遇到的问题
- 问题一:kali攻击机上没有netwox工具。
- 问题一解决方法:通过命令sudo apt-get install netwox直接下载,可能因为本人的网络原因,一直下载不下来,最后挂了一个VPN才下载下来。
4.学习感悟、思考
- 本次课程学习了TCP/IP网络协议栈攻击,并对每种协议攻击都进行了实际操作,受益颇深。
- 学会使用新的工具netwox,虽然还不是非常的熟练,但是一些基本命令参数已经弄清楚了。