Cobalt Strike MCP服务器

用于通过自然语言命令管理Cobalt Strike操作的Model Context Protocol服务器,适用于安全测试和红队操作。

  • by MickeyDB
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 MickeyDB/Cobalt-Strike-MCP

使用说明

Cobalt Strike MCP服务器

模型上下文协议服务器,用于通过自然语言命令管理Cobalt Strike操作。 目前仅在Windows上使用Cursor和Claude进行了测试

先决条件

  • Node.js 18.0.0或更高版本
  • npm包管理器
  • 启用REST API的Cobalt Strike团队服务器
  • 与Cobalt Strike团队服务器的网络连接

安装

Windows安装

先决条件

  1. 从以下位置安装Node.js 18.0.0或更高版本 nodejs.org
  2. 以管理员身份打开PowerShell或命令提示符(用于全局安装)

全局安装(推荐)

全局安装该包以使 cobaltstrike-mcp 命令在系统范围内可用:

PowerShell:

npm install -g .

macOS/Linux安装

全局安装(推荐)

全局安装该包以使 cobaltstrike-mcp 命令在系统范围内可用:

npm install -g .

配置

在使用MCP服务器之前,您需要使用Cobalt Strike团队服务器凭据对其进行配置。

初始设置

运行setup命令以配置服务器:

cobaltstrike-mcp --setup

这将提示您:

  • 团队服务器URL:Cobalt Strike REST API的完整URL(例如。, https://teamserver.example.com:50050)
  • 用户名:您的Cobalt Strike用户名
  • 密码:您的Cobalt Strike密码
  • 验证SSL:是否验证SSL证书(是/否)

凭据安全地存储在操作系统凭据管理器(密钥环)中。

配置位置

配置文件存储在:

  • 视窗: %USERPROFILE%\.cobaltstrike-mcp\ 或 C:\Users\<username>\.cobaltstrike-mcp\
  • macOS/Linux: ~/.cobaltstrike-mcp/

文件夹:

  • config.json -非敏感配置(URL、SSL设置)
  • 凭据存储在操作系统密钥环中(Windows上的Windows凭据管理器)

用法

使用克劳德桌面

将MCP服务器添加到您的Claude Desktop配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cobaltstrike": {
      "command": "cobaltstrike-mcp",
      "args": []
    }
  }
}

带光标

Cursor通过其设置支持MCP服务器。要在Cursor中配置此MCP服务器,请执行以下操作:

  1. 打开光标设置:

    • 按 Ctrl+, (Windows/Linux)或 Cmd+, (macOS)
    • 或前往 File > Preferences > Settings
  2. 导航到MCP设置:

    • 在设置搜索栏中搜索“MCP”
    • 或者查找“模型上下文协议”设置
  3. 添加MCP服务器:

    • 点击“添加MCP服务器”或编辑MCP配置
    • 添加以下配置:
{
  "mcpServers": {
    "cobaltstrike": {
      "command": "cobaltstrike-mcp",
      "args": []
    }
  }
}
  1. 重新启动游标 在对配置进行更改之后。

可用工具

此MCP服务器通过以下方式提供对Cobalt Strike操作的全面访问 200+工具 分为以下几类:

Teamserver操作

  • get_teamserver_info -获取Cobalt Strike团队服务器的相关信息(版本、许可证、统计数据)
  • test_connection -测试与Cobalt Strike REST API服务器的连接

信标操作

  • list_beacons -列出teamserver中的所有活动信标
  • get_beacon -按ID获取特定信标的详细信息
  • execute_beacon_command -在信标上执行命令(例如,“whoami”、“ls”、“shell”、“powershell”)
  • get_beacon_output -从信标获取输出(控制台输出)
  • get_beacon_task -获取特定信标任务的状态和输出
  • kill_beacon -从teamserver中杀死/删除信标
  • note_beacon -在信标上添加或更新注释

信标状态管理

  • set_beacon_sleep -设置信标的睡眠时间和抖动
  • set_beacon_spawnto -将生成设置为处理信标
  • set_beacon_ppid -设置信标的父进程ID
  • set_beacon_syscall_method -设置信标的系统调用方法
  • set_beacon_dns_mode -为信标设置DNS模式
  • set_beacon_block_dlls -启用或禁用块DLL
  • set_beacon_beacon_gate -启用或禁用信标门
  • set_beacon_c2_host -为信标设置C2主机
  • set_beacon_c2_host_hold -保持C2主机(防止故障转移)
  • set_beacon_c2_host_release -释放C2主机(允许故障转移)
  • set_beacon_c2_host_reset -重置C2主机
  • set_beacon_spoofed_arguments -为信标设置欺骗性参数
  • set_beacon_c2_failover_notification -启用或禁用C2故障转移通知
  • get_beacon_jobs -让作业在信标上运行
  • get_beacon_c2_host_profiles -获取信标的可用C2配置文件
  • get_beacon_tokenStore -获取信标的令牌存储状态

