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加密, 中高交互蜜罐, 二进制安全, 云资产清单, 命令混淆, 快速连接, 恶意软件开发, 汇编语言, 混淆技术, 端口监听, 网络安全, 规避防御, 逆向工具, 逆向工程, 隐私保护