最近Defence in Depth发现了一个 Mac OS X Lion 下的安全漏洞,使得任何能接触到已经登录的 Lion 的人都可以通过一个简单的命令更改当前用户的登录密码,且这一过程并不需要输入任何密码。
密码,改起来是如此的简单。
通常情况下我们要修改 Lion 中用户的登录密码都需要进入“系统偏好设置”中的“用户与群组”,点击“更改密码”并输入旧密码以进行更改,这(在一定程度上)保证了账户安全。而现在只要登录后在终端中输入如下命令:
- dscl localhost -passwd /Search/Users/
[当前用户名]之后就会提示输入新密码,只要是更改当前用户的密码,这一过程并不需要输入旧密码。
破解,可能并不困难
此外,Defence in Depth 还发现通过以下方法可以提取任意一个用户的登录密码的 SA512 hash 和 Salt,并提供了一个很便捷的 python 脚本可以用于配合字典进行密码破解:
在终端中运行以下命令:
- dscl localhost -read /Search/Users/
[用户名]同样,在不提示输入任何密码的情况下(即使不是当前用户!),会得到类似这样的输出:
在其中搜索 dsAttrTypeNative:ShadowHashData,可以找到类似下面的一段数据:
- 62706c69 73743030 d101025d 53414c54 45442d53 48413531 324f1044 74911f72
- 3bd2f66a 3255e0af 4b85c639 776d510b 63f0b939 c432ab6e 082286c4 7586f19b
- 4e2f3aab 74229ae1 24ccb11e 916a7a1c 9b29c64b d6b0fd6c bd22e7b1 f0ba1673
- 080b1900 00000000 00010100 00000000 00000300 00000000 00000000 00000000 000060
其中的绿字和红字部分就分别是以 SHA-512 加密的该用户的登录密码的 hash 和 salt。
以上只是了解下原理,由于 SHA-512 是单向加密的,所以要破解就需要密码字典了,把 Defence in Depth 提供的 python 脚本保存为 lion_crack.py ,在终端中运行:
- python lion_crack.py
[用户名] [字典]这个脚本会自动将对象密码的 SHA-512 与字典中密码的 SHA-512 进行比对,命令中不加字典时,脚本会和一个在线的字典进行比对。如果对象的密码不是很复杂,破解起来就相当简单。
如何防范这一漏洞?
等待苹果的安全更新修正这一漏洞:这无疑是治本的方法
禁用自动登录:可在“系统偏好设置”->“安全性与隐私”->“通用”选项页中设置
开启睡眠和屏保密码:可在“系统偏好设置”->“安全性与隐私”->“通用”选项页中设置
禁用客人用户:可在“系统偏好设置”->“用户与群组”选项页中设置
启用家长控制:利用家长控制可以限制用户对“终端”等程序的使用,可在“系统偏好设置”->“用户与群组”选项页中设置
使用强度高的密码:像是 12345 这种弱爆的密码还是不要用了。
本文来自:http://www.cnbeta.com/articles/156064.htm