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

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

一、实验内容

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

1.1 网络安全属性与攻击模式

DEF:

  • 网络安全:是指网络系统的硬件、软件及其系统中的数据受到保护,不受偶然的或者恶意的愿意而遭到破坏、更改、泄露。系统连续可靠正常执行,网络服务不被中断。

  • 网络安全属性:

    • 机密性(Confidentiality):是指网络中的信息不被非授权实体获取和使用,通常基于加密算法进行保障。
    • 完整性(Integrity):是指信息未经授权不能进行改变的特性,即当需要时能够正常的存取或访问所需的信息与服务。
    • 可用性(Availability):是指授权实体访问并按需求使用的特性,即当需要时能够正常的存取或访问所需的信息与服务。
    • 真实性(Authentication):是指确保通信双方是它所声称的真实实体,而非假冒实体。
    • 不可抵赖性(Non-Repudiation):是指在通信中确保任何乙方无法抵赖自己曾经做过的操作的安全特性,包括对自己行为的不可抵赖及对行为发生时间的不可抵赖,有时也被称为不可否认性可审查性(Accountability)

    机密性可用性完整性构成了网络安全的三个基本属性,也被国外学者称为安全金三角模型(CIA)。但CIA模型并不能涵盖网络安全所面临的更多问题,国际电信联盟(ITU)在X.800安全体系标准中还定义了真实性不可抵赖性

  • 网络攻击基本模式:在网络通信中,攻击者可以采取四种基本的攻击模式,包括截获中断篡改伪造

    攻击模式 目的 违反属性 攻击技术
    截获 被动 获取网络通信双方的通信信息内容 机密性 嗅探、监听
    中断 主动 使正常的网络通信和会话无法继续 可用性 拒绝服务(Dos)
    伪造 主动 假冒网络通信方的身份,欺骗通信双方达到恶意目的 真实性 欺骗
    篡改 主动 对网络通信过程的信息内容进行修改,使得通信一方或双方接收到篡改后的虚假消息 完整性 数据包篡改,一般需要结合身份欺骗进行中间人攻击

    中间人攻击(Man-in-the-Middle Attack,MITM):攻击者通过各种技术手段,与通信双方建立起各自独立的会话连接,并进行消息的双向转发,使他们误认为是通过一个私有的信道在直接通信,而实际上整个会话都是由攻击者所截获和控制的。

    危害:对通信信息的企鹅去、传递篡改后的虚假信息、假冒身份是是恶意操作等。

    由于较难被通信双方发现,此方式已经早就成为攻击者常用的一种攻击方式,正在对电子商务、电子金融以及网络娱乐等网络应用造成严重威胁。

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

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

2. 网络层协议攻击

2.1 IP源地址欺骗(IP Spoofing)

DEF:指攻击者伪造具有虚假源地址的IP数据包进行发送,以达到隐藏发送者身份、假冒其他计算机的目的。

原理:IP协议在设计时只使用数据包中的目标地址进行路由转发,而不对源地址进行真实性的验证。比如:邮局寄送平信,按照信封格式是需要寄信人填写寄信地址,但邮局转发与投递信件时,只会查看收信人的地址,而不会去验证寄信地址的真实性,只要收信人地址正确无误并贴了邮票,信件就会被送达。

IP源地址欺骗示意图

利用IP源地址欺骗进行IP假冒的攻击步骤:

  1. 对受信任主机进行拒绝服务攻击,使其丧失工作能力,避免其在接受到响应包后影响欺骗过程。
  2. 对目标主机的TCP初始序列号(ISN)进行取样与猜测,ISN是指目标主机在接受SYN报文后,返回SYN\ACK报文中的SEQ值,攻击主机只有在随后进一步伪造的ACK报文中,将ACK值正确得设置为目标主机的ISN+1,才能够通过目标主机的验证,真正建立起连接,达到欺骗效果。
  3. 伪造源地址为受信任主机IP的SYN数据包,发送给目标主机。
  4. 等待目标主机将SYN/ACK包发送给已瘫痪的受信任主机。
  5. 再次伪装成被信任主机向目标主机发送ACK包,设置发送数据包的ACK值为预测目标主机ISN+1,可以通过发送大量不同ACK值的数据包以提高命中的可能性。
  6. 连接建立,假冒被信任主机与目标主机通信。

利用IP源地址欺骗进行IP假冒的攻击过程示意图:

防范措施:

  1. 使用随机化的ISN,使得远程攻击者无法猜测到通过源地址欺骗伪装建立TCO连接所需要的序列号,降低被源地址欺骗的风险。
  2. 使用网络层安全传输协议如IPsec,对传输数据包进行加密,避免泄露高层协议可供利用的信息及传输内容;
  3. 避免采用基于IP地址的信任策略,以基于加密算法的用户身份认证机制来替代这些访问控制策略;
  4. 在路由器和网关上实施包过滤是对抗IP源地址欺骗的一种主要技术,局域网网关上应启动入站过滤机制(ingress filtering),阻断来自外部网络但源IP地址却属于内部网络的数据包,这项机制能够防止外部攻击者假冒内部主机的IP地址。理想情况下,网关也应执行出站过滤机制(egress filtering),阻断来自内部网络但源IP地址却不属于内部网络的数据包,这可以防止网络内部攻击者通过IP源地址欺骗技术攻击外部主机。

