T1543.004: 启动守护进程
摘要
攻击者可能创建或修改启动守护进程(Launch Daemon),以作为持久化的一部分执行恶意载荷。启动守护进程是用于与 Launchd(macOS 使用的服务管理框架)交互的 plist 文件。启动守护进程需要提升的权限才能安装,在登录之前为系统上的每个用户执行,并在后台运行而无需用户交互。在 macOS 初始化启动期间,launchd 进程从 <code>/System/Library/LaunchDaemons/</code> 和 <code>/Library/LaunchDaemons/</code> 中的 plist 文件加载按需启动的系统级守护进程的参数。必需的启动守护进程参数包括用于标识任务的 <code>Label</code>、用于提供可执行文件路径的 <code>Program</code>,以及用于指定任务运行时间的 <code>RunAtLoad</code>。启动守护进程通常用于提供对共享资源的访问、软件更新或执行自动化任务。(Citation: AppleDocs Launch Agent Daemons)(Citation: Methods of Mac Malware Persistence)(Citation: launchd Keywords for plists) 攻击者可能通过使用设置为 <code>true</code> 的 <code>RunAtLoad</code> 参数和设置为恶意可执行文件路径的 <code>Program</code> 参数,安装配置为在启动时执行的启动守护进程。守护进程名称可能通过使用相关操作系统或良性软件的名称来伪装(即[伪装](https://attack.mitre.org/techniques/T1036))。当启动守护进程执行时,程序继承管理员权限。(Citation: WireLurker)(Citation: OSX Malware Detection) 此外,系统配置更改(例如安装第三方包管理软件)可能导致 <code>usr/local/bin</code> 等文件夹变为全局可写。因此,不良配置可能允许攻击者修改当前启动守护进程 plist 文件所引用的可执行文件。(Citation: LaunchDaemon Hijacking)(Citation: sentinelone macos persist Jun 2019)
来源归属
来源:MITRE ATT&CK · 置信度:high
平台
- macOS
战术
持久化
参考来源
- https://attack.mitre.org/techniques/T1543/004
- https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html
- https://bradleyjkemp.dev/post/launchdaemon-hijacking/
- https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/pdf/reports/Unit_42/unit42-wirelurker.pdf
- https://www.real-world-systems.com/docs/launchdPlist.1.html
- https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf
- https://papers.put.as/papers/macosx/2016/RSA_OSX_Malware.pdf
- https://www.sentinelone.com/blog/how-malware-persists-on-macos/