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

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

1.实践内容

TCP/IP网络协议攻击

网络安全属性与攻击模式

  • 网络安全属性:机密性(confidentiality)、完整性(intergrity)和可用性(availability)【这三个构成了网络安全的三个基本属性,也被称为安全金三角模型(CIA)】、真实性(authentication)和不可抵赖性(Non-Repudiation)

    • 机密性:指网络中的信息不被非授权实体获取和使用,通常基于加密算法进行保障。

    • 完整性:是指信息未经授权不能改变的特性,即信息在存储和传输过程中保持不被修改、不被破坏和丢失的特性。

    • 可用性:是指被授权实体访问并按需求使用的特性,即当需要时能够正常地存取和访问所需信息的服务。

    • 真实性:是指确保通信双方是它所声称的真是实体,而非假冒实体。

    • 不可抵赖性:是指在通信中确保任何一方无法抵赖自己曾经做过的操作的安全特性,包括对自己行为的不可抵赖及对行为发生时间的不可抵赖,有时也被称为不可否认性和可审查性。

  • 网络攻击基本模式:截获、中断、篡改、伪造

    • 截获:被动攻击模式,目的是获取网络通信双方的通信信息内容。是对机密性的违反,攻击技术为嗅探与监听。

    • 中断:主动攻击模式,目的要致使正常的网络通信和会话无法继续,是对可用性的破坏,攻击技术为拒绝服务。

    • 伪造:主动攻击模式,目的要假冒网络通信方的身份,欺骗通信对方达到恶意目的,是对真实性的背离,攻击技术为欺骗。

    • 篡改:主动攻击模式,目的要对网络通信工程的信息内容进行篡改,使得通信一方或双方接收到虚假消息,是对完整性的背离,攻击技术为数据包篡改,一般需要结合身份欺骗进行中间人攻击。

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

  • TCP/IP网络协议栈在设计时采用了分层模型,分为了网络接口层、互联层、传输层与应用层,每一层负责不同的功能,各自具有相应的网络协议,每个层次上都有一定的安全问题

    • 网络接口层:以太网协议,当网络接口处于混杂模式可以直接嗅探并截获数据包,同时缺乏对MAC地址源的身份验证机制,实现MAC地址欺骗。

    • 互联层:IP协议只根据目的地址进行转发,不检查源IP地址是否真实有效,即缺乏IP地址身份认证机制,容易遭到IP地址欺骗。同时还包括源路由滥用、IP分片攻击,以及ARP欺骗、ICMP重定向、Smurf攻击等。

    • 传输层:TCP建立会话之后的连接过程中,非常容易遭受伪造和欺骗攻击,攻击者可以进行TCP RST攻击直接中断会话过程。同时TCP的三次握手过程存在设计缺陷,攻击者可以进行SYN泛洪攻击。

    • 应用层:一些流行的应用层协议HTTP、FTP、POP3/SMTP、 DNS等均缺乏安全设计。

原始报文伪造技术及工具

  • 欺骗技术即攻击者伪造出特制的网络数据报文,发送给目标主机,使其在接受处理这些伪造报文时遭受攻击。

  • Netwox是一个开源工具包,可以创建任意的TCP/UDP/IP数据报文,支持命令行方式构造及发送伪造包,可以通过脚本编程实现自动化处理

网络层协议攻击

IP源地址欺骗

  • 原理:IP协议在设计时只是用数据包中的目标地址进行路由转发,从而不对原地址进行真实性验证。IP 数据包的源地址会被正确地设置为数据包所发出的IP地址,但是怀有恶意目的的攻击者会修改IP协议包头,使其包含一个不同的虚假IP地址,使其看起来像是从另外一个地址发出的,这样就达到了欺骗目标和隐藏发送源的目的。

  • IP假冒的攻击过程:

    • 对受信任的主机进行拒绝服务攻击,使其丧失工作能力

    • 对目标主机的TCP初始序列号(ISN)进行取样和猜测

    • 伪造源地址为受信任的主机IP的SYN数据包,发送给主机

    • 等待目标主机将SYN/ACK包发给已经瘫痪的受信任的主机

    • 再次伪装成被信任的目标主机发送ACK包、建立连接。

  • IP源地址欺骗技术的应用场景:拒绝服务攻击,网络扫描

  • 进行IP源地址欺骗可以使用的工具:Netwox、 nmap

  • IP源地址欺骗技术的防范措施:

    • 使用随机化的初始序列号,让他无法伪装

    • 使用网络层安全传输协议(IPsec)

    • 避免采用基于IP 地址的信任策略

    • 包过滤