2.2 ARP欺骗

DEF:有时候也被称为ARP下毒(ARP Poisoning),是指攻击者在有线以太网或无线网络上发送伪造ARP消息,对特定IP所对应的MAC地址进行假冒欺骗,从而达到恶意目的的攻击技术。

ARP协议工作原理:ARP 协议用于将网络主机的IP地址解析成其MAC地址,然后在局域网内通过MAC地址进行通信。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协议在进行IP地址到MAC地址映射查询时存在安全缺陷

  • 一方面采用了广播请求包方式在局域网段中询间映射关系, 但没有对响应结果进行真实性验证的技术流程与方法。
  • 另一方面ARP协议为提高效率, 设计了ARP缓存机制,以及会将主动的ARP应答视作有效信息进行接受,这使得 ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。

防范措施

  1. 静态绑定关键主机的IP地址与MAC地址映射关系;
  2. 使用相应的ARP防范工具;
  3. 使用VLAN虚拟子网细分网络拓扑并加密传输数据以降低ARP欺骗攻击的危害后果等。

2.3 ICMP路由重定向攻击

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

ICMP报文类型:

  • 差错报告类

    • 目的站不可达
    • 数据报超时
    • 数据报参数错误
  • 控制类

    • 请求/应答类
      • 回送请求/应答
      • 地址掩码请求/应答
      • 路由器恳求/通告
      • 时间戳请求/应答
    • 通知类
      • 源站抑制
      • 重定向

ICMP重定向攻击技术:利用ICMP路由重定向报文来改变主机的路由表,向目标机器发送重定向消息,自己则可以伪装成为路由器,使目标机器的数据报发送至攻击机从而加强监听。

步骤:

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

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

3. 传输层协议攻击

3.1 TCP RST攻击

DEF:也被称为伪造TCP重置报文攻击(Spoofed TCP reset packet),是指一种假冒干扰TCP通信连接的技术方法。

原理:TCP协议头的标志位中拥有一个“reset”比特位,绝大部分数据包中该标志位都置为0,而一旦该标志位值为1,则接受该数据包的主机将立即断开这个TCP会话连接,不再利用该连接进行数据包发送和接受,简单的书,TCP重置报文将直接关闭一个TCP会话连接。TCP重置报文的设计是为了避免在发生一些特殊情况时TCP会话仍继续传输无效数据。

示例:如图所示,TCP RST攻击中,攻击主机C可以通过嗅探的方式监视通信双方A、B之间的TCP连接,在获得源、目标IP地址及端口,以及序列号之后,就可以结合IP源地址欺骗技术伪装成通信一方,发送TCP重置报文给通信乙方,在确保端口号一致以及序列号落入TCP窗口之内的情况下,即可直接关闭这个TCP连接,造成通信双方正常网络通信的中断,达到拒绝服务的效果。

3.2 TCP会话劫持攻击

DEF:是一项更为复杂的TCP协议攻击技术方法,其目标是劫持通信双方已建立的TCP会话连接,假冒其中一方(通常是客户端)的身份,与另一方进行通信。

步骤:

  1. Victim主机与telnet服务器进行连接,并通过身份认证建立起会话;
  2. telnet服务器将会向Victim发送响应包,并包含服务器当前序列号(记为SVR_SEQ),以及期望客户端发送的下一个序列号(记为SVR_ACK);
  3. 攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得Victim和telnet服务期间的通信内容,然后就假冒Victim的IP地址及身份,向telnet服务器发送数据包,宣称自己就是ViCTIM。如此,攻击者就劫持了Victim与telnet服务期间的会话,并以Victim已经验证的身份执行任意命令;
  4. Victim 仍然会继续维持与 telnet 服务器之间的连接会话,但由于与telnet 服务器之间的ACK 值互相不再匹配产出“ACK风暴”(ACK Storm), 即在攻击机注入数据包后,客户端在接收到服务器的响应包后,将会发现ACK值不正确,并向服务器发回含有它所期望ACK值的 ACK 包,期望重新建立起同步状态,而服务器收到Victim的ACK 包后,也会发现它并不符合它的接收条件,因此它再次返回了一个ACK包,这样就构成了死循环,在网络上来回发送ACK, 直到其中一个ACK由于网络拥塞或其他原因丢失为止。

防范措施:禁用主机上的源路由,采用静态绑定IP-MAC映射表以避免ARP欺骗,引用和过滤ICMP重定向报文等。

3.3 TCP SYN Flood拒绝服务攻击

DEF:目前比较有效而又非常难于防御的一种网络攻击方式,它的目的就是使服务器不能够为正常访问的用户提供服务。

TCP SYN Flood:又称为SYN洪泛攻击,它利用TCP三次握手协议的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而不能够为正常用户提供服务。

