20199109 2019-2020-2 《网络攻防实践》第五周作业

TCP/IP网络协议攻击

总体结构

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10553
这个作业在哪个具体方面帮助我实现目标 学习TCP/IP网络协议攻击的原理以及攻击方式
作业正文.. 见一和二

一、实践内容

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

网络安全属性与攻击模式

  • 网络安全属性包括:

    • 机密性:未经授权不能获取使用信息
    • 完整性:信息未经授权不能改变
    • 可用性:能正常存取和访问
    • 真实性:确保通信对方是真实实体
    • 不可抵赖性:通信任一方不能抵赖自己曾经的操作
  • 网络攻击基本模式包括:

    • 截获:破坏机密性,主要是嗅探和监听
    • 中断:破坏可用性,主要是dos拒绝服务攻击
    • 篡改:破坏完整性,主要是中间人攻击
    • 伪造:破坏真实性,主要是欺骗技术
      截获是被动攻击,其余为主动攻击。

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

  • TCP/IP网络协议栈层次分为网络接口层、互联层、传输层与应用层
    • 网络接口层:这是协议栈的最低层,主要完成数据帧的实际发送和接收。协议常用以太网协议,可能受到嗅探或MAC地址欺骗攻击
    • 互联层/网络层:处理分组在网络中的活动,例如路由选择和转发等,这一层主要包括IPv4协议、ARP、ICMP协议等。IP协议缺乏IP地址的身份认证机制,易受到IP地址欺骗。ARP协议采用广播问询并且没有验证机制,易受到ARP欺骗。ICMP易受到路由重定向攻击,还可能被滥用造成拒绝服务攻击。
    • 传输层:主要功能是提供应用程序之间的通信,这一层主要是TCP和UDP协议。都可能受到泛洪攻击。
    • 应用层:用来处理特定的应用,针对不同的应用提供了不同的协议。常用协议如HTTP、FTP、DNS等,可能被嗅探监听、欺骗或中间人攻击。

2、网络层协议攻击

IP原地址欺骗

  • IP协议只对数据包中的目标地址进行路由转发,不对源地址进行真实性的验证。IP假冒的攻击步骤通常如下:1)对受信任主机进行拒绝服务攻击,使其丧失工作能力;2)对目标主机的TCP初始序列号进行取样与猜测;3)伪造源地址为受信任主机IP的SYN数据包发送给目标主机;4)等待目标主机将SYN/ACK包发给已瘫痪的受信任主机;5)以受信任主机IP向目标主机发送ACK包;6)连接建立,假冒被信任主机与目标主机通信。

  • 为预防IP源地址欺骗,可以1)使用随机化的初始序列号;2)加密传输数据包;3)避免采用基于IP地址的信任策略;4)在路由器和网关上实施包过滤

ARP欺骗

  • ARP协议用于将网络主机的IP地址解析成MAC地址,然后在局域网内通过MAC地址进行通信。

  • ARP欺骗攻击的步骤:1)广播ARP请求目的节点的MAC地址;2)攻击节点不断向源节点发送ARP响应包,说它的MAC地址就是目标地址;3)源节点的ARP缓存就保留了错误的IP地址和MAC地址映射;4)本应发给目的节点的数据包发给攻击节点;5)用同样方法和目的节点也建立通信,这样就构成了中间人攻击。

  • ARP欺骗攻击防范方法:

    • 静态绑定关键主机的IP地址和MAC地址映射关系
    • 使用相应的ARP防范工具
    • 使用虚拟子网细分网络拓扑
    • 加密传输数据

ICMP路由重定向攻击

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

  • ICMP报文分为两类:差错报告类(目的站不可达、数据报超时、数据包参数错误)、控制类报文(请求/应答类和通知类)。

  • ICMP重定向攻击就是利用ICMP路由重定向报文改变主机路由表,向目标主机发送重定向消息,伪装成路由器,使得目标机器的数据报文发送至攻击机从而加强监听。

  • 攻击步骤如下:1)攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。2)被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新的路由器。3)攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。4)在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向被攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。

  • 防范措施如下:1)根据类型过滤一些ICMP数据包;2)设置防火墙过滤;3)对ICMP重定向报文判断是不是来自本地路由器。

