0%

记免杀工具BypassAv-web的安装过程

本文仅作为技术讨论及分享,严禁用于任何非法用途。

前言

近期在GitHub看到nim一键免杀的项目,遂想测试一下,但是作者并没有提供部署教程,在踩了很多坑之后安装成功。

https://github.com/M-Kings/BypassAv-web

安装步骤

本节是安装步骤的记录,如果仅是想安装部署项目可参考本节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
cd /root
# 下载代码库
git clone https://github.com/M-Kings/BypassAv-web.git

# 起个Ubuntu的docker
docker run -itd -p 8001:8000 -v /root/BypassAv-web/:/root/BypassAv-web/ ubuntu

# 进入docker容器,这里的4d是容器id,每次启动容器示例不一样,自己docker ps看一下
docker exec -it 4d bash

# 安装必备组件
apt update
apt install python3 python3-pip nim vim wget unzip mingw-w64

# 进入代码所在目录
cd /root/BypassAv-web/
# 创建两个必备目录,作者代码里并没有自动创建
mkdir files
mkdir temp

# 作者代码里写了绝对路径,所以要去改一下
# nim/views.py 84行
vim nim/views.py
原代码:
yesxor = os.popen('/root/FileService/code/testnim '+shellcode).read()
修改为:
yesxor = os.popen(os.path.abspath(os.curdir) + '/code/testnim '+shellcode).read()
os.path.abspath(os.curdir)

# 代码内调用该文件,需要赋予执行权限
chmod 755 code/testnim


# 安装nim的依赖库
wget https://codeload.github.com/khchen/winim/zip/refs/heads/master
unzip master
cd winim-master/
nimble install

# 回到主目录
cd ..
python3 manage.py runserver 0.0.0.0:8000

排错过程

本节是排错过程,如果有兴趣了解我是如何发现并解决安装过程出现的问题的,敬请阅读。

目录不存在的报错

这个问题手动创建文件夹即可

1
2
mkdir files
mkdir temp

文件不存在报错

查看代码,把输出打开,并把移除文件的代码注释掉,这样我们就可以手动调试生成的文件

根据后端的报错,发现作者应该是有一处代码写了绝对路径,所以查找关键字发现view.py 84行处写了绝对路径

然后简单修改为相对路径

1
2
3
4
5
# view 84行
vim nim/views.py
yesxor = os.popen('/root/FileService/code/testnim '+shellcode).read()
yesxor = os.popen(os.path.abspath(os.curdir) + '/code/testnim '+shellcode).read()
os.path.abspath(os.curdir)

解决了上述问题,发现web端还是会报错,无法下载文件

本地执行nim编译命令,发现有报错

Google一番发现是nim编译时需要调用mingw32

1
apt-get install mingw-w64

然后再次编译发生如下错误

Google一下,原来是依赖库,根据官方说明安装一下

1
nimble install winim

然后估计是网络不行还是什么问题,实际上会一直卡着,手动安装吧

1
2
3
4
5
6
apt install wget
wget https://codeload.github.com/khchen/winim/zip/refs/heads/master
apt install unzip
unzip master
cd winim-master/
nimble install

这个时候再试试它的编译,能成功了

最终效果

安装成功后,使用CS生成shellcode

这里根据作者的说明是生成64位的RAW类型的shellcode

上线成功

本文编写于2021年7月2日,测试virustotal效果如下

测试微步效果如下

进阶:重新编译testnim

阅读了源码,作者使用了testnim对shellcode进行了异或加密,作者提供了testnim的二进制文件它的源码testnim.nim,那么便尝试一下从源码编译testnim

1
2
cd code/
nim c -o=testnim testnim.nim

编译成功且测试运行成功