防范措施:SYN-Cookie技术和防火墙地址状态监控技术。

3.4 UDP Flood拒绝服务攻击

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

防范措施:禁用或过滤监控和响应服务;禁用或过滤其他的UDP服务等。

二、实践过程

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

Q:

在正式开始实践之前,我们先获取需要用到的各个虚拟机的IP地址MAC地址

这里需要注意的是,三个虚拟机必须在同一局域网内。

桥接IP地址 IP地址 MAC地址
Kali(攻击机) 192.168.0.103 192.168.200.2 00:0c:29:19:97:d1
SEEDUbuntu 192.168.0.105 192.168.200.4 00:0c:29:c4:ad:c6
Metasploitable(靶机) / 192.168.200.125 00:0c:29:ed:59:2c

首先,启动Kali,打开终端,输入sudo apt-get install netwox,安装netwox 。

ARP缓存欺骗攻击

启动SEEDUbuntu,输入ping 192.168.200.125,ping Metasploitable,从而得到ARP缓存表,输入arp -a即可查看。

之后,在Kali中输入 netwox 80 -e 00:0c:29:19:97:d1 -i 192.168.200.125,这里80netwox的80号工具00:0c:29:19:97:d1为Kali的MAC地址,192.168.200.125为Meta的IP地址。

这条命令执行后,便开始在局域网内进行广播。再次查看ARP缓存表,发现Meta的MAC地址已经被替换成Kali的MAC地址。

这时候,在Kali上使用wireshark发现它已经能捕获到来自SEED和Meta的数据包。

最后,在SEED中输入sudo arp -d 192.168.200.125删除ARP缓存。

ICMP重定向攻击

为了能够上网,我这里将SEED和Kali都改成了桥接模式,所以IP发生改变

首先,在SEED中输入ping baidu.com,打开wireshark发现已经有了数据。

之后,在Kali上输入netwox 86 -f "host 192.168.0.105" -g 192.168.0.103 -i 192.168.0.1,意为嗅探到SEED的数据包时,以192.168.0.1的名义发送ICMP重定向报文,使192.168.0.103成为默认路由器。

打开wireshark,再次ping百度,发现访问百度的数据包已经被重定向到192.168.0.103

SYN Flood攻击

在SEED中输入 telnet 192.168.200.125,对Meta发起telnet访问,用户名密码均为msfadmin

在Kali上输入netwox 76 -i 192.168.200.125 -p 23,即用76号工具,对23号端口发起攻击。

打开wireshark查看,发现攻击机向靶机发送了大量虚假IP发出的SYN请求,并且这些请求没有MAC地址,无法追查谁是攻击者,而且我的电脑的风扇开始了疯狂旋转!

19

SEED对Meta的访问也连不上了。

20

TCP RST攻击

依旧是使用SEED对Meta发起telnet访问。

在Kali上输入netwox 78 -i 192.168.200.125,即用78号工具对Meta发起TCP RST攻击。

回到SEED发现telnet的连接已经被断开

TCP会话劫持攻击

首先打开Kali,在上面安装hunt,安装成功。

输入hunt,进入hunt的操作界面,输入l

hunt1

显示 no connections are available,遂放弃。

依旧是使用SEED对Meta发起telnet访问。

在Kali上打开wireshark,输入过滤条件 tcp.port == 23,然后再SEED中输入ls,查看Kali的wireshark,发现有数据为ls的数据包。

23

在没有使用其他命令的情况下,点开最后一条数据的Transmission Control Protocol,查看Source PortDestination PortSquence number(raw)Next sequence numberAcknowledge number

之后伪造一个发送的包,所以把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。

在Kali中输入netwox 40 --ip4-dontfrag --ip4-offsetfrag 0 --ip4-ttl 64 --ip4-protocol 6 --ip4-src 192.168.200.4 --ip4-dst 192.168.200.125 --tcp-src 45346 --tcp-dst 23 --tcp-seqnum 1440271921 --tcp-acknum 2005500834 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "3233343536"来构造一个假包

--ip4-src源IP和--tcp-src源端口都是SEED的;
--ip4-dst目的IP和--tcp-dst目的端口是Meta的,因为是telnet连接,目的端口为23
序列号和确认号为之前图片红框的数据;
--tcp-seqnum序列号和--tcp-acknum确认号,也同样
--tcp-data伪造的包里的数据,以十六进制值表示,我输入的是3233343536,为23456。

之后查看wireshark,可以看到发送的山寨包,并且开始了ACK风暴

三、学习中遇到的问题及解决

Q:hunt不知道为什么不能用,百度之后也没有该问题的解决,不知道为什么。

四、实践总结

这次的实践进行的很顺利,感觉这些攻击方式都很有意思,结合书上的原理也理解的比较到位,实践还是比较重要的,可以直接看到攻击的结果,对这些攻击,有直观的印象。

posted @ 2020-04-01 14:36  王昱皓  阅读(205)  评论(0编辑  收藏