9月3日才注意到这个在8月28日刊登在英文网站9月1日在驱动之家的,关于OS X系统的sudo漏洞没有修补的新闻,今天才有时间成文上传。

这个sudo漏洞是在2013年2月27日被公布出来的,它的注册号是CVE-2013-1775, 大家可以上网找找,这个漏洞相继在不同的类Unix系统中被确认,特别是基于开源的操作系统。它影响sudo发布版本中所有从1.6版到1.7.10p6, 从1.8.0到1.8.6p6。从sudo命令的网站上看,它同时在2013年2月27日推出了一个重要的系统更新版本,用来修复这个漏洞,Sudo version 1.8.6p7 和Sudo version 1.7.10p7 。目前来看,OS X 10.7.4和10.8.3的sudo版本都是1.7.4p6,10.6.8是1.7.0。大家可以自己在Terminal终端中运行sudo -V来查看。

该新闻中,主要提到的是,该漏洞在OS X 10.6到现在的10.8.4的各个版本都存在,基于Apple的升级策略与微软或者其它厂家的不同,苹果既没有推出及时更新也没有正面回复第三方的询问。

在各个网友的回复中,普遍存在误解。反方是坚定了自己对Mac系统的鄙视态度,正方是在鉴定苹果系统最安全的基础上对此漏洞采取一带而过忽视的作法,所以吵得还挺热闹。

新闻就是新闻,总是由不懂行的人道听途说地写出来,既不清晰也不易懂。咱们还是从该漏洞的具体内容开始说说吧:

首先,这个牵扯到计算机开元世纪(Unix epoch),计算机的时钟是从零开始计数的,Unix系统默认地把时钟0,当作1970年1月1日0时0分0秒(也就是1970:01:01 01:00:00),那么如果电脑时钟计数是10,那么系统就认为是1970年1月1日0时0分10秒。

再说,sudo的作用主要是提升当前用户的权限,比如可以让一个管理员用root权限来运行命令,众所周知,root在类Unix系统中就是上帝,可以做任何事情,甚至比上帝都全能,能杀掉自己!能够用root权限来执行命令,就意味着完全地控制了这个系统。默认地,在运行sudo的时候,会在Terminal中提示让用户输入密码,正确后,它会生成一个时间戳,再次使用sudo的时候,它会用当前时间和当初生成的那个时间戳比较,如果这个时间没有超出了设定的时间间隔,该间隔默认的是5分钟,那么它不会再次询问用户密码,而是直接运行命令;如果超出,那么需要用户再次输入密码确认。

其实,即便没有超出时间间隔,也可以使用sudo -k命令来重置时间戳,这样下次在使用sudo,系统会询问密码。在sudo的1.6版本之后,sudo -k命令不是把那个时间戳彻底移除,而是把它设置到电脑开元世纪时间,正是这个举动给骇客以可乘之机。因为在这些版本中,它不管时间戳是不是开元世纪时间,而是依然使用当前时间与之对比,大家可以看到其中的漏洞了吧。只要用户可以把系统时间修改成开元世纪,在5分钟内,可以不用输入用户密码,就可以成功运行sudo命令了。比如sudo su后就可以切换到root用户,只要不退出Terminal,就可以没有时间限制地完全掌控这个系统。

