20211917 2021-2022-2 《网络攻防实践》第四周作业

1.知识点梳理与总结

1.1实验目标

网络攻防实践第4次实验,在网络攻防实验环境中完成TCP/IP协议栈重点协议的攻击实验,包括ARP缓存欺骗攻击、ICMP重定向攻击、SYN Flood攻击、TCP RST攻击、TCP会话劫持攻击。

1.2镜像准备

这一实践中使用的主要是两种虚拟机,第一种是 Kali虚拟机, Kali装备了大量的攻击软件和良好的操作界面,可以方便地进行攻击。第二个是 Windows XP Attacker,因为 Windows具有方便的图形接口和资源管理,所以这一次我们会把它当作目标来测试我们的攻击结果。此外,我们还准备了一个带有 Linux操作系统的 Seed和观察者。

1.3实验原理及实验内容

1.3.1 TCP/IP协议栈攻击概述

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

  • 截获是一种被动的攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反。
  • 中断攻击是使目标的正常网络通信和回话无法继续,是对可用性的破坏。
  • 伪造则是假冒网络通信方的身份,欺骗通信对方达到恶意目的。
  • 篡改则是对网络通信过程的内容进行修改。

1.3.2 TCP/IP网络协议栈安全缺陷与攻击技术

1.3.3网络攻击的基本模式

1)被动攻击--截获

  • 截获是一种被动攻击模式,其目的是获取网络通信双方的通信信息内容,是对机密性的违反,具体攻击技术为嗅探(Sniffing)与监听(Eavesdropping)。
    2)主动攻击--中断、篡改与伪造
  • 中断攻击的目标是致使正常的网络通信和会话无法继续,是对可用性的破坏,具体攻击技术为拒绝服务(DenialofService,DoS)。
  • 伪造则是假冒网络通信方的身份,欺骗通信对方达到恶意目的,是对真实性属性的背离,具体攻击技术为欺骗(Spoofing)。
  • 篡改则是对网络通信过程的信息内容进行修改,使得通信一方或双方接收到篡改后的虚假信息,是对完整性的违背,具体技术为数据包篡改。
    如图所示,为网络攻击的基本模式。

1.3.4 ARP欺骗

  • ARP欺诈是一种通过利用有线以太网或无线网路传输虚假 ARP信息来实现对 IP地址的虚假欺骗。ARP协议在进行 IP地址到 MAC地址的映射时,通过广播请求包的形式来查询本地网络的映射关系,但是不能验证响应的真实性;另一方面, ARP协议为了提高 ARP的效率,设计了 ARP的缓冲机制,并将 ARP响应视为有效的消息;这就导致 ARP快取中经常会有一个虚假 IP位址与 MAC位址之间的对应关系来进行欺骗。
  • 预防:将 IP地址与 MAC地址映射的静态绑定,采用 ARP安全防护,利用虚拟子网划分网络拓扑,进行加密传输等。
    这是一个 ARP的欺骗程序,如下所示。

1.3.5 ICMP重定向攻击

  • ICMP路由重新导向攻击是一种利用网络攻击的方法,通过假装路由器发送一个错误的 ICMP路由路径控制报文,使被攻方选择攻击者所指定的路径,从而实施侦测或伪造的攻击。
  • 攻击节点通过使用 IP源地址欺骗技术伪装成网关 IP地址,将 ICMP重新指向数据包发送到被攻击的节点,将新的路由器 IP地址作为攻击节点。被攻破的节点会监控 ICMP的数据包,一旦被检测成功,就会通过新的路由器和外部网络进行通讯,从而让攻击者可以进行窃听和嗅闻。
  • 预防:对 ICMP分组进行筛选,建立防火墙过滤,确定 ICMP是否来自本地路由器等。
    如图所示, ICMP的重新导向攻击程序。

1.3.6 TCP RST攻击

  • TCP RST攻击又称伪造 TCP复位包攻击,是一种技术手段,通过对 TCP通讯进行虚假的干扰。
  • 原则: TCP报头有一个重设,标记在1,接收报文的主机将要中断 TCP会话。TCP复位消息是直接关掉 TCP会话的连接。攻击者 C能够用嗅探法监控通信双方的 TCP链路。在获取源地址、目标 IP地址、端口和序列号之后,再利用 IP源地址欺骗技术,冒充通讯一方,将 TCP复位消息传送到对方。
  • 保证端口号和序号落在 TCP上会导致通讯双方的正常网络通讯中断,从而实现对服务的拒绝。

