macOS恶意软件驻留技术分析

处理Malware的过程中,发现一个翻译的文章,还不错,转载过来供读者学习借鉴!

本文分析研究人员之前见过的macOS恶意软件驻留技术。

不管是加密货币挖矿、广告恶意软件劫持、或监听用户的恶意软件都有一个共同点:就是需要在终端上实现驻留。在苹果macOS平台上,攻击者有多种方法来实现驻留。下面对研究人员之前见过的macOS恶意软件驻留技术进行分析。

LaunchAgent

在macOS上实现驻留的最常见方式是通过LaunchAgent。Mac用户在Library文件夹下都有一个LaunchAgent文件夹,用来指定用户每次登陆后要执行的代码。系统还有一个自己的LaunchAgents文件夹。因为该文件夹是由于macOS自己管理的,默认请求下恶意软件不会进入该文件夹。

LaunchAgents以property list file的形式来指定要执行的文件,或包含要执行的命令。

因为用户LaunchAgents安装过程中不需要权限,因此这是最简单也是最常见的驻留方式。但在OSX 10.7 Lion之后版本,用户默认情况下隐藏了父Library文件夹,使攻击者更加容易地可以隐藏代理。

用户可以通过手动检查的方式来找出该库,但企业安全解决方案应当监控文件夹的内容,并对写入该位置的恶意进程进行拦截或发出告警。

LaunchDaemon

LaunchDaemons只存在于计算机或系统级,从技术上讲是为驻留代码预留的,因为不与用户交互,因此对恶意软件来说是完美的。攻击者将daemon写入/Library/LaunchDaemons需要管理员权限。因为大多数mac用户都是管理员用户,所以习惯上会在请求认证时为软件提供认证来安装组件。在下图中,计算机被三个不同的、恶意LaunchDaemons感染了。

 

因为LaunchDaemons运行在开始菜单中,因此安全软件意识到什么daemon在运行,以及什么时间写新的daemon非常重要。作为System LaunchAgents,System LaunchDaemons是受SIP保护的,所以首先要监控的位置是/Library/LaunchDaemons

不要认为你认识的标记就不是恶意的。一些指向未签名代码的合法LaunchDaemons可能会被一些恶意代码所替换。比如,Wireshark就说使用了LaunchDaemon /Library/LaunchDaemons/org.wireshark.ChmodBPF.plist
执行未签名代码的路径为:
/Library/Application Support/Wireshark/ChmodBPF/ChmodBPF
苹果自己还使用并不会立刻清除的LaunchDaemon:
/Library/LaunchDaemons/com.apple.installer.cleanupinstaller.plist
它指向了可能会被恶意代码替换的 /macOS Install Data 文件夹中的可执行文件。

有了全新后,攻击者就可以修改这些property plist的程序参数或指向的可执行文件来获取驻留。因为这些程序会以root权限运行,安全解决方案好像也没有什么用处。

Profiles

Profiles一般是组织使用,允许IT管理员管理用户机器,但被恶意软件作者误用了。随着Profiles通过邮件或网站传播,诱使用户安装只是社会工程的一个元素。

配置profiles使用户使用特定的浏览器设置、DNS代理设置、VPN设置。许多其他的payload都有可能使其被滥用。

用户也可以在System Preferences Profiles面板查看Profiles,管理员也可以枚举/Library/Managed Preferences文件夹来查看Profiles。但在profiles没有安装的系统中是不会存在System Preferences Profiles面板和文件夹的。

Cron

恶意软件开发者还盯上了有漏洞的cron作业。虽然苹果已经宣布新的cron作业要求用户交互在10.15 Catalina上安装,但这并不影响攻击者使用它作为一种驻留的方法。当用户已经被诱使安装了恶意软件,那么用户提示就已经不是一种有效的安全措施了。AdLoad 和Mughthesec恶意软件就使用恶意cron作业来实现驻留。

20190621165505-439c04ea-9402-1.pnguploading.4e448015.gif转存失败重新上传取消20190621165505-439c04ea-9402-1.pnguploading.4e448015.gif转存失败重新上传取消20190621165505-439c04ea-9402-1.pnguploading.4e448015.gif转存失败重新上传取消

Kexts

内核扩展被合法软件广泛用于实现驻留,比如PUP软件MacKeeper。开源的keylogger logkext也已经出现很多年了,但kexts并不是恶意软件常用的方法,因为相对来说比较难创建、缺乏隐蔽性、很容易被移除。

如何找到驻留的Login Items

苹果对Login Items做出的修改对恶意软件驻留带来了新的讲话。Login Items很容易就可以通过System Preferences工具进行枚举,但苹果的一个新机制可以使安装的应用程序在登陆时自启动,即将Login Item加入到bundle中。虽然该机制的目的是让合法开发者通过app的用户接口位logIn项目提供控制,广告恶意软件和PUP软件开发人员滥用该机制作为一种驻留机制,因为对用户来说,可靠地枚举出哪些应用含有login item是很难的。
对普通用户来说枚举所有的Login Items很不简单,但对admin来说就很简单了,只需要分析下面的文件就可以了:
~/Library/Application Support/com.apple.backgroundtaskmanagementagent/backgrounditems.btm