ARP欺骗

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

  • 原理:ARP协议在设计时认为局域网内部的所有用户都是可信的,但是局域网内可以存在内部攻击者,或者已经渗透进局域网的外部攻击者或恶意代码。这使得ARP缓存非常容易被注入伪造的IP地址到MAC地址的映射关系,从而进行欺骗。

  • ARP协议完成IP地址到MAC地址映射的过程步骤:

    • 源节点A发送数据包给目的节点B时,会通过ARP协议在局域网段广播ARP请求包,询问节点B的IP地址所映射的MAC地址。

    • 攻击节点C说IP目标IP地址所映射的MAC地址是他自己,并不断地向源节点发送ARP响应包。

    • 由于攻击节点C不断地发送响应包,这样源节点上会强制以C发送响应包中的信息来更新ARP缓存。

    • 当源节点A要再次发送数据包到节点B时,直接将数据包发送到C对应的MAC地址,即攻击节点C,这样C就通过欺骗假冒了目的节点B。

    • 如果ARP欺骗攻击的是网关节点,将导致整个局域网所有节点经过网关出入的数据包都会首先通过攻击节点,可能被嗅探、监听和恶意修改。

  • ARP欺骗技术的应用场景:交换式网络、构造中间人攻击、恶意代码。

  • 进行ARP欺骗技术可以使用的工具:Netwox、DSniff套装中的Arpspoof工具、arpison、Ettercap

  • ARP欺骗攻击防范措施

    • 静态绑定关键主机的IP地址和MAC地址映射关系

    • 使用响应的ARP防范工具

    • 使用VLAN虚拟子网细分网络拓扑,并加密传输数据

ICMP路由重定向攻击

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

  • ICMP路由重定向机制原理:ICMP报文分为两种类型:差错报告类、控制类报文。(差错报文分为:目的站不可达、数据报超时、数据包参数错误,控制类报文:请求/应答类和通知类)。

  • ICMP路由重定向攻击技术:

    -攻击节点利用IP源地址欺骗技术,冒充网关IP地址,向被攻击节点发送ICMP重定向报文,并将指定的新路由器IP地址设置为攻击节点。

    • 被攻击节点收到报文后,进行限制条件检查,由于该报文并不违背限制条件,因此将被接收,被攻击节点选择攻击节点作为其新的路由器。

    • 攻击节点可以可以开启路由转发,充当中间人,对被攻击节点的通信进行全程嗅探监听,达到ARP欺骗类似的攻击效果。

    • 在转发过程中,根据ICMP路由重定向机制的设计原理,攻击节点协议栈可能会向攻击节点发送一个ICMP重定向报文,指定原先网关为新路由器,将欺骗路由路径还原至原先状态。

  • ICMP路由重定向攻击防范

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

传输层协议攻击

TCP RST攻击

  • TCP RST攻击也被称为伪造TCP重置报文攻击,是指一种假冒干扰TCP通信连接的技术方法。TCP协议头的标志位有一个“reset”比特位,绝大部分数据包中该标志位都置为0,但该标志位置为1,接收该数据包的主机即将断开这个TCP会话连接,不再利用该连接进行数据包发送和接收。tcp重置报文就是直接关闭掉一个TCP会话连接。

TCP会话挟持攻击

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

  • TCP会话挟持攻击技术过程

    • victim主机与telnet服务器进行连接,并通过身份认证建立起会话。

    • telnet服务器将会向victim发送响应包,并包含服务器当前序列号(SVR_SEQ)以及期望客户端发送的下一个序列号(SVR_ACK)。

    • 攻击者通过ARP欺骗实施中间人攻击,可以嗅探获得victim和telnet服务器间的通信内容,然后假冒victim的IP地址及身份,向talent服务器发送数据包,声称自己是victim。攻击者发送数据包中的序列号必须满足条件:SVR_ACK<=CLT_SEQ<=SVR_ACK+SVR_WND。

    • victim仍然会继续持续talent服务器之间的连接会话,但是由于与telnet服务器之间的ACK值互相不匹配出现AC风暴。

  • TCP会话挟持攻击防御措施:

    • 禁用主机上的源路由

    • 采用静态绑定IP-MAC映射表以及避免ARP欺骗

    • 引用和过滤ICMP重定向报文

    • 网络层加密机制(IPsec协议)

TCP SYN Flood拒绝服务攻击

  • TCP SYN Flood ,又称SYN洪泛攻击,他是利用TCP三次握手协议 的缺陷,向目标主机发送大量的伪造源地址的SYN连接请求,消耗目标主机的连接队列资源,从而无法正常服务。

  • 攻击原理:

    在TCP SYN Flood攻击中,攻击主机向受害主机发送大量伪造源地址的TCP SYN报文。
    受害主机分配必要的资源,然后向源地址返回SYN/ACK包,并等待源端返回ACK包。
    如果伪造的源地址主机活跃,将会返回一个RST包直接关闭连接,但大部分伪造源地址是非活跃的,永远不会返回ACK报文,受害主机继续发送SYN+ACK包,当半开连接报文填满,服务器也就拒绝新的连接。

  • 防范措施:

    • SYN-Cookie技术

    • 防火墙地址状态监控技术

