『CVE』简析CVE-2024-48795 SSH协议前缀截断攻击(Terrapin攻击)


有关这些更改的更多详情,请参阅 OpenSSH 源代码发行版中的 PROTOCOL 文件。

Terrapin攻击 (CVE-2023-48795)

基本信息

CVE-2023-48795: BaseScore N/A

CVSS:3.1/N/A

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remote attackers to bypass integrity checks such that some packets are omitted (from the extension negotiation message), and a client and server may consequently end up with a connection for which some security features have been downgraded or disabled, aka a Terrapin attack. This occurs because the SSH Binary Packet Protocol (BPP), implemented by these extensions, mishandles the handshake phase and mishandles use of sequence numbers. For example, there is an effective attack against SSH’s use of ChaCha20-Poly1305 (and CBC with Encrypt-then-MAC). The bypass occurs in chacha20-poly1305@openssh.com and (if CBC is used) the -etm@openssh.com MAC algorithms.


在 9.6 之前的 OpenSSH 和其他产品中找到的具有某些 OpenSSH 扩展的 SSH 传输协议允许远程攻击者绕过完整性检查,从而省略某些数据包(来自扩展协商消息),因此客户端和服务器可能最终获得某些安全功能已降级或禁用的连接。 又名 Terrapin 攻击。这是因为这些扩展实现的 SSH 二进制数据包协议 (BPP) 错误地处理了握手阶段,并错误地处理了序列号的使用。例如,针对 SSH 使用 ChaCha20-Poly1305(以及带有 Encrypt-then-MAC 的 CBC)的攻击存在有效攻击。旁路发生在 chacha20-poly1305@openssh.com 和(如果使用 CBC)-etm@openssh.com MAC 算法中。

利用手段

中间人攻击、SSH握手、流量攻击

利用路径

在SSH双方建立安全通道前,有一次明文消息握手,中间人此时向SSH服务器发送X条报文,可以阻止Server在安全通道中发送给Client的前X条消息,可以干扰连接的设置,降低所使用的安全性

握手使用计数器计算收发包数,之后计数器用于验证握手过程是否完整。只要计数正确,允许继续连接。

利用条件

  1. 特定加密算法:ChaCha20-Poly1305和CBC with Encrypt-then-MAC
  2. 攻击者处于中间人位置,可以在 TCP/IP 层拦截和修改连接的流量
  3. 本地网络发起,从Internet发起很困难

The Terrapin attack requires an active Man-in-the-Middle attacker, that means some way for an attacker to intercept and modify the data sent from the client or server to the remote peer. This is difficult on the Internet, but can be a plausible attacker model on the local network.

利用原理及示意图

攻击者可以在初始密钥交换期间注入任意数量的SSH消息,并在交换完成后移除相同数量的消息,从而破坏SSH扩展协商(RFC8308),可降级连接的安全性。

ChaCha20-Poly1305:

攻击者在握手结束前注入 IGNORE 信息,计数器的变化会在安全通道中阻断 EXT_INFO消息

在这里插入图片描述

CBC-EtM:

攻击者在Client发送 NEWKEYS 之前注入 UNKNOWN。 由于Server已经发送了 NEWKEYS,UNIMPLMENTED 消息将在 EXTINFO 之后在安全通道内发送。 损坏的未实现消息很可能被忽略

在这里插入图片描述

危害

该漏洞官方描述为:General Protocol Flaw(一般协议缺陷)

……通过中间人攻击,攻击者可能迫使SSH客户端采用较弱的身份验证方式,并停用一些防御机制,目前很难准确评估这个漏洞的真正影响……

……漏洞利用成本高,在真实场景中被利用几率很低,但影响面较大……

The data in the messages exchanged after the completion of the handshake determines the severity of the attack’s repercussions.
握手完成后交换的消息中的数据决定了攻击影响的严重性。

Right now, the biggest mitigation factor for the attack is the MiTM requirement, which makes Terrapin a less severe threat. For this reason, patching CVE-2023-48795 may not be a priority in many cases.
目前,攻击的最大缓解因素是 MiTM 的需求,这使得 Terrapin 的威胁不那么严重。因此,在许多情况下,修补 CVE-2023-48795 可能不是优先事项。

Terrapin-Scanner

官方给出了一个漏扫工具,开源在gthb

https://github.com/RUB-NDS/Terrapin-Scanner
Terrapin Vulnerability Scanner 是一个用 Go 编写的小型实用程序,可用于确定 SSH 客户端或服务器对 Terrapin 攻击的漏洞。漏洞扫描程序需要与对等方建立单个连接,以收集所有支持的算法。但是,它不会执行完全成熟的 SSH 密钥交换,永远不会尝试在服务器上进行身份验证,并且在实践中不会执行攻击。相反,漏洞是通过检查支持的算法和对已知对策(严格密钥交换)的支持来确定的。这可能会错误地声明漏洞,以防对等方支持此工具未知的对策。

看一下该工具的核心代码,在Terrapin-Scanner/blob/main/tscanner/tscanner.go#Scan()

在这里插入图片描述
这里就是简单的发了个tcp包到目标服务器,通过ssh服务器返回的banner来判定是否符合版本号、是否使用了有问题的算法、是否修复了该漏洞

在这里插入图片描述

基于Terrapin的潜在风险:CVE-2023-46445 & 46446

Python SSH客户端AsyncSSH的开源代码中存在可利用风险,目前Terrapin研究员上报了两个CVE

CVE-2023-46445: BaseScore 5.9

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N

An issue in AsyncSSH before 2.14.1 allows attackers to control the extension info message (RFC 8308) via a man-in-the-middle attack, aka a “Rogue Extension Negotiation.”


低于 2.14.1 的 AsyncSSH 中存在一个问题,允许攻击者通过中间人攻击(也称为“恶意扩展协商”)来控制扩展信息消息 (RFC 8308)。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
img

一、网安学习成长路线图

网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、网安视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

三、精品网安学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、网络安全源码合集+工具包

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

五、网络安全面试题

最后就是大家最关心的网络安全面试题板块
在这里插入图片描述在这里插入图片描述

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6a226f96d88902a2a7748f588179b72f.png)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-mhAuf6CZ-1712732554841)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值