前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Commander:一款功能强大的命令与控制C2服务器框架

Commander:一款功能强大的命令与控制C2服务器框架

作者头像
FB客服
发布2023-12-19 20:33:27
2690
发布2023-12-19 20:33:27
举报
文章被收录于专栏:FreeBufFreeBuf

关于Commander

Commander是一款功能强大的命令与控制C2服务器框架,在该工具的帮助下,广大红队和蓝队研究人员可以轻松部署自己的C2组件。该工具基于Python开发、Flask和SQLite开发,并提供了Python和C版本的代理。

当前Commander仍处于积极开发状态,欢迎社区中的广大研究人员提供宝贵意见或贡献自己的代码。

功能介绍

1、完全加密的通信数据(TLS); 2、多代理支持; 3、代码混淆; 4、交互式会话; 5、支持自定义功能扩展; 6、Base64数据编码; 7、RESTful API;

代理

Python3版本

Python版本的代理支持以下功能:

1、会话支持:支持在管理端和代理之间建立交互式Shell(类似SSH); 2、混淆处理; 3、支持Windows和Linux操作系统; 4、提供文件下载/上传功能;

C版本

C语言版本的代理支持以下功能:

1、仅支持基础功能,即控制代理执行的任务; 2、仅支持Linux操作系统;

工具流程图

常规执行流程图

代理重新注册流程图

工具要求

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python >= 3.6环境。接下来,我们还需要使用下列命令安装该工具所需的其他依赖组件:

代码语言:javascript
复制
apt install libcurl4-openssl-dev libb64-dev
apt install openssl
pip3 install -r requirements.txt
(向右滑动,查看更多)

工具下载

在配置好工具运行环境和依赖组件之后,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

代码语言:javascript
复制
git clone https://github.com/voukatas/Commander.git
(向右滑动,查看更多)

工具使用

首先,我们需要创建工具需要的证书和密钥(如果你需要使用密码保护你的密钥安全,请不要使用-nodes选项):

代码语言:javascript
复制
openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes
(向右滑动,查看更多)

先启动admin.py模块来创建一个本地SQLite数据库文件:

代码语言:javascript
复制
python3 admin.py

然后再运行服务器模块:

代码语言:javascript
复制
python3 c2_server.py

最后运行代理模块:

代码语言:javascript
复制
# python 代理

python3 agent.py

# C 代理

gcc agent.c -o agent -lcurl -lb64

./agent

默认配置下,代理和服务器都会在TLS和Base64的上下文中运行,通信端设置为了127.0.0.1:5000,如需修改这个地址,编辑代理源代码文件即可。

工具运行演示

请先配置admin.py文件来搭建你的环境,然后运行c2_server.py和代理,运行完成后即可使用下列命令查看所有可用的代理:

代码语言:javascript
复制
show agent all

控制所有代理运行“id”命令:

代码语言:javascript
复制
task add all c2-shell id

查看“id”命令运行结果:

代码语言:javascript
复制
show result all

检查指定代理的运行结果:

代码语言:javascript
复制
show result 85913eb1245d40eb96cf53eaf0b1e241
(向右滑动,查看更多)

修改代理检查任务的时间间隔为30秒:

代码语言:javascript
复制
task add all c2-sleep 30

启用服务器接收传入的连接:

代码语言:javascript
复制
sessions server start 5555

使用指定会话向目标代理添加任务:

代码语言:javascript
复制
task add your_prefered_agent_uuid_here c2-session 5555
(向右滑动,查看更多)

显示所有可用的连接:

代码语言:javascript
复制
sessions list

下载密码文件:

代码语言:javascript
复制
download /etc/passwd

上传一个test.txt文件到代理所在目录:

代码语言:javascript
复制
upload test.txt

运行主CLI程序:

代码语言:javascript
复制
go back

检查服务器是否正在运行:

代码语言:javascript
复制
sessions server status

停止会话服务器运行:

代码语言:javascript
复制
sessions server stop

混淆处理

Python代理支持使用基本的AES ECB加密和Base64编码来进行混淆处理。

编辑obfuscator.py文件并将“key”值修改为一个16字符长度的密钥以创建一个自定义Payload,新代理输出的内容可以在“Agents/obs_agent.py”下找到:

代码语言:javascript
复制
python3 obfuscator.py

然后按运行代理的方法运行下列脚本即可:

代码语言:javascript
复制
python3 obs_agent.py

工具运行截图

项目地址

Commander:https://github.com/voukatas/Commander

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-18,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关于Commander
  • 功能介绍
  • 代理
    • Python3版本
      • C版本
      • 工具流程图
        • 常规执行流程图
          • 代理重新注册流程图
          • 工具要求
          • 工具下载
          • 工具使用
          • 工具运行演示
          • 混淆处理
          • 工具运行截图
          • 项目地址
          相关产品与服务
          Serverless HTTP 服务
          Serverless HTTP 服务基于腾讯云 API 网关 和 Web Cloud Function(以下简称“Web Function”)建站云函数(云函数的一种类型)的产品能力,可以支持各种类型的 HTTP 服务开发,实现了 Serverless 与 Web 服务最优雅的结合。用户可以快速构建 Web 原生框架,把本地的 Express、Koa、Nextjs、Nuxtjs 等框架项目快速迁移到云端,同时也支持 Wordpress、Discuz Q 等现有应用模版一键快速创建。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com