Mythic C2学习
字数 1840 2025-08-22 12:22:15
Mythic C2 框架详细使用指南
1. 用户与权限管理
1.1 用户操作
- 添加用户:通过右上角用户图标 → "NEW OPERATOR" 添加新用户
- 权限角色:
- Lead:管理员权限,可添加/删除用户和更改用户权限
- Operator:普通用户权限
- Spectators:只读权限,不能操作
1.2 操作组(Operation)管理
- 创建新组:通过"New Operation"创建,如命名为"operate"
- 切换当前组:使用"MAKE CURRENT"功能
- 组内成员管理:在组内"EDIT"界面添加/移除成员
- 权限隔离:不同组的Beacon相互不可见,需切换组才能查看
1.3 命令权限控制
- 可为特定用户限制可执行的命令
- 示例:禁止用户执行"shell"命令但仍可执行"run"命令
2. C2 Profile配置
2.1 基本配置
- 通过耳机图标访问所有代理和C2 Profile信息
- 配置为JSON格式,可设置:
- 服务器标头和端口
- TLS/SSL启用状态(
use_ssl) - 证书路径(
key path和cert path)
2.2 启动配置
- 配置完成后需手动启动
- HTTPS回调需设置端口为443
- 可配置代理日期、请求方式等参数
3. Payload生成与管理
3.1 生成Payload
- 通过"Create Payload"或"Generate New Payload"创建
- 选择操作系统:Linux/Windows/MacOS
- 选择代理类型(如medusa、Apollo、Poseidon)
- 选择命令集(可全选)
- 指定C2配置文件
- 设置回调地址(IP或CDN地址)
- 生成最终Payload文件
3.2 各代理特点
-
Apollo:
- 基于C#,仅Windows
- 支持进程迁移、mimikatz、程序集执行
- 支持HTTP(S)和SMB C2
-
Medusa:
- 基于Python,跨平台(Windows/Linux/MacOS)
- 可执行任意Python代码
- 支持HTTP(S) C2
-
Poseidon:
- 基于Go,面向Linux/MacOS
- MacOS特有功能如launchd持久性
- 支持HTTP(S)、TCP和Websocket
4. SOCKS5代理
- Apollo和Medusa支持SOCKS5
- 端口范围限制在7000-7010(可通过.env文件修改)
- 仅支持TCP,不支持UDP
- 使用建议:设置Beacon为Sleep 0以提高代理速度
5. 进阶功能
5.1 文件操作
- Upload功能:类似Cobalt Strike的文件上传
- Powershell导入:使用
powershell_import导入ps1脚本 - 文件删除:
rm [path]命令
5.2 进程注入
- shinject:将shellcode注入其他进程(比inject更安全)
- psinject:在指定进程中执行Powershell命令
- assembly_inject:将dotnet加载到目标进程并执行
5.3 其他命令
- secret_token:窃取令牌(类似CS),默认winlogon.exe
- spawnto_x86/x64:派生新会话
- screenshot_inject:进程截图(
pid count interval) - screenshot:截取当前屏幕
- rev2self:恢复原始令牌
- pth:Hash传递攻击
- net_dclist:获取域控制器列表
- keylog_inject:键盘记录(需指定pid)
- blockdlls:阻止非Microsoft DLL加载
6. Athena代理使用
6.1 安装
sudo ./mythic-cli install github https://github.com/MythicAgents/Athena
6.2 生成Payload
- 生成zip文件,内含exe
- 重要参数:
- Obfuscate:启用载荷加密
- Debug/Release:选择构建版本
6.3 特点
- 文件体积较大
- 可使用源码进行自定义修改
7. 注意事项
- 不同操作组的Beacon相互隔离
- 普通用户无法更改组配置
- SOCKS5代理需注意端口范围和TCP限制
- 注入命令需谨慎使用,避免Beacon下线
- HTTPS回调需正确配置SSL和443端口
- 生成Payload时注意选择正确的操作系统和代理类型
通过以上详细指南,用户可以全面掌握Mythic C2框架的各项功能,从基础用户管理到高级攻击操作,实现有效的团队协作和渗透测试任务执行。