0x00 前言介绍
使用garble把golang代码混淆,达到打乱特诊,绕过杀软的作用。
项目地址:
https://github.com/burrowers/garble
0x01 工具和环境的配置
安装命令:
但是在安装之前大概率需要先配置一下go1.20.x的golang,Centos默认是较低版。更新参考:
https://blog.csdn.net/tokenHAHA/article/details/129203303
如果不想看直接复制如下命令:
第一步、
先删除原本的go,一般在/usr/local下面有,和/root/go/bin/下也有,都删了
,直到输入:go version什么都没有。
下载和解压go高版本:
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
编辑环境变量配置:
vi ~/.bashrc
在后面加入:
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
让配置文件立即生效:
source ~/.bashrc
验证版本:
go version
第二步、
安装garble,只需要一条命令:
go install mvdan.cc/garble@latest
然后你的garble就会被安装在如下目录下,找不到就find / -name "garble"搜一下:
之后再去原本的目录下添加一下环境变量,方便以后使用:
编辑环境变量配置:
vi ~/.bashrc
export PATH=$PATH:/root/go/bin/
让配置文件立即生效:
source ~/.bashrc
第三步、
开始编译:
将Fscan代码克隆到本地:
使用Garble来混淆你的Go代码。例如,如果你想混淆并构建你的项目,可以在命令行中输入以下命令:
garble -literals build main.go
普通编译(golang默认编译方法,免杀不好):
GOOS=windows GOARCH=amd64 go build -o app-amd64.exe main.go
混淆偏移(实测可过一般杀软):
GOOS=windows GOARCH=amd64 garble -literals -tiny -seed=random build -o app.exe main.go
其他编译:
garble -tiny -literals -seed=random build -ldflags="-w -s -H windowsgui" -race go-sc.go
garble(混淆库):
-tiny 删除额外信息
-literals 混淆文字
-seed=random base64编码的随机种子
go:
-w 去掉调试信息,不能gdb调试了
-s 去掉符号表
-H windowsgui 隐藏执行窗口,不占用 cmd 终端。(被查杀率高)
-race 使数据允许竞争检测,编译时改变了生成后的文件特征
,使得杀软无法检测,当然有一天也会失效的。
编译后得到go-sc.exe
0x02 分别编译测试免杀效果
使用go默认的打包也试一下,方便和garble做一下对比:
go build -ldflags="-s -w " -o fscan.exe -trimpath main.go
garble编译:
GOOS=windows GOARCH=amd64 garble -literals -tiny -seed=random build -o app.exe main.go
可以看到编译结束后出来的程序体积还是有点大的,这个时候可以使用upx进行体积压缩,也同时加了个壳,双重好处。
upx app.exe
0x02 测试免杀效果
开始放入杀软环境中测试测试:
首先是go默认打包的程序,移入进去的时候已经就被杀了。
这个是经过garble打包,并且upx压缩过的程序,未被检测:
当然这个可能是最近fscan更新代码导致的免杀效果增强,对之前代码的fscan这样是不够的,还需要再加一层签名。
工具地址:
https://github.com/langsasec/Sign-Sacker
随便选择一个带有签名的程序,选择"受害者"(已签名的软件)和"掠夺者"(需要签名的软件),点击生成文件,即可生成带签名的工具:
加完签名之后再在杀软环境运行一下试试:
可以成功当着最新杀软下运行,说明可以成功绕过。
最后补充:
去特征:
项目地址:
https://github.com/optiv/Mangle
可以使用去特征工具再进行一步特征去除:
Mangle_1.2_windows_amd64.exe -I app-amd64.exe -M -O sss.exe
原文始发于微信公众号(Rock sec):免杀fscan教程
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论