3、传输层协议攻击

TCP RST攻击

  • TCP RST攻击也被称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。
  • TCP协议头标志位有一个reset,若标志位置为1,接收该数据包的主机立即断开这个TCP会话连接。TCP重置报文就是直接关闭掉一个TCP会话连接。
  • 攻击方法如下:1)攻击主机C通过嗅探方式监视通信双方A、B之间的TCP连接。2)获得源、目标IP地址、端口、序列号之后,接可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信另一方。3)在确保端口号一致及序列号落入TCP窗口内就可直接关闭此TCP连接,达到拒绝服务的效果。

TCP会话劫持攻击

  • TCP会话劫持是劫持通信双方已经建立的TCP会话连接,假冒其中一方的身份,与另一方进行进一步通信。其中最核心的就是通过TCP对会话通信方的验证。

  • 攻击过程如下:1)victim主机与telnet服务器进行连接,并通过身份认证建立起会话。2)telnet服务器将会向victim发送响应包,并包含服务器当前序列号(SVR_SEQ)以及期望客户端发送的下一个序列号(SVR_ACK)。3)攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得victim和telnet服务器间的通信内容,然后假冒victim的IP地址及身份,向talent服务器发送数据包,声称自己是victim。攻击者发送数据包中的序列号必须满足条件:SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND。4)victim仍然会继续持续talent服务器之间的连接会话,但是由于与telnet服务器之间的ACK值互相不匹配出现ACK风暴。

  • 防范措施如下:1)禁用主机上的源路由;2)采用静态绑定IP-MAC映射表以及避免ARP欺骗;3)引用和过滤ICMP重定向报文。

TCP SYN Flood拒绝服务攻击

  • 利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。
  • 攻击步骤如下:1)攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。2)受害主机向源地址返回SYN/ACK包,并等待源端返回ACK包。3)大部分伪造源地址是非活跃的,因此永远不会返回ACK报文,受害主机继续发送SYN+ACK包,当半开连接报文填满,服务器也就拒绝新的连接。
  • 防范措施主要包括:1)SYN-Cookie技术,即在连接信息未完全到达前不进行资源的分配。2)防火墙地址状态监控技术,对网络中TCP连接进行状态监控和处理。

UDP Flood拒绝服务攻击

  • 原理是通过向目标主机和网络发送大量UDP数据包,造成目标主机显著的计算负载提升,或者通过网络拥塞,从而使得目标主机和网络陷入不可用的状态,造成拒绝服务攻击。
  • 防范措施包括:1)禁用或过滤监控及响应服务。2)禁用或过滤其他UDP服务。

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

监测、预防和安全加固

  • 网络接口层:主要监测防御的是嗅探。可以检测出局域网的监听点;优化网络结构;对关键的网关和路由做好防护。
  • 互联层:采用多种检测和过滤技术发现和阻断网络中可能出现的欺骗攻击。
  • 传输层:实现加密传输和安全控制。
  • 应用层:采用加密、数字签名等技术。

二、实践过程

完成TCP/IP协议栈重点攻击实验,具体包括ARP缓存欺骗攻击、ICMP重定向技术、SYN Flood攻击、TCP RST攻击以及TCP会话劫持攻击

  • 在实验开始之前,安装需要的netwox,即命令apt-get install netwox

1、ARP缓存欺骗攻击

选择A,B,C三个虚拟机,kali为攻击机

机器 IP地址 MAC地址
A(win靶机) 192.168.200.124 00:0c:29:4d:65:86
B(win攻击机) 192.168.200.5 00:0c:29:67:45:b2
C(kali) 192.168.200.3 00:0c:29:fd:85:85

在kali中命令:netwox 33 -b A_MAC -g B_IP -h A_MAC -i A_IP
其中,-b就是显示网络协议下的相关模块,-g是显示与客户端相关的模块,-h是显示与服务器相关的模块,-i是显示与检测主机连通性相关的模块。这个语句就使A保存了错误的映射IP(B)/MAC(C)。
同样我们可以命令netwox 33 -b B_MAC -g A_IP -h B_MAC -i B_IP,使B保存错误的映射IP(A)/MAC(C)
从下图中我们可以看出实现了ARP欺骗

