题记
无聊学习ing,思考了下还是学下go语言写免杀木马吧,毕竟在我的学习计划里放了小半年了,上班的时候还没多少自己的时间学习。为什么无聊大家都懂吧,应该会懂的吧。
主要还是需要分散下注意力,近期脑子整天都是奇奇怪怪的幻想,太影响人了。
当然,还是要加上我喜欢的好句子,莫不要说我中二哦。
人生初见,山野见少女婀娜,登高见山河壮阔,仰头见仙人腾云,御风见日月悬空,与以后见多了类似画面,是决然不同的风景。不一定是初见之人事一定有多美,但是那份感觉,萦绕心扉,千百年再难忘记。 ——剑来.姜首席
报错一:222.go:8:5: no required module provides package golang.org/x/sys/windows: go.mod file not found in current directory or any parent directory; see 'go help modules'
错误如图:
此错误百度搜索原因是第三方包引用报错,需要修改GO111MODULE的值为auto。
报错二:warning: go env -w GO111MODULE=... does not override conflicting OS environment variable
错误如图:
Chatgpt给的命令:export GO111MODULE=auto。成功修改。
报错三:222.go:8:5: cannot find package "golang.org/x/sys/windows" in any of: /usr/local/go/src/golang.org/x/sys/windows (from $GOROOT) /home/gopath/src/golang.org/x/sys/windows (from $GOPATH)
错误如图:
一开始搜索答案是下边两条命令,但国内服务器链接不上:
go get golang.org/x/sys/windows
go get golang.org/x/sys
重点参考文章:https://blog.csdn.net/qin_na/article/details/108328225
访问https://github.com/golang/sys,把整套zip打包下载下来。
经过试验,这些文件需要放到/home/gopath/src/golang.org/x/sys/文件夹下,其中/home/gopath为go语言环境变量地址,需要新建src/golang.org/x/sys/文件夹,然后把下载的包全放进去。
下图,我一开始没有src文件夹,后续新建,然后把东西全移动过去的。正常的命令应该是,mkdir /home/gopath/src,然后把文件全复制到该目录下。
报错四:package command-line-arguments imports golang.org/x/sys/windows: build constraints exclude all Go files in /home/gopath/src/golang.org/x/sys/windows
错误如图:
该报错是由于我在linux上编译windows平台的exe。
需要使用该命令声明下环境: GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build 222.go
编译成功。
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags="-s -w" -o 1.exe
错误五:编译好的exe在windows执行报错
错误如图:
经过排查,由于我用的是32位的shellcode,但是编译用的是amd64,导致不兼容。
命令修改为:GOOS=windows GOARCH=386 CGO_ENABLED=0 go build main.go
编译好的程序成功执行并上线了cs:
但是黑框太明显了,使用如下命令隐藏黑框并减小木马的体积
隐藏登录框的命令为:GOOS=windows GOARCH=386 CGO_ENABLED=0 go build -ldflags="-s -w -H windowsgui" -o 1.exe。
成功上线且没有黑框:
参考链接
go实现免杀(实用思路篇):https://xz.aliyun.com/t/14692?time__1311=GqAhYKBK0K7KY5DsD7%2B3GQmoAIuwmBa1YD#toc-1
cannot find package “golang.org/x/sys/windows“ in any of:https://blog.csdn.net/qin_na/article/details/108328225