kavin-jindal/SamsaC2
GitHub: kavin-jindal/SamsaC2
基于 Discord API 的 Windows 命令与控制框架,通过 Discord Bot 信道实现远程系统管理与安全测试。
Stars: 0 | Forks: 0
# SamsaC2 - Discord 命令与控制框架
一个基于 Discord 的命令与控制 (C2) 框架,用于远程系统管理和安全研究。该项目通过 Discord bot 集成展示了高级命令执行、系统操作和远程管理功能。
## 目录
- [功能特性](#features)
- [前置条件](#prerequisites)
- [安装说明](#installation)
- [快速开始](#quick-start)
- [故障排除](#troubleshooting)
- [许可证](#license)
- [贡献指南](#contributing)
- [免责声明](#disclaimer)
- [联系与支持](#contact--support)
- [关于开发者](#about-the-developers)
## 功能特性
### 核心能力
- **远程 Shell 执行** - 远程执行 Windows CMD 命令
- **PowerShell 集成** - 运行 PowerShell 脚本和命令
- **进程管理** - 列出并终止正在运行的任务
- **文件传输** - 通过 Discord 上传/下载文件
- **系统信息** - 获取系统详细信息和 IP 信息
- **屏幕截图捕获** - 对目标系统进行截屏
- **剪贴板访问** - 读取和操作系统剪贴板
- **加密/解密** - 使用 Fernet 加密进行安全文件操作
### 高级功能
- **持久化** - 自动添加启动注册表项
- **长输出处理** - 将大型命令输出存储为文件
- **IP 检测** - 公网 IP 地址获取
- **混淆** - PyInstaller 可执行文件编译
- **会话管理** - 维护多个活动的远程会话
## 前置条件
- **Python 3.8+**
- **Windows OS**(主要目标)
- **管理员权限**(用于系统级操作)
## 安装说明
### 1. 克隆仓库
```
git clone https://github.com/yourusername/SamsaC2.git
cd SamsaC2
```
### 2. 安装依赖
```
pip install -r requirements.txt
```
### 依赖概览
| 包名 | 用途 |
|---------|---------|
| `nextcord` | Discord bot 框架 |
| `pyscreeze` | 屏幕截图捕获 |
| `psutil` | 进程管理 |
| `pyautogui` | 自动化 GUI 控制 |
| `requests` | HTTP 请求 |
| `cryptography` | Fernet 加密 |
| `pillow` | 图像处理 |
| `pyinstaller` | 可执行文件编译 |
## 快速开始
### Discord Bot 设置
在使用编译器之前,你需要设置一个 Discord bot 并获取必要的凭据:
#### 步骤 1:创建 Discord Bot
1. 前往 [Discord 开发者门户](https://discord.com/developers/applications)
2. 点击 **"New Application"** 并为其命名
3. 导航到 **"Bot"** 部分并点击 **"Add Bot"**
4. 在 **TOKEN** 下,点击 **"Copy"** 复制你的 bot token(请保密!)
#### 步骤 2:配置 Bot Intents
1. 在 Bot 部分,滚动到 **"INTENTS"**
2. 启用以下 intents:
- **Message Content Intent**(读取命令所需)
- **Server Members Intent**(用于成员管理)
- **Guilds**(用于服务器访问)
#### 步骤 3:设置 Bot 权限
1. 导航到 **"OAuth2"** → **"URL Generator"**
2. 在 **"SCOPES"** 下,选择:
- `bot`
3. 在 **"PERMISSIONS"** 下,选择:
- **Administrator**(以确保完全访问权限)
4. 复制生成的 URL 并使用它将 bot 邀请到你的服务器
#### 步骤 4:编译器配置
运行 `compiler.py` 时,系统将提示你输入:
- **Bot Token**:粘贴来自你的 Discord bot 的 token(从开发者门户获取)
- **Prefix**:选择一个命令前缀(例如 `!`, `$`, `.`)用于执行命令
- **Executable Name**:编译后的可执行文件名(例如 `samsac2`)
- **Server Name**:C2 将运行的 Discord 服务器名称
- **Encryption Key**:用于加密/解密文件的 Fernet 密钥
#### 生成 Fernet 加密密钥
要生成 Fernet 密钥,请运行:
```
from cryptography.fernet import Fernet
key = Fernet.generate_key()
print(key.decode())
```
复制生成的密钥并在编译器提示时粘贴。
## 设置
### 步骤 1:安装依赖
安装所有必需的 Python 包:
```
pip install -r requirements.txt
```
### 步骤 2:运行编译器
使用编译器脚本生成脚本及其可执行版本:
```
python compiler.py
```
这将:
- 生成 C2 脚本
- 使用 PyInstaller 生成编译后的可执行文件
- 将输出放在 `dist/` 目录中
### 步骤 3:使用生成的可执行文件
在 `dist/` 文件夹中找到编译后的可执行文件。将其作为独立程序运行,无需在目标系统上安装 Python。
### Discord 命令
对于运行 bot 实例的用户,可以使用以下命令
(使用配置的前缀):
| 命令 | 描述 |
|---------|-------------|
| `help` | 显示帮助菜单 |
| `cmd ` | 执行 shell 命令 |
| `cd ` | 切换目录 |
| `ps ` | 运行 PowerShell 命令 |
| `tasklist` | 列出正在运行的进程 |
| `stoptask ` | 按名称终止进程 |
| `ss` | 截取屏幕截图 |
| `send ` | 将文件上传到客户端的指定位置 |
| `recv ` | 从客户端下载文件 |
| `encrypt ` | 加密文件 |
| `decrypt ` | 解密已加密的文件 |
| `hide ` | 隐藏文件或目录 |
| `unhide ` | 取消隐藏文件或目录 |
| `press ` | 模拟按键 |
| `type ` | 在光标处输入文本 |
| `clipboard` | 读取剪贴板内容 |
| `web ` | 在默认浏览器中打开 URL |
| `wifip` | 获取已保存的 Wi‑Fi 密码 |
| `quit` | 退出会话 |
## 未来更新
- [ ] Keylogger 集成
- [ ] 摄像头和麦克风监控
- [ ] 显示器操作
## 故障排除
### 导入错误
确保已安装依赖:
```
pip install -r requirements.txt
```
### 加密/解密问题
- 验证加密和解密操作之间的密钥是否匹配
- 检查文件权限(文件必须可读/写)
- 确保有足够的磁盘空间进行大文件操作
### 可执行文件构建失败
- 检查是否安装了 PyInstaller:`pip install pyinstaller`
- 确保已安装所有依赖:`pip install -r requirements.txt`
- 检查编译器输出中是否有隐藏导入警告
## 代码示例
### 使用 samsac2.py 核心模块
执行系统命令:
```
import samsac2
# 运行 shell 命令
output = samsac2.cmd('whoami')
print(output) # Output: ```username```
# 更改目录
samsac2.cd('C:\\Windows')
```
### 文件加密
```
import samsac2
# 加密敏感文件
samsac2.encrypt('sensitive_data.txt')
# 随后,解密它
samsac2.decrypt('sensitive_data.txt')
```
### 剪贴板操作
```
import samsac2
# 读取剪贴板内容
text = samsac2.clipboard()
print(f"Clipboard: {text}")
```
### 截取屏幕截图
```
import samsac2
# 截图已保存到 temp 目录
samsac2.screenshot()
# 文件保存于:C:\Users\[user]\AppData\Local\Temp\ss1.png
```
## 许可证
本项目按“原样”提供,用于教育目的。请自担风险修改和使用。
## 贡献指南
欢迎贡献!请:
1. Fork 本仓库
2. 创建一个功能分支
3. 提交你的更改
4. 推送到分支
5. 提交 Pull Request
## 免责声明
**法律警告**:本软件仅用于授权的安全测试和教育目的。根据计算机欺诈和滥用法(18 U.S.C. § 1030)及类似的国际法律,未经授权访问计算机系统是非法的。作者不对因使用本软件不当或造成的损害负责。
## 关于开发者
### Avyukt Security
- [**Medium**](https://medium.com/@avyuktsec)
- [**LinkedIn**](https://www.linkedin.com/company/avyukt-security/)
- [**Website**](https://avyukt-security.gitbook.io/home/team)
## 联系与支持
如有问题或疑问,请开启 GitHub issue 或提交 Pull Request。
**最后更新**:2026 年 3 月 4 日
**状态**:积极开发中
标签:Awesome, Botnet, C2框架, Discord API, Discord Bot, DNS 反向解析, Fernet, HTTP工具, IPv6, Nextcord, OpenCanary, PowerShell, PyInstaller, Python, RAT, WebSocket, 依赖分析, 信道隐蔽, 剪贴板监控, 后渗透, 命令与控制, 安全学习资源, 屏幕截图, 数据加密, 文件传输, 无后门, 无线安全, 注册表, 混淆, 漏洞挖掘, 社交平台C2, 系统管理, 远控木马, 远程Shell, 逆向工具