1.3.7 SYN洪范攻击

  • 服务拒绝服务是一种在某一次攻击之后,被袭击目标无法及时地为其提供必要的业务。在广泛意义上,如果一次袭击造成了服务器无法正常地进行服务,那就是对服务的拒绝。SYN Flood是目前最为常见的一种攻击手段,它通过使用 TCP的漏洞来发出许多虚假的 TCP连接,导致被攻击方的网络资源枯竭(CPU负载过多或者没有足够的记忆)。
  • 建立TCP连接的标准过程是这样的:

第一步,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;
第二步,服务器在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加1,ACK即确认(Acknowledgement);
第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加1,到此一个TCP连接完成。
以上的连接过程在TCP协议中被称为三次握手。

  • 问题在于 TCP三次握手,如果一个用户将 SYN消息发往伺服器后,如果服务器在 SYN+ ACK回复消息后,将不能接收到客户机的 ACK报文(SYN+ ACK),在此情形下,服务器将会重新尝试(重新将 SYN+ ACK),然后在此之后放弃该未完成的连接。当一个使用者发生了一个错误时,一个线程在一个服务器上等候1分钟,这个问题不算太严重,但是当一个恶意的攻击程序在很多次的时候,这个系统就会花费很多的时间来维持一个巨大的、半连通的清单。事实上,当 TCP/IP协议协议不够好的时候,最终的后果就是堆叠过多,即便是服务器端的系统再强,也会因为黑客的 TCP连接要求而无法回应(因为一般的用户要求很低),所以在普通用户的眼中,服务器会因为 SYN Flood的入侵而无法回应。

1.3.8 TCP会话劫持

  • 因为 TCP协议不能认证 TCP的传送数据,因此当我们了解到 TCP连接上的 seq和 ack时,可以很方便的伪造发送数据包,然后伪装成 TCP会话劫持(TCP会话)。
  • Session劫持使用 TCP/IP的工作原理来设计攻击.TCP采用的是终端对终端的连接,也就是 TCP的源 IP, TCP端口号,目标 IP;目标 TCP端号码是唯一识别 TCP链接的方式。TCP在进行数据传送时, TCP包头的两个域编号(seq)和一个应答序列(ackseq)是很关键的。序列号(seq)和应答序列(ackseq)是与承载 TCP数据有效载荷数量的数字关系。序号字段(seq)指明了在报文中传输的数据在传输主机要传输的全部数据流中的序列号,而确认序列字段(ackseq)指明了发送消息的主机想要接收的下一八位组的顺序号。这样,一个主机接收的两个相邻 TCP包的序列号和应答序列是这样的:它要发送的报文的 seq值应该等于它刚刚接收到的报文的 ackseq值,而要发送报文中的 ackseq值应该是它所接收报文中 seq的值加上该报文中所发送的 TCP有效载荷的长度。
  • TCP会话劫持的攻击模式可以针对任何 TCP基础的应用,例如 HTTP, FTP, Telnet,等等。
  • 攻击者需要的是窥视 TCP通讯中的两个主机间的信息,以便攻击者能够知道这个包的源 IP、源 TCP端口号、目的 IP;目标 TCP端号码,这样就可以知道下一 TCP包中,一个主机对下一 TCP包的 seq和 ackseq值的需求。在此情况下,当合法的主机接收到其他合法的主机的 TCP包之前,攻击者会根据拦截的消息给主机发送一个 TCP包,并在此主机之前接收到了攻击包;这样就可以在被攻击的主机和被攻击的主机之间建立一个合法的 TCP会话。有效载荷的攻击信息可以改变被攻击的主机对下一次要接收的 TCP包中的应答序列(ackseq)的请求进行更改,使得其他合法的主机发送给被攻击的主机的消息被被攻击的主机所拒绝。

2.实验步骤

2.1 ARP缓存欺骗攻击

2.1.1 ARP缓存欺骗攻击实验环境

  • 首先,我们需要三个设备,我选择了 Kali作为攻击设备,另外两个作为普通通讯设备(目标1: Linux MetaSploitable,目标2:win2k)。

2.1.2 ARP缓存欺骗攻击步骤

  • 第一步:先把 kali和win2k的操作系统 ping到 Linux MetaSploitable上,然后在 kali上打上 arp- a,然后在 Kali和 Linux Meta Splotable中键入 arp a,就可以找到和我进行通信的 MAC位址了。这样就可以确定三个被击中的机器的 MAC数据。

  • 第二步:在攻击机上 kali上,进行下列指令 netwox 80- e (攻击机MAC位址)- i (目标 ip)来蒙蔽目标1,即 linux,将win2k的 mac位址变为 kali mac。

  • 第三步:在目标1: Linux MetaSploitable上再键入 arp- a,就能看见目标2:win2k的 mac位址被攻击机 kali的 MAC位址取代。ARP快取欺诈已被执行。

2.2 ICMP重定向攻击

2.2.1 ICMP重定向攻击实验环境

  • 首先,我们要有两个计算机(在一个网络上),我用 kali做攻击,SEED_VM做目标。

