20199317 2019-2020-5 《网络攻防实践》第5周作业

20199317 2019-2020-5 《网络攻防实践》第5周作业

1.实践内容

1.1 TCP/IP网络协议栈攻击概述

  • 网络安全属性与攻击模式
    网络安全属性:机密性、完整性、可用性、真实性、不可抵赖性
    网络攻击基本模式:截获、中断、篡改、伪造

  • TCP/IP网络协议栈安全缺陷与攻击技术
    TCP/IP网络协议在设计时采用了分层模型,分为了网络接口层、互联层、传输层与应用层,每一层负责不同的功能,各自具有相应的网络协议。在每个层次上的网络协议都存在着一定的安全问题或设计缺陷,目前也已经出现相应的攻击技术,如下所示:

  • 原始报文伪造技术及工具
    在一系列针对TCP/IP网络协议的攻击技术中,除了前面介绍过的网络嗅探与协议分析技术之外,最流行的是欺骗技术(Spoofing)。实现欺骗技术需要攻击者伪造出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。
    除了可以自己编程实现伪造报文之外,还可以使用一些可以实施各种欺骗攻击的工具软件,如Netwox,这是其中一个非常强大且易用的开源工具包,可以创建任意的TCP/UDP/IP数据报文。

1.2 网络层协议攻击

1.2.1 IP源地址欺骗

  • IP源地址欺骗(IPSpoofing)是指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机等目的。

  • IP源地址欺骗原理:IP源地址欺骗可以实现的根本原因在于:IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。路由器在转发IP数据包时,也只根据目标IP地址查询路由路径,进行数据包的转发直至送达目标,不会对数据包是否真正来自其声称的源地址进行验证,IP 源地址欺骗的示意图如图所示:

  • 利用IP源地址欺骗进行IP假冒的攻击过程

    其中:
    第一步的目的:避免其在接受到响应包后影响欺骗过程;
    第二步的目的:TCP初始序列号是指目标主机在接受SYN报文后,返回SYN/ACK报文中的SEQ值,攻击主机只有在随后进一步伪造的ACK报文中,将ACK值正确地设置为目标主机的ISN+1,才能够通过目标主机的验证,真正建立起连接,达到欺骗效果。

  • IP源地址欺骗的防范措施
    (1)使用随机化的初始序列号,使得远程攻击者无法猜测到通过源地址欺骗伪装建立TCP连接所需的序列号;
    (2)使用网络层安全传输协议如IPsec,对传输数据包进行加密;
    (3)避免采用基于IP地址的信任策略,以基于加密算法的用户身份认证机制来替代这些访问控制策略;
    (4)在路由器和网关上实施包过滤。

1.2.2 ARP欺骗

  • ARP欺骗(ARP Spoofing)是指攻击者在有线以太网或无线以太网上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。

  • ARP协议完成IP地址到MAC地址映射的过程步骤如下:
    (1)每台主机设备上都拥有一个ARP缓存(ARP Cache),在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欺骗攻击防范措施
    静态绑定关键主机的IP地址与MAC地址映射关系、使用相应的ARP防范工具、使用VLAN虚拟子网细分网络拓扑,并加密传输数据以降低ARP欺骗攻击的危害后果等。

1.2.3 ICMP路由重定向攻击

  • ICMP路由重定向攻击(ICMP Redirect Attack)是指攻击者伪装成路由器发送虚假的ICMP路由路径控制报文,使得受害主机选择攻击者指定的路由路径,从而进行嗅探或假冒攻击的一种技术。

  • ICMP路由重定向机制原理:ICMP路由重定向主要用于应对网络故障时的数据包处置,当网络拓扑结构发生变化、网络出现故障时,可能会导致主机采用非优化的路由来发送数据,这时路由器便可以使用ICMP重定向报文来更新主机的路由表,从而使得主机能够根据网络环境变化,重新选择一条更优化的路由路径来传输数据,以提高网络的传输效率。

  • ICMP路由重定向攻击技术
    (1)攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP .重定向报文,并将指定的新路由器IP地址设置为攻击节点;
    (2)被攻击节点在接收到该报文后,会进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新路由器(即网关);
    (3)攻击节点可以开启路由转发,充当一个中间人,对被攻击节点与外部网络的通信进行全程嗅探监听,达到与ARP欺骗类似的攻击效果;
    (4)在转发过程中,根据ICMP路由重定向机制的设计原理,由于从被攻击节点到外部网络存在更优的路由路径,即直接通过原先的网关进行路由较重定向后的路由路径少一跳,因此攻击节点协议栈可能会向被攻击节点发送一一个ICMP重定向报文,指定原先网关作为新路由器,这个报文将使欺骗路由路径还原至原先正常状态,这也是ICMP路由重定向攻击中的一个非常有趣的“谎言与真话”现象。

  • ICMP路由重定向攻击防范:根据类型过滤一些ICMP数据包,设置防火墙过滤,对于ICMP重定向报文判断是不是来自本地路由器等。

