b4ndit23/ShellCrypt
GitHub: b4ndit23/ShellCrypt
一个将 shell 命令加密并输出 NASM 汇编格式的 Python 工具,用于 shellcode 和二进制开发中隐藏命令字符串。
Stars: 1 | Forks: 1
# ShellCrypt
一个 Python 实用程序,用于加密 shell 命令,支持多种加密方法,以便在汇编程序中使用。将你的侦察命令转换为混淆后的字节码,使其融入二进制环境。
## 功能特性
- **多种加密方法:**
- XOR (单字节密钥)
- 多字节 XOR (旋转密钥)
- ROT 密码 (字节旋转)
- ChaCha20 (流密码)
- AES-128 ECB (兼容 AES-NI)
- **灵活的输入/输出:**
- 加密单个命令
- 从文件批量加密
- 解密已加密的命令
- 生成 NASM 格式的输出
- **汇编集成:**
- 输出 NASM `db` 指令
- 包含长度定义
- 可选的标签命名
## 安装说明
### 前置条件
- Python 3.6+
- `pycryptodome` (仅 AES 加密需要)
### 设置
```
# 克隆仓库
git clone
cd command-encryption-tool
# 安装依赖(可选,仅 AES 需要)
pip install pycryptodome
```
## 使用方法
### 基础示例
**使用 XOR 加密单个命令:**
```
python3 encrypt_commands.py -c "whoami" -m xor -k 0xAA
```
输出:
```
db 0xc5, 0xc4, 0xc6, 0xc8, 0xc2, 0xc0, 0
; length: 6, cmd: "whoami"
```
**使用自定义标签加密:**
```
python3 encrypt_commands.py -c "hostname" -m xor -k 0xAA -l cmd_hostname
```
输出:
```
cmd_hostname:
db 0xc2, 0xcf, 0xd3, 0xd4, 0xc8, 0xc2, 0xc8, 0xc0, 0
cmd_hostname_len equ 8 ; "hostname"
```
### 加密方法
**多字节 XOR:**
```
python3 encrypt_commands.py -c "ls -la" -m multibyte -mk 0xAA,0xBB,0xCC,0xDD
```
**ROT 密码:**
```
python3 encrypt_commands.py -c "ls -la" -m rot -r 13
```
**ChaCha20:**
```
python3 encrypt_commands.py -c "whoami" -m chacha20
```
**AES-128:**
```
python3 encrypt_commands.py -c "hostname" -m aes
```
### 批量处理
创建一个文件 `commands.txt`:
```
whoami
hostname
uname -a
cmd_ps:ps aux
```
加密所有命令:
```
python3 encrypt_commands.py -f commands.txt -m xor -k 0xAA -o encrypted_commands.asm
```
### 解密
**解密加密后的字节:**
```
python3 encrypt_commands.py -d "0xc5,0xc4,0xc6,0xc8,0xc2,0xc0" -m xor -k 0xAA
```
输出:
```
Decrypted: whoami
```
## 命令行选项
| 选项 | 描述 |
|--------|-------------|
| `-c, --command` | 要加密的命令字符串 |
| `-f, --file` | 包含命令的文件 (每行一个) |
| `-d, --decrypt` | 解密加密的字节 (格式: 0xXX,0xYY,...) |
| `-m, --method` | 加密方法: xor, multibyte, rot, chacha20, aes |
| `-k, --key` | 加密密钥 (十六进制: 0xAA 或十进制: 170) |
| `-mk, --multibyte-key` | 多字节密钥 (逗号分隔: 0xAA,0xBB,0xCC,0xDD) |
| `-r, --rotation` | ROT 密码旋转量 (默认: 13) |
| `-l, --label` | NASM 标签名 (例如, cmd_whoami) |
| `-o, --output` | 输出文件 (默认: stdout) |
## 文件格式
当使用 `-f` 批量处理命令时,文件格式为:
```
# 注释以 # 开头
command1
command2
# 可选:指定标签
label_name:command3
```
## 与汇编集成
该工具输出与 NASM 兼容的语法,可直接包含在汇编程序中:
```
section .data
cmd_whoami:
db 0xc5, 0xc4, 0xc6, 0xc8, 0xc2, 0xc0, 0
cmd_whoami_len equ 6
section .text
; Decrypt in place
mov rsi, cmd_whoami
mov rcx, cmd_whoami_len
mov al, 0xAA
decrypt_loop:
xor byte [rsi], al
inc rsi
loop decrypt_loop
```
## 加密详情
### XOR
使用密钥字节进行简单的单字节 XOR。快速且易于在汇编中实现。
### 多字节 XOR
旋转密钥 XOR。比单字节 XOR 更安全,可防止频率分析。
### ROT 密码
为每个字节添加一个旋转值。简单的凯撒密码变体。
### ChaCha20
简化的流密码实现。Python 版本通过密钥旋转与汇编占位符相匹配。
### AES-128 ECB
使用 AES-NI 指令的行业标准加密。需要 16 字节密钥并将数据填充为 16 字节块。
## 安全注意事项
⚠️ **教育目的**:此工具专为安全研究和教育目的而设计。
- XOR 和 ROT 密码提供的是混淆,而非强加密
- ECB 模式 (用于 AES 实现) 在生产环境使用中存在已知弱点
- 包含的默认密钥仅用于演示
- 在生产场景中务必使用唯一的随机密钥
## 贡献
欢迎贡献!请随时提交 Pull Request 或针对错误和功能需求开启 Issue。
标签:AES加密, ChaCha20, DNS 反向解析, DNS 解析, NASM, payload处理, Python开发, Shellcode加密, Shell命令, XOR加密, 中高交互蜜罐, 二进制安全, 云资产清单, 命令混淆, 快速连接, 恶意软件开发, 汇编语言, 混淆技术, 端口监听, 网络安全, 规避防御, 逆向工具, 逆向工程, 隐私保护