2.2.2 ICMP重定向攻击步骤

  • 步骤1:首先,在 kali上安装跟踪器跟踪路径网关: sudoapt-get install traceroute
  • 步骤2:在 kali使用sudo traceroutebaidu.com,路由跟踪百度之间的路径(如果中间节点为***,则通常会将虚拟主机的网络设置为桥接,不过不会对测试造成任何影响),然后开启 Wireshark监控系统。

  • 步骤3:如上面所示,您可以在 wireshark中找到缺省网关192.168.200.1目标 MAC位址00:50:56: ec: be:b2。(两个机器在一个网络上,因此,它们的网口是一样的)

  • 步骤4:apt-getwox netwox 86- f" host192.168.200.7"- g192.168.200.3- i192.168.200.1(Kali)作为其默认路由,并以192.168.200.1(Kali)作为其默认路由,并以192.168.200.1的名称192.168.200.1(Kali)作为其默认路由,然后观察 Wireshark数据分组的状况。

  • 步骤5:通过SEED_VM的 Ping,我们可以看到,它对百度的访问被重新导向到了192.168.200.3(下一次跳跃为192.168.200.3)。

2.3 SYN Flood攻击

2.3.1 SYN Flood攻击实验环境

2.3.2 SYN Flood攻击实验步骤

  • 步骤1:通过 SEED VM启动登录 telnet192.168.200.125,并输入用户名(metasploitable-linux登录的用户名称)。

  • 步骤2:使用 netwox 76- i在 Kali上使用 netwox 76- i的76- i对目标23端口进行 SYN Flood攻击` netwox 76- i192.168.200.125- p 23',必须等一段时间后,攻击机的性能尽量提高(4核4 G),而攻击机的性能则尽量降低(64 M)。

  • 第3步:现在打开 Wireshark,可以看见攻击机发出 SYN连接请求,该请求没有 MAC地址,也就是一般用来 telnet登陆的端口,也就是 SYN连接请求,因此不能追溯攻击者的真正身份。

  • 步骤4:现在返回 SEED虚拟机,发现 telnet存取对象不能被访问。

2.4 SYN Rst攻击

2.4.1 SYN Rst攻击实验环境

2.4.2 SYN Rst攻击实验步骤

  • 步骤1:与 TCP Flood攻击相似,在 kali中键入:' netwox 78- i192.168.200.125`(此为78)

  • 步骤2:继续登录"192.168.200.125`" SEED虚拟机"中的 telnet",始终无法使用该服务。

  • 步骤3:kali虚拟机终止了该终端的操作,然后可以通过远程 telnet登录192.168.200.125

2.5 TCP会话劫持攻击

2.5.1 TCP会话劫持攻击实验环境

2.5.2 TCP会话劫持攻击实验步骤

  • 步骤1:IP转发函数在 kali中开启了节点(kali使用 ARP欺诈来进行中间人攻击)。

  • 步骤2:kali中打开ettercap -G

  • 步骤3:在“Hosts”菜单中,选中“Scan for hosts”,然后在“Hosts list”菜单中,选中 SEED VM192.168.200.7 WinXPAttacker192.168.200.4分别为target1target2

  • 第4步:在“MITM”菜单中选择“ARP poisoning”来进行 ARP欺骗,然后选择 Sniff remote连接

  • 第五步:在 SEED虚拟机中执行 arp- a指令,以显示 MAC位址快取,会发现 ARP欺诈攻击已经成功。

  • 步骤6:SEED虚拟机结点 telnet到 WinXPattack的 telnet192.168.200.4

  • 步骤7:在 Kali结点上,当 Ettercap (查看-连接)中, Ettercap获得了两台 telnet的登陆的主机的信息(甚至还截取了 winxpattack的帐号口令),还可以进行数据的插入和断开。

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

问题1:icmp路由重定向问题中一开始主机B的路由表一直不更新?
问题1解决:百度后找到了路由表格的更新要求 xp点开网页,比如百度,试了试后才发现路由表已经更新。

问题2:以下图片中的 IP位址和子网掩码有何错误??

问题2解决:地址冲突。

4.学习感想和体会

  • 本章的内容相对比较多,实践起来也不是那么轻松。学习实践的内容主要有网络层协议攻击:如IP源地址欺骗、ARP欺骗、ICMP路由重定向攻击;传输层协议攻击:如TCP RST 攻击、TCP会话劫持攻击、TCP SYN Flood拒绝服务攻击、UDP Flood拒绝服务攻击等。实践过程中也许会经常遇见各种错误,但是一般还是能通过和同学交流以及百度解决的。
posted @ 2022-04-10 17:24  啊一只羊羊羊  阅读(197)  评论(0编辑  收藏  举报