FreeBuf|Alerts在macOS上实现持久化,如何利用Calendar( 二 )
首先 , 我们需要配置Mythic , 然后获取ApfellPayload 。 Mythic提供了比较详细的配置文档 , 具体请参考这篇【文档】 。 接下来 , 我们需要使用jsimport命令将功能导入到Apfell中:
文章图片
此时 , 我们的脚本代码已经嵌入到了ApfellPayload中了 。 现在 , 我们需要枚举用户的日历 , 这里可以使用list_calendars函数来实现 , 不过这个操作需要用户授权:
文章图片
这里我们选择Automator日历 , 记录下对应的UID 。 接下来 , 我们使用JXA中的persist_calalert函数来创建新的事件 。 该函数调用方式如下所示:
persist_calalert("MyEvent",//Title"/Users/rookuu/Library/Apfell.app",//TargetApp60,//Delayinseconds"daily",//Frequencyofrecurrence1,//Intervalofrecurrence3,//Numberofevents"711CE045-7778-4633-A6FA-27E18ADD0C17"//UIDofthecalendar)接下来 , 进程将会创建新的事件 , 然后将其插入到日历中 。 Delayinseconds参数表示第一个事件被触发的时间 , 后面的参数分别代表持久化操作触发的频率、间隔以及事件数量 。 在我们的演示样例中 , 我们将连续三天每天创建一个新的事件 , 事件触发时便会执行我们的恶意软件:
文章图片
在Apfell中开始攻击后 , 我们可以在日历中看到操作结果 。 首次事件将在2020年10月9日18:53触发 , 执行指定的应用程序 。 在这个演示样例中 , 我们将执行ApfellPayload , 并且在指定的时间段内拿到Shell , 实现持久化感染 。
macOS沙箱至此 , 我们并没有考虑到macOS系统上的沙箱机制 , 因此我们还要想办法在Calendar沙箱外执行代码 。
文章图片
但是经过分析之后 , 我们发现我们并不需要关心沙箱逃逸的问题 , 因为我们一开始就没有在沙箱里面 。 虽然Calendar是一个沙箱化进程 , 但通过警报方式执行的应用并没有被沙箱化处理 。 如上图所示 , 我们执行的应用CalendarAlarmSandboxTest并没有在沙箱中 。
参考资料https://research.nccgroup.com/2020/05/05/exploring-macos-calendar-alerts-part-1-attempting-to-execute-code/))
https://github.com/FSecureLABS/CalendarPersist?
文章图片
- 原来MacOS这样实现“显示桌面”功能,比Windows强大
- 威锋网|Big Sur 11.0.1修订版:更新内容未知,苹果发布macOS
- ETtoday生活方式|新系统macOS Big Sur更新崩溃了!,MacBook
- IT之家|Mac M1 版发布:为苹果 macOS Big Sur 优化,Twitter
- IT之家|Win10或将迎来类似macOS的查找鼠标光标功能
- FreeBuf|VMDR自动识别PAN-OS缓冲区溢出漏洞,如何使用Qualys
- FreeBuf|× 漏洞盒子,「大圣云沙箱」正式上线,永久免费开放|FreeBuf
- FreeBuf|Linux系统sysupdate挖矿病毒之update.sh脚本分析
- cnBeta|亚马逊音乐和惠普打印机驱动程序被macOS误认为是恶意软件
- FreeBuf|| FreeBuf咨询,《2020企业安全威胁统一应对指南》正式启动