手动修复 Lion 随意更改用户密码漏洞

Posted on 2011 年 09 月 22 日 by mrhaoji

关注我们的果迷应该对前几天报道过的“Mac OS X Lion 曝出高危漏洞”这篇文章还有印象:

安全技术博客 Defense in Depth 找到了 OS X Lion 系统中一个明显的安全漏洞,该漏洞可以被黑客利用来修改 Lion 系统下的用户密码……黑客可以利用已知的漏洞通过本地或目录服务来盗取用户信息。

相信苹果会在近期对该漏洞发布更新进行修复。而在等待苹果发布修复的时候,大家可以按文中的建议设置做一定的防范。而对于仍然还不放心的果迷,今天我们给大家带来一篇手动修复漏洞教程。

了解漏洞

知其然得知其所以然,首先让我们来看看如何利用该漏洞来任意修改用户密码:

  • 首先获取当前用户登录名。运行终端(Terminal)应用,并输入命令:whoami
  • 然后继续输入以下命令:dscl localhost -passwd /Search/Users/username(username 即上一步中获取的用户登录名)
  • 按提示输入新密码并确认后,密码就成功的被修改了

注意,该操作中完全不需要得到任何授权就可以轻易的修改掉当前用户的密码,这便是漏洞的所在。

细心的果迷会发现,修改过程中主要用到了 dscl 命令,相信如果对该命令进行一定的权限限制的话就能有效的封堵漏洞(小编估计没错的话,苹果的修复更新也会从这一点下手)。

修复漏洞

既然知道问题出在哪里了,下面就教大家手动更改 dscl 命令的权限,使得该命令只能被拥有管理员权限的用户运行。

  • 运行终端(Terminal)应用,并输入命令:sudo chmod go-x /usr/bin/dscl
  • 验证密码信息后,即可。

此时 group 和 others 用户的 dscl 命令执行权限就被移除了,如果再次执行之前的修改密码命令的话,会得到 dscl 命令权限被拒绝的警告,如:/usr/bin/dscl: Permission denied

当然,想要恢复的话,只需要输入命令:sudo chmod go+x /usr/bin/dscl,即可。

Inspired by OSXDaily