1.3 传输层协议攻击

1.3.1 TCP RST攻击

  • TCP协议头的标志位中拥有一个“reset”比特位,一旦该标志位置为1,则接收该数据包的主机将立即断开这个TCP会话连接。TCP RST攻击就是利用这个原理来中断通信的,攻击主机C可以通过嗅探方式监视通信双方A、B之间的TCP连接,在获得源、目标IP地址及端口,以及序列号之后,结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信一方,在确保端口号一致及序列号落入TCP窗口之内的情况下,即可直接关闭这个TCP连接,造成通信双方正常网络通信的中断,达到拒绝服务的效果。

1.3.2 TCP会话劫持攻击

  • 攻击过程

    其中,监听部分是攻击者通过ARP欺骗实施中间人攻击,嗅探获得Victim和telnet服务器间的通信内容;认证成功后,由于与telnet服务器之间的ACK值互相不再匹配产生“ACK 风暴”,即在攻击机注入数据包后,客户端在接收到服务器的响应包后,将会发现ACK值不正确,并向服务器发回含有它所期望ACK值的ACK包,期望重新建立起同步状态,而服务器收到Victim的ACK包后,也会发现它并不符合它的接收条件,因此它再次返回了一个ACK包,这样就构成了死循环,在网络上来回发送ACK,直到其中一个ACK由于网络拥塞或其他原因丢失为止。

  • 防范措施
    (1)禁用主机上的源路由,采用静态绑定IP-MAC映射表以避免ARP欺骗,引用和过滤ICMP重定向报文,这三个措施能够避免攻击者成为通信双方的中间人,从而进行会话劫持攻击。
    (2)采用网络层加密机制,即IPsec协议,避免攻击者在网络上嗅探到传输层的端口及序列号等关键信息。
    (3)查看网络中是否存在ACK风暴,或其他欺骗报文,有效检测出TCP会话劫持攻击。

1.3.3 TCP SYN Flood拒绝服务攻击

  • SYN Flood攻击原理:攻击者向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN/ACK报文,并等待源端返回ACK包。如果构造的源地址活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,这种情况下源端口永远都不会返回ACK报文,受害主机继续发送SYN+ACK包,放入端口的积压队列中,导致该端口无法响应其他机器进行的正常连接,最终使受害主机被拒绝服务。

1.3.4 UDP Flood拒绝服务攻击

  • UDP Flood拒绝服务攻击的原理:通过向目标主机和网络发送大量的UDP数据包,造成目标主机显著的计算负载提升,或目标网络的网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。

1.4 TCP/IP网络协议栈攻击防范措施

  • 检测、预防与安全加固
    在网络接口层,主要检测和防御的安全威胁是网络嗅探,检测出局域网中的监听点,在网络设计上尽量细分和优化网络结构,对关键路径上的网关、路由器等设备进行严格的安全防护等。
    在互联层上,可以采用多种检测和过滤技术来发现和阻断网络中可能出现的欺骗攻击,增强防火墙、路由器和网关设备的安全策略,对关键服务器使用静态绑定IP-MAC映射表、使用IPsec协议加密通信等预防机制。
    在传输层,实现基于面向连接和无连接服务的加密传输和安全控制机制,包括身份认证,访问控制等。
    在应用层,采用加密、用户级身份认证、数字签名技术、授权和访问控制技术,以及主机安全技术,如审计、入侵检测等。

  • 网络安全协议
    在TCP/IP协议栈各个层次上主要的网络安全协议如下所示:

  • 下一代互联网协议
    与IPv4相比,IPv6具有以下几个优势:
    (1)IPv6具有更大的地址空间。
    (2)IPv6使用更小的路由表。
    (3)IPv6增加了增强的组播支持以及对流的支持。
    (4)IPv6加入了对自动配置的支持
    (5)IPv6具有更高的安全性。

