vlambda博客
学习文章列表

干货|使用Go语言在图片中隐藏Shellcode

前言

最近在 Github 上发现一个有趣的项目:

https://github.com/Hangingsword/HouQing

该项目是用 Go 语言编写的免杀项目,可以将生成的 Shellcode 隐藏进图片中,然后让目标主机进行远程加载调用。

项目中有两个两个主要文件:

image-20210926172410513

code.go:用于生成含有 Shellcode 的图片。Loader.go:用于远程加载图片里的 Shellcode。

实战演示

首先需要修改项目中 code.go 和 Loader.go 的源码:

干货|使用Go语言在图片中隐藏Shellcode
image-20210921145406091

改一下两个 KEY 的值,需要同时修改并且两个问价中的数值相同。

然后使用 CobaltStrike 生成 Java 类型的 Shellcode:

干货|使用Go语言在图片中隐藏Shellcode
image-20210921145546888

生成 payload.java,把里面的核心 Shellcode 取出来放入到 code.go 里:

干货|使用Go语言在图片中隐藏Shellcode
image-20210921150226175

然后随便找一张 jpg 图片进行 Shellcode 的注入:

go run code.go shell.jpg
干货|使用Go语言在图片中隐藏Shellcode
image-20210921150833041

然后将图片上传到未经压缩过的图床上:

干货|使用Go语言在图片中隐藏Shellcode
image-20210921151024277
干货|使用Go语言在图片中隐藏Shellcode
image-20210921151142587

在本地执行以下命令测试:

go run Loader.go
干货|使用Go语言在图片中隐藏Shellcode
image-20210921152640372

如上图所示,目标主机成功上线。

最后,我们执行以下命令,将加载器 Loader.go 编译成可执行文件:

go build -ldflags="-H windowsgui" Loader.go// -ldflags="-H windowsgui" 防止弹窗
干货|使用Go语言在图片中隐藏Shellcode
image-20210921153012573

在目标主机上执行 Loader.exe 即可上线:

干货|使用Go语言在图片中隐藏Shellcode
image-20210921153314834

查杀测试

该图片 shell.png 在 virustotal 上的查杀率为 0/57:

干货|使用Go语言在图片中隐藏Shellcode
image-20210921153927844

Loader.exe 在 virustotal 上的查杀率为 8/62:

干货|使用Go语言在图片中隐藏Shellcode
image-20210921154445190

推荐阅读




点赞    在看    转发