监听器操作

  • list_listeners -列出teamserver中的所有活动侦听器
  • create_listener -创建新的侦听器(HTTP、HTTPS、DNS、SMB等)
  • delete_listener -从teamserver中删除/移除侦听器

侦听器特定操作

  • create_listener_http / get_listener_http / update_listener_http / delete_listener_http
  • create_listener_https / get_listener_https / update_listener_https / delete_listener_https
  • create_listener_dns / get_listener_dns / update_listener_dns / delete_listener_dns
  • create_listener_smb / get_listener_smb / delete_listener_smb
  • create_listener_tcp / get_listener_tcp / delete_listener_tcp
  • create_listener_externalC2 / get_listener_externalC2 / delete_listener_externalC2
  • create_listener_foreignHttp / get_listener_foreignHttp / delete_listener_foreignHttp
  • create_listener_foreignHttps / get_listener_foreignHttps / delete_listener_foreignHttps
  • create_listener_userDefinedC2 / get_listener_userDefinedC2 / delete_listener_userDefinedC2
  • get_listener -按ID获取侦听器

凭据管理

  • list_credentials -列出teamserver中存储的所有凭据
  • get_credential -按ID获取特定凭据的详细信息
  • create_credential -创建新的凭据条目
  • delete_credential -从teamserver中删除凭据

任务管理

  • list_tasks -列出所有信标中的所有任务或按信标ID过滤
  • get_task -按ID获取特定任务的详细信息
  • get_task_error -获取特定任务的错误信息
  • get_task_log -获取特定任务的日志信息
  • get_beacon_tasks_summary -获取特定信标的任务摘要
  • get_beacon_tasks_detail -获取特定信标的详细任务信息

文件操作

  • beacon_list_directory -在信标上列出目录内容
  • beacon_change_directory -更改信标上的当前目录
  • beacon_get_current_directory -获取信标上的当前工作目录
  • beacon_list_drives -在信标上列出可用驱动器
  • beacon_upload_file -将文件上传到信标
  • beacon_download_file -从信标下载文件
  • beacon_copy_file -在信标上复制文件
  • beacon_move_file -移动/重命名信标上的文件
  • beacon_delete_file -删除信标上的文件或目录
  • beacon_create_directory -在信标上创建目录

产卵操作(40+工具)

生成操作在新进程中执行命令。可用工具包括:

  • spawn_beacon -生成新的信标会话
  • spawn_powershell -执行PowerShell命令
  • spawn_command -执行命令(在新进程中生成)
  • spawn_shell -执行shell命令
  • spawn_screenshot -截图
  • spawn_hashdump -转储密码哈希值
  • spawn_mimikatz -运行Mimikatz
  • spawn_logon_passwords -使用Mimikatz转储登录密码
  • spawn_process_list -列出流程
  • spawn_beacon_asUser -以特定用户身份生成信标
  • spawn_beacon_under -在特定流程下生成信标
  • spawn_command_runAs -以特定用户身份运行命令
  • spawn_dcsync -执行DCSync攻击
  • spawn_keylogger -启动键盘记录器
  • spawn_chromedump -转储Chrome密码
  • spawn_dotnetAssembly -执行。NET程序集
  • spawn_net_computers -枚举计算机
  • spawn_net_dclist -列出域控制器
  • spawn_net_domainControllers -列出域控制器
  • spawn_net_domainTrusts -枚举域信任
  • spawn_net_group -枚举组
  • spawn_net_localGroup -枚举本地组
  • spawn_net_logons -枚举已登录的用户
  • spawn_net_sessions -枚举会话
  • spawn_net_share -枚举股份
  • spawn_net_time -从目标获取时间
  • spawn_net_user -枚举用户
  • spawn_net_user_detail -获取用户详细信息
  • spawn_net_view -查看网络资源
  • spawn_portscan -执行端口扫描
  • spawn_postExDll -加载漏洞利用后DLL
  • spawn_powershell_unmanaged -执行非托管PowerShell
  • spawn_printscreen -打印屏幕
  • spawn_pth -传递哈希值
  • spawn_screenwatch -开始屏幕观看
  • spawn_shellcode -执行外壳代码
  • spawn_ssh -注入SSH会话
  • spawn_sshKey -使用密钥注入SSH会话
  • 还有更多。..

注射操作(30+工具)

注入操作在现有进程中执行命令。可用工具包括:

  • inject_dcsync -执行DCSync攻击以提取域凭据
  • inject_net_computers -枚举计算机(注入模式)
  • inject_net_users -枚举用户(注入模式)
  • inject_net_user_detail -获取用户详细信息(注射模式)
  • inject_net_groups -枚举组(注入模式)
  • inject_net_sessions -枚举会话(注入模式)
  • inject_net_shares -枚举共享(注入模式)
  • inject_net_domain_controllers -列出域控制器(注入模式)
  • inject_portscan -执行端口扫描(注入模式)
  • inject_keylogger -在进程上启动键盘记录器
  • inject_chromedump -转储Chrome密码
  • inject_net_view -查看网络资源(注入模式)
  • inject_net_logons -枚举登录用户(注入模式)
  • inject_beacon -将信标注入进程
  • inject_dll -将DLL注入进程
  • inject_shellcode -执行外壳代码
  • inject_mimikatz -运行Mimikatz
  • inject_hashdump -转储密码哈希值(注入模式)
  • inject_logonPasswords -转储登录密码(注入模式)
  • inject_powershell_unmanaged -执行非托管PowerShell
  • inject_screenshot -截图
  • inject_printscreen -打印屏幕
  • inject_screenwatch -开始屏幕观看
  • inject_browserpivotStart -启动浏览器枢轴
  • inject_ssh -注入SSH会话
  • inject_sshKey -使用密钥注入SSH会话
  • inject_pth -传递哈希值(注入模式)
  • inject_postExDll -加载漏洞利用后DLL
  • inject_loadDll -加载DLL
  • 还有更多。..

