长亭百川云 - 文章详情

CVE-2024-6387-OpenSSH Server存在高危漏洞!

云梦DC

52

2024-07-02

近日,网络安全界爆出一个影响广泛的高危漏洞,涉及广泛使用的OpenSSH Server。该漏洞存在于OpenSSH Server的信号处理程序中,利用此漏洞,攻击者可以在基于glibc的Linux系统上以root身份实现未经身份验证的远程代码执行。此漏洞的影响范围极大,所有使用默认配置的OpenSSH Server均可能受到威胁。

漏洞详情

漏洞编号:CVE-2024-6387

漏洞描述:

在默认配置下的OpenSSH Server (sshd)中存在信号处理程序竞争条件漏洞。具体来说,如果客户端未在LoginGraceTime秒内(默认情况下为120秒,旧版OpenSSH中为600秒)进行身份验证,则sshd的SIGALRM处理程序将被异步调用,但该信号处理程序会调用各种非async-signal-safe的函数(例如syslog())。攻击者可以利用该漏洞在基于glibc的Linux系统上以root身份实现未经身份验证的远程代码执行。

受影响版本:

OpenSSH_9.2p1 至 8.5p1

漏洞影响

该漏洞的利用可能导致以下严重后果:

  • 未经授权的访问:攻击者可以未经身份验证获取系统的root权限。

  • 数据泄露:攻击者可以访问和窃取敏感数据。

  • 系统瘫痪:攻击者可以在目标系统上执行恶意代码,导致系统不可用。

  • 进一步攻击:攻击者可以利用获得的权限在内部网络中进行横向移动,攻击更多系统。

漏洞利用

漏洞利用条件:

  • 目标系统运行OpenSSH Server,并且使用默认配置。

  • 攻击者需要与目标系统建立连接,并在LoginGraceTime内未进行身份验证。

    poc下载地址:

扫描工具:

https://github.com/xaitax/CVE-2024-6387\_Check

poc:

https://github.com/zgzhang/cve-2024-6387-poc/blob/main/7etsuo-regreSSHion.c

利用方法:

编译漏洞利用代码

将漏洞利用代码保存到一个文件中,例如regreSSHion.c
。然后在终端中运行以下命令进行编译:

gcc -o regreSSHion regreSSHion.c -lrt

3. 修改漏洞利用代码

在使用代码前,需要根据具体情况进行一些修改:

3.1 修改Shellcode

替换代码中的shellcode占位符为实际的payload:

unsigned char shellcode[] = "\x90\x90\x90\x90"; // Replace with actual shellcode

3.2 调整glibc基地址

根据目标系统的配置,调整代码中的glibc基地址:

uint64_t GLIBC_BASES[] = { 0xb7200000, 0xb7400000 }; // Adjust as needed

4. 运行漏洞利用代码

在编译成功并进行了必要的修改后,使用以下命令运行漏洞利用程序:

./regreSSHion <target_ip> <target_port>

其中:

  • <target_ip>
    是目标SSH服务器的IP地址。

  • <target_port>
    是目标SSH服务器的端口(通常是22)。

5. 分析输出

漏洞利用程序将在运行过程中输出各种信息,这些信息可以帮助您判断是否成功:

Attempting exploitation with glibc base: 0xb7200000
Attempt 0 of 20000
Connection established
SSH handshake completed
Preparing heap
Estimated parsing time: 0.000123 seconds
Possible exploitation success on attempt 123 with glibc base 0xb7200000!

  • Connection established:表示成功建立与目标系统的连接。

  • SSH handshake completed:表示成功完成SSH握手。

  • Preparing heap:表示开始准备堆内存布局。

  • Estimated parsing time:表示计算的解析时间。

  • Possible exploitation success:表示可能成功利用了漏洞。

    利用所需时间:

  • 时间估计

  • 单次尝试时间:每次尝试包括连接、握手、准备堆、计算解析时间和发送最终包。假设每次尝试平均花费1秒(包括连接、握手和计算时间)。

  • 总尝试次数:最多20000次。

  • 总时间估计为:

  • 总时间=单次尝试时间×总尝试次数\text{总时间} = \text{单次尝试时间} \times \text{总尝试次数}总时间=单次尝试时间×总尝试次数总时间=1秒×20000\text{总时间} = 1\text{秒} \times 20000总时间=1秒×20000总时间=20000秒\text{总时间} = 20000\text{秒}总时间=20000秒

  • 将20000秒转换为小时:

  • 总时间(小时)=200003600\text{总时间(小时)} = \frac{20000}{3600}总时间(小时)=360020000总时间(小时)≈5.56小时\text{总时间(小时)} \approx 5.56 \text{小时}总时间(小时)≈5.56小时

POC来源于网络,自行辨别

应对措施

为了保护您的系统免受该漏洞的影响,建议采取以下措施:

  1. 立即升级OpenSSH:将OpenSSH Server升级到最新版本,确保漏洞被修补。

  2. 配置文件调整:根据实际需求调整LoginGraceTime值,减少攻击窗口。

  3. 增强监控:加强对服务器的监控,及时发现和阻止异常行为。

  4. 应用安全加固:对系统进行全面的安全检查和加固,确保系统的整体安全性。

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2