我们可以去靶机上查看一下。输入命令:arp-a,可以看到成功冒充

在攻击机中输入 cat 1 > /proc/sys/net/ipv4/ip_forword 开启攻击机的路由转发功能。
在winattacker中进行ftp登录,在kali的wireshark中可以捕获

2、ICMP重定向技术

机器 IP地址
攻击机kali-A 192.168.200.3
受害机win靶机 192.168.200.124
路由 192.168.200.1

在这里我们来改win靶机的路由表
首先查看win靶机的路由表信息

之后在kali中输入命令:netwox 86 -f "host B-IP" -g A-IP -i 路由IP。

之后在B上随便打开一个网页,再次查看路由表信息,就会发现已经发生了变化,如下图示

3、SYN Flood攻击

在这里我用的是Windows的攻击机向Windows靶机发起登陆,即telnet 192.168.200.124
然后在kali上用netwox的76号工具对靶机的23号端口进行SYN Flood攻击

去Windows攻击机查看,发现已经断开连接(我这一直没有自动弹出来断开,但是再登陆就显示断开)

我们去wireshark上查看也能发现,攻击机向靶机发送了大量虚假IP发出的SYN请求,且无法溯源

4、TCP RST攻击

在这里同样用Windows的攻击机向Windows靶机发起Telnet访问,用kali攻击机对靶机进行TCP RST攻击
首先是建立Telnet连接
然后我们在kali上利用netwox的78号工具对靶机进行TCP RST攻击,命令为:netwox 78 -i 192.168.200.124
之后我们去Windows攻击机查看,发现已经断开连接

去wireshark查看也能发现发生了TCP RST攻击

5、TCP会话劫持攻击

机器 IP地址
winxp攻击机-A 192.168.200.5
win靶机-B 192.168.200.124
kali-C 192.168.200.3
因为连接方式发生了改变,kali的IP就变了
  • 在kali中打开节点的IP转发功能(利用ARP欺骗进行中间人攻击),方法如下图所示

  • 在kali中打开Ettercap工具,进行ARP欺骗
  • 在Ettercap中扫描host之后,把Windows攻击机和靶机分别添加到target,如下图示:

  • 然后进行ARP欺骗

  • 在Windows攻击机和靶机中查看MAC地址,发现已成功欺骗

  • 把Windows攻击机Telnet靶机,在攻击机中输入ls,在kali的wireshark中我们能看到l和s的数据包

  • 在kali的Ettercap中打开连接数据,并点击inject data,即可向两端输入数据

  • 我们打开wireshark可以看到大量TCP Dup和TCP Retranmission包,可以说明我们劫持成功了

以及之后我们发现win攻击机仍在telnet会话,但是发生TCP Retranmission,也就是超时引发数据重传,以及后面kali在和靶机进行正常telnet连接,说明劫持成功

三、学习实践中遇到的问题

这次实践最大的问题是各种上不去网的问题

首先是kali上不去网,因为此次实验需要install netwox,然后安装的时候查error查改了半天也不行,大多是让换源的,后来定睛一看发现是我的kali没网了...然后就又各种查,最后发现了问题所在

之后通过https://blog.csdn.net/lienze2010/article/details/91868161这篇帖子解决了问题,这花了我一个下午的时间,从开始就卡壳内心是崩溃的。。
其他的像seedubuntu也一会能上网一会断开,通过更改网络连接模式基本可以解决。不断的改网络连接模式使我的IP一直在变。。

虚拟机不稳定

在实验过程中,同样的方法,前一天做还可以,睡一觉起来就不行了,也不知道为什么,之前能ping通的偶尔也不通了

四、实践总结

经历了这么多次实验,没有一次是顺利完成的,总有各种bug,做实验加写博客要花好久好久,但是只学理论不实践是不行的,在动手的过程中才更能理解那些攻击过程。wireshark用的还是不熟练,眼花缭乱,有时候不知道该怎么找,哎,路漫漫其修远兮!

posted @ 2020-03-31 11:48  黄雅婷  阅读(299)  评论(0编辑  收藏  举报