4.实践过程

  Netwox是一个非常强大且易用的开源工具包,可以创建任意的TCP/UDP/IP数据报文,实施各种网络欺骗攻击。Netwox支持命令行方式构造及发送伪造包,可以通过脚本编程实现自动化处理。这次的各种实践就使用Netwox。

  本次实践以VMware中的kali、SEED、metasploitable-linux这三台虚拟机作为实验环境。注意三台虚拟机需要处于同一个网段,三者的IP和MAC地址如表所示:

虚拟机 IP地址 MAC地址
kali 192.168.200.2 00:0c:29:21:fa:bd
SEED 192.168.200.3 00:0c:29:82:01:3f
metasploitable linux 192.168.200.125 00:0c:29:fa:dd:2a
  • ARP缓存欺骗攻击
    kali为中间攻击者,SEED、metasploitable-linux为被欺骗主机。
    攻击过程为:kali分别向SEED、metasploitable-linux发送伪造的应答数据包进行欺骗,使得SEED、metasploitable-linux的ARP缓存表中的映射关系分别为IP(SEED)/MAC(kali),IP(metasploitable-linux)/MAC(kali)

1、seed ping metasploitable-linux,建立彼此的ARP缓存表,输入命令arp -a查看IP-MAC地址映射表,如下所示:

2、在kali上输入命令netwox 80 -e 00:0c:29:21:fa:bd -i 192.168.200.125 //80代表netwox的第80号工具,即周期性发送ARP应答报,-e代表要改成的中间攻击者mac地址,-i代表要欺骗的主机ip地址

3、在SEED上查看ARP缓存表,跟之前的缓存表对比

可以看到SEED的ARP缓存表成功修改为IP(metasploitable-linux)/MAC(kali)

4、在kali上开启wireshark,再SEED ping metasploitable-linux,可以看到在kali上抓取到了发送至metasploitable-linux的数据包

  • ICMP重定向攻击
    kali(192.168.200.2)为攻击者,SEED(192.168.200.3)为受害者。

1、输入命令netstat -rn,查看SEED的路由表信息,得到192.168.200.1为网关

2、在kali上输入命令netwox 86 -f "host 192.168.200.3" -g 192.168.200.2 -i 192.168.200.1,意思是利用Netwox的第86号工具,嗅探到数据包的源或目的IP地址192.168.200.3时,就以192.168.200.1的名义向数据包的源地址发送一个ICMP重定向报文,使之使用192.168.200.2作为默认路由。

3、在SEED上ping 192.168.200.125,看到发送到metasploitable-linux的数据包重定向到了192.168.200.2(kali)上

  • SYN Flood攻击
    SEED为客户端,metasploitable-linux为服务端,kali为攻击者。
    1、在seed上输入命令telnet 192.168.200.125访问服务端

2、在kali上输入命令netwox 76 -i 192.168.200.125 -p 23,意思是利用netwox的76号工具对服务端的23号端口进行SYN FLOOD攻击

3、在kali上打开wireshark,发现大量发送到192.168.200.125的数据包

4、在SEED上通过输入命令telnet 192.168.200.125再一次访问服务端,发现访问不了,说明服务端的该端口已经崩溃

  • TCP RST攻击
    SEED为客户端,metasploitable-linux为服务端,kali为攻击者。
    1、在seed上打开wireshark,接着输入命令telnet 192.168.200.125访问服务端

2、在kali上输入命令netwox 78 -i 192.168.200.125,意思是利用netwox的78号工具对服务端的23号端口实现TCP RST攻击

3、在SEED上通过输入命令telnet 192.168.200.125再一次访问服务端,发现连接中断

  • TCP会话劫持攻击
    SEED为客户端,metasploitable-linux为服务端,kali为会话劫持方。
    1、在SEED输入命令telnet 192.168.200.125登录metasploitable-linux,接着在kali上打开wireshark进行数据包监听

2、在SEED下的metasploitable-linux用户下随便输入个命令,比如ls

3、然后用kali的wireshark查看监听的数据包,发现了如下两个包的数据,一个是l,一个是s

3.学习中遇到的问题及解决

  • 问题1:SEED窗口不能铺满客户机,导致查看路由表信息,表项信息是乱的
  • 问题1解决方案:安装Vmware Tools,系统桌面即会自动调整以适应当前的显示器。参考http://ask.zol.com.cn/x/6772395.html
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX - ...

4.实践总结

  这次实践内容很多,特别感觉最后一个实践TCP会话实践有难度,另外就感觉Netwox这个工具的功能好强大,还需要继续学习这个工具的相关用法。

参考资料

猜你喜欢

转载自www.cnblogs.com/chengzhenghua/p/12613677.html
今日推荐