执行操作

  • execute_kill_process -终止一个进程
  • execute_clipboard -获取剪贴板内容
  • execute_setenv -设置环境变量
  • execute_timestomp -修改文件时间戳
  • execute_checkin -强制信标登记
  • execute_exit -出口信标
  • execute_reg_query -查询注册表项
  • execute_reg_queryv -查询注册表值
  • execute_beacon_info -获取信标信息
  • execute_get_uid -获取用户ID
  • execute_job_stop -停止作业
  • execute_kerberos_ticket_purge -清除Kerberos票证
  • execute_kerberos_ticket_use -使用Kerberos票证
  • execute_powershell_import -导入PowerShell脚本
  • execute_net_domain -获取域信息
  • execute_browserpivot_stop -停止浏览器枢轴
  • execute_cancel_file_download -取消文件下载
  • execute_socks_stop_all -停止所有SOCKS代理
  • execute_socks_stop_port -停止特定端口上的SOCKS代理

令牌操作

  • execute_steal_token -从进程中窃取令牌
  • execute_make_token -使用登录凭据制作令牌
  • execute_rev2self -回归自我(丢弃假冒令牌)
  • execute_get_system -获取系统权限
  • execute_get_privs -获取特权
  • execute_tokenStore_use -使用令牌存储中的令牌
  • execute_tokenStore_steal -窃取令牌并将其添加到令牌存储中
  • execute_tokenStore_stealAndUse -窃取令牌并立即使用
  • execute_tokenStore_remove -从令牌存储中删除令牌
  • execute_tokenStore_removeAll -从令牌存储中删除所有令牌
  • execute_make_token_upn -使用UPN(用户主体名称)制作令牌

旋转操作

  • execute_socks4_start -启动SOCKS4代理
  • execute_socks5_start -启动SOCKS5代理
  • execute_socks_stop -停止SOCKS代理
  • execute_link_smb -链接到SMB信标
  • execute_link_tcp -链接到TCP信标
  • execute_unlink -取消与信标的链接
  • execute_rportfwd_start -正向启动反向端口
  • execute_rportfwd_stop -停止反向端口前进

升降操作

  • elevate_beacon -提升信标权限
  • elevate_command -提升指挥权限

远程执行操作

  • remoteExec_beacon -执行远程信标
  • remoteExec_command -执行远程命令

有效载荷生成

  • generate_stager_payload -为侦听器生成stager有效负载
  • generate_stageless_payload -为侦听器生成无阶段有效负载
  • download_payload -下载生成的有效载荷文件

BOF(信标对象文件)操作

  • execute_bof -在信标上执行BOF
  • execute_bof_pack -执行带包装的BOF
  • execute_bof_packed -执行打包的BOF

数据运营

  • list_screenshots -列出从信标捕获的所有屏幕截图
  • get_screenshot -按ID获取特定截图
  • list_keystrokes -列出从信标捕获的所有按键
  • get_keystrokes -按ID获取击键数据
  • list_downloads -列出从信标下载的所有文件
  • get_download -按ID获取下载信息

配置操作

  • get_system_information -获取系统信息
  • get_profile -获取C2配置文件
  • update_profile -更新C2配置文件
  • get_killdate -获取杀戮日期
  • set_killdate -设置终止日期
  • get_teamserver_ip -获取团队服务器IP
  • set_teamserver_ip -设置团队服务器IP
  • reset_data -重置数据

公用事业运营

  • get_artifacts -获取工件
  • get_beacon_active_downloads -获取信标的有效下载
  • clear_beacon_command_queue -清除信标命令队列
  • get_beacon_help -获取信标帮助
  • get_beacon_command_help -获取特定信标命令的帮助
  • get_beacon_keystrokes -获取信标的按键

钴击休息API

此MCP服务器与Cobalt Strike REST API交互。有关API的详细文档,请参阅:

安全考虑

⚠️ 重要安全注意事项:

  • 此工具仅用于授权的安全测试和红队行动
  • 凭据存储在操作系统凭据管理器中
  • 可以禁用SSL证书验证以进行测试(不建议用于生产)
  • 所有操作均由Cobalt Strike团队服务器记录
  • 在获得适当授权并遵守适用法律的情况下使用

许可证

GPL-3.0

参考文献