2014.11.15 更新

不愧是上市公司,动作就是快


2014.11.06 更新

木马已由 PANWClaud Xiao 确认并命名为 WireLurker (aka MacHook),
大家现在可下载其推出的排查脚本来源)来检查系统了。
然而清除工作目前仍需要手工完成,可参看文末。


2014.11.05 更新

网友 littledew 已找到了木马作者嫌疑人,
群众与他正在 V2EX 论战中(已被删帖,点此查看备份);
后续情况详情见 Livid 的声明(请关注声明中提到的某个域名)。


2014.06.01 发布

最近我所有未越狱的 iOS 设备都出现了一个怪现象:
与 Mac 同步之后会莫名出现若干企业应用。
第一次是 5 月 21 日出现的“PP助手正版”(下图),
接着一周后出现了“乱世之刃2”。

PP助手正版

第二次出现奇怪的应用之时引起了我的注意。(头一次被我手快直接删除了)
首先在“描述文件”中皆出现了开发商证书(下图);
其次首次启动该应用会弹出确认。

PP助手正版证书

于是我决定花一点时间研究一下其源头。<!--more-->
起初考虑了很多方向,均被证明“不可能”,这里不再冗述。
后来受这篇文章的启发,
我决定从系统内多处 LaunchAgentsLaunchDaemons 目录排查起。

由于我记得 App 被安装的确切时间,
所以根据文件修改时间排序,
/Library/LaunchDaemons/ 下找到如下若干符合目标时间区间的配置文件:

  • /Library/LaunchDaemons/com.apple.globalupdate.plist
  • /Library/LaunchDaemons/com.apple.itunesupdate.plist
  • /Library/LaunchDaemons/com.apple.machook_damon.plist
  • /Library/LaunchDaemons/com.apple.watchproc.plist

看 Vendor 还以为是系统自带的吧?(这也侧面揭示了其恶意目的)

顺着上面的配置文件找到了如下可执行文件或目录:

  • /usr/bin/globalupdate
  • /usr/bin/itunesupdate
  • /usr/local/machook/
  • /usr/bin/WatchProc

其中 /usr/local/machook/ 是一个包含其主要程序的目录,
由于我并不知道这套恶意程序叫什么名字,
所以下面咱们姑且将它称为 MacHook

然后根据时间区间还找到一个可疑目录:

  • /usr/local/ipcc/

后来证明里面存放的就是被程序偷偷下载下来的 .ipa 文件(下图)。

PPAppInstall_qudaobao.app 包内容

另外,
在刚才找到的 /usr/local/machook/ 目录下,
我们找到了一个名为 foundation 的 Sqlite DB 文件(下图)。

machook 目录内容

用工具打开后你会看到四张表,
分别用于存放——

  • .ipa 文件下载地址(下图);
  • 安装过上述应用的设备 UDID 及安装时间;
  • 这套恶意程序的执行文件及其版本;
  • 设备 UDID ;

machook 目录内容

所以它们记录 UDID 是想做什么呢?
Interesting.

当然大家可能更好奇的是:
这些程序是如何被安装到我的电脑的呢?

排查工作更是费尽周折——
由于我知道恶意程序需要通过守护进程来工作,
而将 Plist 文件写入 LaunchDaemons 目录又是需要管理员权限的,
所以我那几天特别留意了一下异常的授权请求,
终于被我发现在启动某应用时会要求授权。
(由于它是个与开发相关应用,所以头一次询问我并未在意)

经回忆发现这个宿主应用下载自“麦芽地”,
解开这个被恶意修改过的宿主应用,
在其 Resource 目录下发现如下两个“可疑文件”,
(后确认原版应用中没有)

  • /Resource/FontMap1.cfg
  • /Resource/start.sh

其中 FontMap1.cfg 是个压缩包,
解压后你会发现就是初始状态的 /usr/local/machook/ 目录(下图)!
start.sh 则显而易见是用来部署恶意程序并清除安装文件的。

