Commander:一款功能强大的命令与控制C2服务器框架
2023-12-18 18:55:28 Author: FreeBuf(查看原文) 阅读量:11 收藏

 关于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环境。接下来,我们还需要使用下列命令安装该工具所需的其他依赖组件:

apt install libcurl4-openssl-dev libb64-devapt install opensslpip3 install -r requirements.txt

(向右滑动,查看更多)

 工具下载 

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

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

向右滑动,查看更多

 工具使用 

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

openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes

向右滑动,查看更多

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

python3 admin.py

然后再运行服务器模块:

python3 c2_server.py

最后运行代理模块:

# 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和代理,运行完成后即可使用下列命令查看所有可用的代理:

show agent all

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

task add all c2-shell id

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

show result all

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

show result 85913eb1245d40eb96cf53eaf0b1e241

向右滑动,查看更多

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

task add all c2-sleep 30

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

sessions server start 5555

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

task add your_prefered_agent_uuid_here c2-session 5555

向右滑动,查看更多

显示所有可用的连接:

sessions list

下载密码文件:

download /etc/passwd

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

upload test.txt

运行主CLI程序:

go back

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

sessions server status

停止会话服务器运行:

sessions server stop

 混淆处理 

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

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

python3 obfuscator.py

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

python3 obs_agent.py

 工具运行截图 

 项目地址 

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

FreeBuf粉丝交流群招新啦!
在这里,拓宽网安边界
甲方安全建设干货;
乙方最新技术理念;
全球最新的网络安全资讯;
群内不定期开启各种抽奖活动;
FreeBuf盲盒、大象公仔......
扫码添加小蜜蜂微信回复“加群”,申请加入群聊

文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NjA0NjgyMA==&mid=2651251235&idx=4&sn=11d8e7b1126a3ace389ae9994d9b53c9&chksm=bcd1916005eba347fdb1f0ef7ce830b7f0578be6d6d8782503d3ddffe4e04d53fcfe7b0acd13&scene=0&xtrack=1#rd
如有侵权请联系:admin#unsafe.sh