UDP Flood拒绝服务攻击

  • UDP洪泛是一种拒绝服务攻击,其中大量的用户数据报协议(UDP)数据包被发送到目标服务器,目的是压倒该设备的处理和响应能力。防火墙保护目标服务器也可能因UDP泛滥而耗尽,从而导致对合法流量的拒绝服务。

  • 防范措施包括:

    • 禁用或过滤监控和响应服务

    • 在网络关键位置使用防火墙和代理机制来过滤掉一些非预期的网络流量

2.实践过程

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

主机 IP地址 MAC地址
kali 192.168.200.2 00:0c:29:56:7e:92
SEEDUbuntu 192.168.200.4 00:0c:29:23:1e:36
Metasploitable2 192.168.200.125 00:0c:29:11:3a:c8

ARP缓存欺骗攻击

  • 利用Netwox进行IP源地址欺骗,目的是Kali能够监听SEED Ubuntu和MetaSploitable的通信。

  • 首先让SEEDUbuntu与MetaSploitable2进行通信,用ping命令得到ARP缓存表(arp -a查看ARP缓存表)

  • 接下来在在Kali上执行指令netwox 80 -e 00:0c:29:56:7e:92 -i 192.168.200.125,80是指netwox的80号工具,-e:攻击机kali的MAC地址,-i:MetaSploitable的IP地址,周期性发送应答,告诉请求方192.168.200.4(seed靶机)的MAC地址为00:0c:29:56:7e:92(kali攻击机)

  • 然后,回到SEEDUbuntu里arp -a查看我们冒充成功了没?可以看出冒充成功了!!

ICMP重定向攻击

  • 首先,我们使用netwox的86号工具进行ICMP重定向攻击,在Kali攻击机上执行命令netwox 86 -f "host 192.168.200.4" -g 192.168.200.2 -i 192.168.200.1,这个命令是当嗅探到SEED的数据包时,以192.168.200.1的名义发送ICMP重定向报文,使192.168.200.2(Kali)成为其默认路由。

  • 用wireshark查看它访问的过程,可以看到SEED靶机打开网页时的数据包,数据包已经被重定向到192.168.200.1

SYN Flood攻击

  • kali利用netwox的76号工具对靶机SEED Ubuntu的23号端口进行SYN Flood攻击netwox 76 -i 192.168.200.4 -p 23

-此时,电脑在飞速运转。。。可以看到攻击机向靶机发送了大量的虚假ip发出的SYN连接请求,数据量相当大,这些虚假的连接请求没有MAC地址,无法溯源攻击者的真实身份。

TCP RST攻击

  • 与TCP Flood攻击相似,只不过换了工具号为78,Kali上利用netwox的78号工具对靶机进行TCP RST攻击netwox 78 -i 192.168.200.4

TCP会话劫持攻击

  • 首先我们将SEED Ubuntu利用telnet 192.168.3.21登陆MetaSploitable。

  • 在Kali上打开Wireshark设置过滤条件tcp.port == 23,然后在SEED Ubuntu中输入ls,回到Kali的Wireshark中查看,会发现有l和s的数据包。

  • 有了这些值,接下来我们就可以伪造发下一个包,所以把Next Seq Num作为下一个包的ACK,采用ACK作为下一个包的Seq。获取到信息之后,攻击机使用netwox工具伪造SEED Ubuntu给MetaSploitable发一个tcp包。发送成功后,原来的SEED Ubuntu就会失去连接,同时MetaSploitable会把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 54350 --tcp-dst 23 --tcp-seqnum 161 --tcp-acknum 1406 --tcp-ack --tcp-psh --tcp-window 64 --tcp-data "ceeef9eefe"第一个40是netwox的40号工具,在ip4-src后输入你的SEED Ubuntu地址,在ip4-dst后输入你的MetaSploitable地址,tcp-src表示原端口号(这个是变化的),tcp-seqnum和tcp-acknum输入刚才讲解的值,tcp-data是你要发的数据的16进制值,这里的是helloworld的16进制。同样的可以在Wireshark中观察到发送的值。

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

  • 问题1:在 SYN Flood攻击时,有时候还是可以访问MetaSploitable。。。

  • 问题2:会话挟持工具没用好。。导致太麻烦,眼睛都要看瞎了。。

  • 问题2解决方案:查阅资料后,写一篇关于这个的博客吧!

4.实践总结

千万不要熬夜,你会越写越清醒。。。

参考资料

猜你喜欢

转载自www.cnblogs.com/dsqblog/p/12597830.html