關于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-dev apt install openssl pip3 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
007bug

007bug
007bug
上官雨寶
一顆小胡椒
安全圈
HACK之道
FreeBuf
一顆小胡椒
上官雨寶
上官雨寶
RacentYY
上官雨寶