AppleScript & Friends

对AppleScript来说,Apple最有用的工具“swiss army knife”可以提供一些驻留的方法。第一个是使用Folder Actions,允许攻击者执行代码,甚至可以远程读取内容到内存中。这是一种聪明的无文件恶意软件攻击方法。

 

还有一种方法是利用Mail规则来完成驻留,具体是发送给受害者一个精心伪造的邮件来触发代码。该方法是静默的,而且可以绕过许多监测工具。防护者可以通过分析ubiquitous_SyncedRules.plist文件和SyncedRules.plist文件来检查是否有可疑的mail规则。比如,快递的bash脚本grep -A1 "AppleScript" ~/Library/Mail/V6/MailData/SyncedRules.plist
可疑枚举所有调用AppleScripts的Mail规则。然后检查是否有恶意内容。

Also Ran

rc.commonlaunchd.conf已经不支持在macOS上运行了,在10.9 Mavericks版本之后就移除了对StartupItems的支持。纵然如此,一些老旧的nix tricks仍然在被使用。包括使用jobsperiodics和loginhooks,以及emond服务。

Periodics

Periodics是常被用于驻留的系统脚本,可以计划每天、每周和每月运行。Periodics的内容保存在文件夹etc/periodic中。

列出每个子文件夹的内容可以看出periodics的标准集。如果没有发现其他内容,那么这些内容都是可疑的,应该对其进行检查。

如下图所示,uptime脚本可以在没有用户交互或通知的情况下每天运行。

 

LoginHooks和LogoutHooks

LoginHooks和LogoutHooks目前已经很少使用了,但在macOS Mojave中仍然是实现驻留的一种很好的方法。从名字就可以看出,当用户登入或登出的时候这些机制就会运行。

写这些hook很简单,但是检查这些文件是否存在也很简单。下面的命令就可以返回是否有LoginHook或LogoutHook值的结果:
sudo defaults read com.apple.loginwindow
如果有,就表明这是一个到该脚本的命令或路径,然后考虑是否进一步调查。

At Jobs

at jobs的知名度就相对低一些了。但是运行一次后,虽然默认是不启用的,但是也有一些方法可以在系统重启时运行代码。单次使用可能并没有什么问题,因为at jobs每次结束都会被重写,但许多用户尤其是没有经验的管理员可能并不会注意到jobs。
可以通过枚举/var/at/jobs目录来检查计划任务的at jobs。Jobs的前缀有一个字母a,名字为十六进制风格,如下图所示:

Emond

在OSX 10.5 Leopard中,苹果引入了一种新的名为emond的登入机制。看起来emond并没有完全开发完成就被苹果公司放弃了,但在macOS 10.14 Mojave中仍然是可用的。
2016年,研究人员James Reynolds对emond和其能力进行了综合型的分析,并得出结论:在perl脚本中登入、运行命令或发送邮件很容易,那么为什么我要用emond而不是脚本呢?
而且很多mac admin可能并不知道该服务,但是对攻击者来说,管理员不了解的驻留机制或许是最好的方法。
监测emond的恶意使用并不难,只需要运行以下脚本就可以了:
/private/var/db/emondClients
管理员也可以很容易地进行检查来查看攻击者是否在该位置放置了恶意文件:

因为emond在很多环境中是没有合法使用的理由的,所以emondClient目录中找到的文件都是可疑的。

结论

从上面的分析可疑看出,在macOS中完成驻留有很多的方法。因为管理员应该多了解一些macOS中驻留的方法并及时发现恶意内容,也可以使用一些安全产品来检测和防止macOS恶意软件驻留。

翻译自:
https://www.sentinelone.com/blog/how-malware-persists-on-macos/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
"macOS软件安全与逆向分析"是一本关于MAC操作系统软件安全和逆向分析的PDF书籍。本书主要介绍了MAC操作系统的安全性与保护机制,以及逆向分析的基础知识和工具。 首先,MAC操作系统以其高度的安全性而闻名。它采用了各种技术来保护用户的数据和隐私,如设备锁定和文件加密。这本书将详细介绍MAC操作系统的安全特性,并教授读者如何利用这些特性来保护他们的软件和数据。 其次,逆向分析是一种研究和分析软件的方法。它可以帮助人们理解软件的内部机制和算法,以及在必要时修改其行为。逆向分析在软件开发、安全性测试和漏洞修复等领域都有重要的应用。这本书将介绍逆向分析的基本概念和技术,并提供实用的指导,帮助读者掌握这一技能。 "macOS软件安全与逆向分析"的PDF版本为读者提供了便捷的阅读方式。读者可以通过电子设备随时随地访问并学习其中的内容。该书通过详细的案例和实例来解释概念,并提供丰富的图表和代码示例来帮助读者理解和应用所学知识。 总的来说,"macOS软件安全与逆向分析"是一本有关MAC操作系统软件安全和逆向分析的重要参考资料。它为读者提供了全面的知识和技能,帮助他们更好地理解和保护MAC软件,同时学习和应用逆向分析技术。无论是从事软件开发还是安全性测试的人员,都可以从这本书中获得实用的指导和技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值