machook 目录内容

至此我们大致了解了整个排查过程。
目前我只知道恶意程序可能是通过 Xcode 的命令行工具实现静默安装应用的,(设备需开启开发模式)

2017-01-01 更新——
有位网名雪山飛狐的朋友询问应用安装的细节。
实际上它应该是通过 USB 使用 itms-services 协议直接将企业签名的应用安装到设备的,
并未使用什么高深技术。
我之前的描述有误,特此更新。也谢谢这位朋友。

希望有逆向实力的朋友帮忙看看其中还有什么猫腻。

点此下载恶意程序压缩档。

P.S.
目前还不知道这个恶意程序是哪一方建立的。
但包含恶意程序的宿主应用下载自“麦芽地”,
(据我在微博上联系到另外两例用户得知:
出现问题的宿主应用全都从“麦芽地”下载而来)
但首个被“推送”下来的应用是“PP助手正版”;
所以具体是哪一方建立了这个通道,
还请大家自行判断。


如下是我写的卸载脚本 machook_removal.sh点此下载),
“卸载”后会把文件全部备份到 ~/ppappinstaller/ 供你继续研究。
有一点需要提醒的是——
如果你不找出包含恶意程序的宿主应用,
那么有可能清除后它还会回来!
判断宿主文件的方法是执行特定操作时(如启动)会询问管理员权限
假如遇到莫名索取权限被授权后恶意程序又“复原”了,
那它必是宿主文件无疑!
请从麦芽地下载的应用排查起!
也可以通过如下命令进行检查(但不一定适用于所有情况):

#!/bin/bash
mkdir -p ~/ppappinstaller/Library/LaunchDaemons ~/ppappinstaller/usr/bin ~/ppappinstaller/usr/local

sudo launchctl unload /Library/LaunchDaemons/com.apple.globalupdate.plist
sudo mv /Library/LaunchDaemons/com.apple.globalupdate.plist ~/ppappinstaller/Library/LaunchDaemons
sudo mv /usr/bin/globalupdate ~/ppappinstaller/usr/bin

sudo launchctl unload /Library/LaunchDaemons/com.apple.itunesupdate.plist
sudo mv /Library/LaunchDaemons/com.apple.itunesupdate.plist ~/ppappinstaller/Library/LaunchDaemons
sudo mv /usr/bin/itunesupdate ~/ppappinstaller/usr/bin

sudo launchctl unload /Library/LaunchDaemons/com.apple.machook_damon.plist
sudo mv /Library/LaunchDaemons/com.apple.machook_damon.plist ~/ppappinstaller/Library/LaunchDaemons
sudo mv /usr/local/machook ~/ppappinstaller/usr/local/machook

sudo launchctl unload /Library/LaunchDaemons/com.apple.watchproc.plist
sudo mv /Library/LaunchDaemons/com.apple.watchproc.plist ~/ppappinstaller/Library/LaunchDaemons
sudo mv /usr/bin/WatchProc ~/ppappinstaller/usr/bin

sudo mv /usr/local/ipcc ~/ppappinstaller/usr/local/ipcc

echo -e "Done!"

标签: MacOSX, Security