要想利用这个漏洞,需要有几个关键条件:

  1. 这个用户曾经成功运行过sudo命令,也就是sudo建立过时间戳,并运行sudo -k,这样让它归零-不归零的话,可不好猜该用户上一次什么时候运行的sudo命令-如果谁能够知道方法那么sudo的漏洞可就更大了,这是题外话。不过还好了,sudo -k运行的时候不需要密码的。
  2. 其次是,骇客需要更改系统时间,如果通过GUI的System Preferences,系统当然会再次询问用户密码才能变更系统时间;不过,systemsetup命令可以在不用提供密码的情况下可以变更系统时间(这一点在我的10.8.4中需要使用sudo才能变更系统时间设定,我要在其它系统中尝试在确定一下):
    systemsetup -setusingnetworktime off
    systemsetup -setdate 01:01:1970
    systemsetup -settime 00:05
    注:上面的命令只用于举例,并不用于真正的入侵行为
  3. 因为1的原因,也就暗含了另外一个条件,也就是这个用户必须被准许运行sudo命令,默认情况下,OS X系统的管理员帐户都被准许执行,除非特殊设定.
  4. 需要可以在这台机器上操作,也就是这台机器已经被满足1和3条件的用户登陆了,当然也可能远程登陆。
       说了这么半天,有好多人会有疑问:你说都用该用户登录到系统了,怎么会不知道密码,知道密码了,上面的那些破假设还有什么意义啊!

       其实,还真不一定。比如,你作为管理员登陆后,设置屏幕保护10分钟后开启并进行密码保护,而且没有立刻启动屏幕保护程序有事就离开了,我想这个场景在每个人身上都可能发生,也很普遍吧,那么另外一个人路过看到了,娃哈哈!好一个机会!插上U盘,运行早已准备好的脚本,搞定了!他可能秘密地生成另外一个管理员帐户,开启远程控制,ssh等服务,那么不用什么木马蠕虫,就可以完全控制你的机器了!同样的情景,如果
你在远程ssh到服务器,那么他也可以用同样的方式控制远程的服务器,不是吗?

       所以说,这个漏洞真的不是无所谓,至少是,一旦上面的条件满足,那么潜在的危险就是事实的危险。

       那么有了这么一个系统漏洞不修补是不是就是不可挽救了呢?也不是。一是养成良好的习惯,比如设定热角启动屏幕保护并开启密码保护;使用sudo -K命令来彻底删除时间戳;严格控制可以访问用户的权限,并使用sudo visudo来设置sudoers,只给对的用户正确的权限,这是一个原则。

       看了驱动之家各位网友的相关回复,争吵还真是热闹。这么热闹,整个耳红脖子粗的,闹一肚子气,还不是自己生气?!谁会高兴?我看就是小编们看着自己的业绩,那是真心的笑了。其实啊,你用什么顺手,就用什么;再好的东西,到了自己手里不会用,也是瞎掰浪费不是。世界上没有攻不破的系统,没有绝对安全的电脑,更何况现在市面上所谓的系统似乎都不是那么的安全。什么一个系统比另外一个安全100倍了,什么谁谁最不安全,都是没事儿瞎扯,争论这些没有任何意义。有时间多吃个垃圾食品,危害来说可能都比生气来得没有那么深远;再说哪个系统也不是咱亲娘舅出的,咱这么费力生着气帮它,有人给你津贴吗?!对于大众用户来说,与其争论这些,还不如好好弄好自己的机器,多学学如何把自己的电脑调教得相对比较坚固可靠,比如参考我上一篇的有关使用虚拟机的方法,别轻易地变成肉机;培养自己的安全意识,并养成良好的使用习惯,远离危险源。

注:如果细心的读者使用上面的方法突破系统,很可能不成功,那是因为我在上面的命令中有益忽略了一个特殊的命令导致。

