欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

议题分享:一款潜伏了多年的Mac恶意程序,为何迄今仍“逍遥法外”?

来源:本站整理 作者:佚名 时间:2017-07-26 TAG: 我要投稿

今年的 Black Hat USA 2017 美国黑帽大会,准确地说是从7月22日开始,延续到本周周四结束的。和往常一样,前四天进行的是技术培训,后两天就是众所期待的主要会议分享,还有兵器库、Business Hall 之类的内容了。值得一提的是,因为美国和中国存在时差,身处国内的各位关注 Black Hat USA 2017 的时间应在北京时间本周四和周五。针对这两天的大会内容,FreeBuf 会进行相应的报道。
在此之前,我们照例分享一些预先已知的内容,在 Black Hat 现场的同学可以留意。当地时间周三(7月26日)5:05pm – 5:30pm 之间(地址在 Laggon DEFJKL ),前 NSA 分析师,现在是 Synack 公司首席安全研究员的 Patrick Wardle 将会分享议题 《Offensive Malware Analysis: Dissecting OSX/Fruitfly via A Custom C&C Server (主动恶意程序分析:通过一台 C&C 服务器来解剖 OSX/Fruitfly)》。
这里的 Fruitfly 实际上是 macOS 或者说 OS X 平台的一款恶意程序,所以这个议题是相关恶意程序和逆向工程的技术分享。这款恶意程序已知感染的设备量大约是 400 台,而且所用技术其实并不算高超,理论上也很容易检测到。那么 Fruitfly 有什么特别值得一说的呢?

研究人员注册 C&C 服务器
这个议题的主要方向之一是通过自己注册的 C&C 服务器来对这款恶意程序进行剖析。Fruitfly 并不是很新的一款 Mac 恶意程序,而且其存在时间可能长达 10 年之久,即便到目前为止,从 VirusTotal 服务来看,超过一半的反恶意程序引擎都无法将其新变种检测出来。
早在今年 1 月份的时候,Malwarebytes 曾经撰写过一份有关 Fruitfly 的恶意程序报告。Malwarebytes 的研究人员认为,Fruitfly 存在时间至少有 2 年。这份报告挂出后,苹果对 macOS 进行升级后,系统就能自动检测到这款恶意程序了。不过 Wardle 这次发现的是个变种,系统和很多反病毒产品还不能发现。
前 NSA 分析师,现在是 Synack 公司首席安全研究员的 Patrick Wardle 对该恶意程序进行分析后发现,C&C 通讯的主服务器已经不能访问,但有多个备用域名硬编码到了程序中。而且这些备用的 C&C 服务器域名还没有人注册。所以他就注册了一个。不知是何种原因,攻击者自己并没有注册这些域名。

主服务器下线后,理论上感染了 Fruitfly 的用户就不存在原有的威胁了。不过在 Wardle 注册备用域名后,立刻就有 400 个被感染的 Mac 用户开始连接这台服务器。这样一来 Wardle 就能够看到 Fruitfly 受害者的 IP ,他发现有 90% 的受害者都位于美国。
Fruitfly 的恶意行为包括远程控制摄像头、截屏,进行鼠标、键盘操作,执行 shell 命令、结束进程、获取系统的正常运行时间等。实际上 400 台设备感染只是个最小数字,感染 Fruitfly 的人数可能还有很多。Wardle 自己也并不清楚 Fruitfly 具体是如何感染 Mac 设备的,他推测应该不是通过漏洞,可能是吸引受害人点击恶意链接,或者钓鱼邮件等。
这是个并不高明的恶意程序
Wardle 解释说,现在并不清楚 Fruitfly 变种攻击者背后的意图是什么,因为这款恶意程序无法窃取信用卡数据,也没有感染勒索程序之类可以让攻击变现的方式。而且这款恶意程序以家庭用户为主,所以基本可以排除是国家攻击。
“我不知道是否是某个无聊的人,有什么不正当的目的。如果是某个无聊的年轻人想要进行单纯的监视,这其实也挺伤人的。比如他能打开摄像头…”不过实际上也可能是恶意程序作者抛弃了这款恶意程序。不管怎么说,如果有人像 Wardle 一样去注册了硬编码的域名,那么也可以监控那些已经被感染的人。
从国外媒体现有的报道暂时还不清楚 Fruitfly 的具体运作方式。不过我们去查阅了 Malwarebytes 今年 1 月份发布的文章,发现 Fruitfly 的原版程序的确有些有趣且并不 “sophisticated” 的地方。
Fruitfly 的原始版本在面上就只包含 2 个文件,分别是
~/.client
~/Library/LaunchAgents/com.client.client.plist
其中的 .plist 非常简单,是为了保持 .client 始终运行的。.client 以 perl 脚本的形式存在,它会与 C&C 服务器通讯。脚本中还包含一些通过 shell 命令截屏的代码。有趣的是,其中既用到了 Mac 的 “screencapture” 命令,也用上了 Linux 的“xwd”命令。
另外它也负责获取系统的正常运行时间,也就是所谓的 uptime —— 获取命令也是既有 Mac 版,也有 Linux 版。
另外脚本最后还有个 _DATA_ 部分,里面有个 Mach-O 二进制、Perl 脚本和一个 Java 类。脚本释放写入到 /tmp/ 文件夹并执行。Java 类文件将 apple.awt.UIElement 设为 true,也就是说它不会在 Dock 栏显示。
二进制文件对于截屏和摄像头访问比较情有独钟,不过有意思的是其中用上了一些非常古老的系统调用,比如说:
SGGetChannelDeviceList
SGSetChannelDevice
SGSetChannelDeviceInput
SGInitialize
SGSetDataRef
SGNewChannel
QTNewGWorld
SGSetGWorld
SGSetChannelBounds
SGSetChannelUsage
SGSetDataProc
SGStartRecord
SGGetChannelSampleDescription
这可能是 Malwarebytes 和 Wardle 认为这款恶意程序年代久远的一个原因。这些函数其实的确非常古老,可以追溯到前 OS X 的岁月。其中包含的开源 libjpeg 代码上次更新是在1998年。
编写的代码比较古老,其实不能很明确地表示这款恶意程序早在十多年之前就存在。如 Malwarebytes 所说,这可能表明攻击者对 Mac 了解得不够,或者他一直在用比较老的开发指导文档。也可能是攻击者故意用这种较老的系统调用,避免触发现代各种形式的行为检测。

[1] [2]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载