已有 39 条评论

  1. WireLurker 来袭,怎样保护好你的Mac和iOS设备? | +7's Blog

    [...]今天,美国 Palo Alto Networks 网络安全公司宣称已发现一种新型 OS X/ iOS 系统恶意软件,并取名为「WireLurker」,破解Mac软件是这类程序生长的温床,当用户安装破解软件后,WireLurker 会像传统木马程序一样盗取用户端的私人数据,帮助黑客远程操控主机,而且当你使用USB线连接iOS设备时,它还能自动向iOS设备发起攻击,通过「企业部署」模式向非越狱iOS设[...]

  2. WireLurker恶意软件威胁未越狱苹果设备 查看排查方法 | 网站采集

    [...]WireLurker曝光后,网友迅速反应,制作出了排查脚本,通过运行此脚本可检查是否中招。另外如果中招,想彻底卸载比较麻烦,可查看这里和这里获取相关方法。[...]

  3. swagt swagt

    我发现在关闭cleanmymac2的时候会请求管理员权限。。。输入密码后删掉的病毒就回来了

    1. Chao QU Chao QU

      @swagt
      那证明它就是木马的宿主程序,
      请删除它之后再进行木马的清理。

  4. 反击:人肉OSX系统某木马作者 | 第八军团

    [...]附上木马清除脚本:http://www.quchao.com/entry/machook-killer/[...]

  5. faintcat faintcat

    = = PANW的报告里感谢博主你了呢

    1. Chao QU Chao QU

      @faintcat
      谢谢他。
      研报作者不愧是专业人士,
      探究过程叙述很完整。

  6. meow meow

    给root权限要三思而行,不能想都不想直接就给。

    1. Chao QU Chao QU

      @Meow
      一些系统或开发工具软件请求管理员很常见,
      所以容易放松警惕。

  7. 超級efly 超級efly

    好可怕啊...去檢查看看...

  8. LagunAPaTa LagunAPaTa

    还有/uer/bin/periodicdate 这个貌似还有进程保护
    如果KILL掉会直接被拉起来

  9. LagunAPaTa LagunAPaTa

    麻烦楼主关注下/usr/bin/systemkeychain-helper和/usr/bin/com.apple.MailServiceAgentHelper这两个文件 貌似是加载成服务了 需要kill掉然后手动给删除 这两个也在链接www.comeinbaby.com

    1. Chao QU Chao QU

      @LagunAPaTa
      我当初中的马还没有这两个文件(也可能是被我忽略了)。

      如果是这种情况,
      可以参考此帖进行杀除:

      http://bbs.maiyadi.com/forum.php?mod=viewthread&tid=950770&page=1&extra=#pid9307116

  10. 某次 Machook 木马社工事件 | Daily Post
  11. 不给力的面条 不给力的面条

    第一句时间写错了

    1. Chao QU Chao QU

      @不给力的面条
      谢谢提醒,已修正。

  12. andy andy

    我也是这种情况 不过没下载App 我是今天做Api接口的时候发现自己的手机有恶意请求并且传输了我的个人信息。 请求的网站是 www.comeinbaby.com

    1. Chao QU Chao QU

      @andy
      谢谢提醒,但我当时没注意到。
      大家可以看看 V2EX 对此行为的分析。

  13. shingoxray shingoxray

    我也中招了,能说下楼主和另外两位网友是哪些应用带的恶意软件么?
    我的似乎是FM2014汉化版。

    1. Chao QU Chao QU

      @shingoxray
      还有很多,估计列不完。
      大家还是尽量不要选择在这类站点下载软件。

  14. Catalpa Catalpa

    真厉害。

  15. ole ole

    写得很好,受教了!

  16. 源泉 源泉

    肾机,用不起。。

  17. xxxx xxxx

    这个malware还挺厉害的。

  18. koala koala

    宿主应用的macos文件夹下的可执行文件也被改了,带下划线的那个是原本的可执行文件,不带下划线的那个是恶意程序的loader

    1. Chao QU Chao QU

      @ koala
      多谢分享。

  19. Derek Derek

    确实是有问题,今天新买一台Air,除了一个Office 是在麦芽地下载的,其他都是在官方下的,结果出现类似问题,按照这个做了以后暂时没问题了。

  20. Rex Rex

    谢谢~按照方法差不多完成了,只是一开电脑avast还是会出现警告一两次显示试图连接comeinbaby.com,看avast显示这个后台一直想要上报我的sn以及手机号,终于知道imessage那么多垃圾信息为什么了。。。

    1. Chao QU Chao QU

      @Rex
      那就是木马还没有清理干净。

添加新评论