OSX: 真的吗?Mac OS X重大漏洞 改时钟获系统最高权限的更多相关文章

  1. iConvert Icons 图标转换生成利器,支持Windows, Mac OS X, Linux, iOS,和Android等系统

    这是一款在线图标转换工具,生成的图标支持Windows, Mac OS X, Linux, iOS, 和 Android等主流系统. 可以上传图标文件转化成另一个平台下的图标文件,例如将windows ...

  2. 玩转MAC OS!实测DIY兼容机装苹果系统

    1打造iMAC:DIY常规兼容机安装MAC OS回顶部 [PConline 评测]最近消息透露苹果下个月即将发布新系统MAC OS X 10.9,这是什么东西?对于苹果,留给我们印象最为深刻的是iPh ...

  3. Mac OS使用技巧之十六:系统失去响应怎么办?

    再好的系统,再快的本本,也会在执行时由于种种原因出现卡顿或者死机等失去响应的情况.Mac用户也会时不时碰到这样的情况,最常见的表现为鼠标变为七彩圆圈.通常等上一会儿系统会自己恢复.假设迟迟没有响应的话 ...

  4. (转)Mac os x 下配置Intellij IDEA + Tomcat 出现权限问题的解决办法

    出现的错误提示如下: 下午9:11:27 All files are up-to-date下午9:11:27 All files are up-to-date下午9:11:27 Error runni ...

  5. Mac os x 下配置Intellij IDEA + Tomcat 出现权限问题的解决办法

    出现的错误提示如下: 下午9:11:27 All files are up-to-date下午9:11:27 All files are up-to-date下午9:11:27 Error runni ...

  6. zabbix再爆高危SQL注入漏洞,可获系统权限

    漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...

  7. zabbix 爆高危 SQL 注入漏洞,可获系统权限(profileIdx 2 参数)

    漏洞概述 zabbix是一个开源的企业级性能监控解决方案.近日,zabbix的jsrpc的profileIdx2参数存在insert方式的SQL注入漏洞,攻击者无需授权登陆即可登陆zabbix管理系统 ...

  8. MAC OS X Yosemite的PyQt4配置记录

    MAC OS X Yosemite的PyQt4配置记录 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系 ...

  9. 如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?

    如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?原文链接:http://www.java2class.net/bbs/viewthr ...

随机推荐

  1. 通过OC实现简单的冒泡排序

    NSMutableArray *arr = [@["] mutableCopy]; ; i<[arr count]-; i++) { ; j<[arr count]--i; j+ ...

  2. 「C」 数组、字符串、指针

    一.数组 (一)数组 概念:用来存储一组数据的构造数据类型 特点:只能存放一种类型的数据,如全部是int型或者全部是char型,数组里的数据成为元素. (二)数组的定义 格式: 类型 数组名[元素个数 ...

  3. Linux下载文件时报错 To connect to ohse.de insecurely, use ‘--no-check-certificate’.

    远程调用下载文件直接用wget就可以,一般文件路径类型是http.如果有遇到是https就会下载出错. 错误如下: [root@vmu010226-node1 tmp]# wget https://w ...

  4. Eclipse之报错信息及其解决方案

    一.有很多人都喜欢开发js的时候用aptana,因此在eclipse中集成aptana插件是必须的,可是,在用link方式在eclipse中安装好aptana后,启动时会报如下错误 An intern ...

  5. 微信开放平台 获取 component_verify_ticket

    <?php /** * @author zhaozhuobin * @date:2016-06=07 * */ namespace common\components;use DOMDocume ...

  6. Visual Studio shortcut keys

    VS2010 快捷键   Ctrl+E,D ----格式化全部代码  Ctrl+E,F ----格式化选中的代码  CTRL + SHIFT + B生成解决方案  CTRL + F7 生成编译  CT ...

  7. Qt在各平台上的搭建qt-everywhere

    Qt for windows7-64bit 在电脑上安装mingw(搜索mingw for windows),将C:\MinGW\bin添加进环境变量,打开命令行输入gcc --version和g++ ...

  8. DataReader的例子

    前: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DataReader对 ...

  9. C 语言中的变量为什么不能以数字打头

    C 语言中的变量为什么不能以数字打头? C 语言中的变量为什么不能以数字打头? 不要告诉我编译原理书上有.我暂时看不懂. 除了下面的解释外, “假如变量名允许以数字开头的话,那么语法分析器在解析一个全 ...

  10. Android -- BroadCastReceiver的简单使用

    //首先新建一个继承自BroadcastReceiver的广播监听类 class StartActiviryReceiver extends BroadcastReceiver { public fi ...