Part1 主要免杀思路
首先要将程序进行分离,将shellcode隐藏进图片里,再远程调用图片里的shellcode,达成getshell的目标。
同时还要把调用shellcode的执行程序进行伪装,伪装成图片或者其他格式,让目标执行文件时自动拉取shellcode图片,从而上线
本篇文章使用了开源项目 https://github.com/Hangingsword/HouQing
此处举例用的是Hou Qing大佬基于Golang语言编写的免杀项目
Part2 具体过程及手法
我们要先保证环境的正常,下载并安装GOLANG语言正常运行的环境,国内下载链接如下
https://golang.google.cn/dl/
根据个人系统不同按需下载即可,下载后双击执行安装即可。
为了方便使用,建议大家配置系统变量,在系统环境变量中新建go的变量,配置为安装时的绝对路径,并在path中配置对应的go根目录下的bin目录的绝对路径。
设置完成后在任意目录下打开CMD,输入go version即可查看是否正常使用,如图即为正常使用。配置完环境后我们来着手处理文件。
首先我们需要先利用CS生成一个java的后门免杀shellcode。
然后设置code.go文件的KEY值,将CS生成的免杀payload写入对应位置,写入完成后如图所示
接下来我们要将这个shellcode注入进图片,这里我们直接使用golang的注入命令即可
成功将shellcode注入图片。
然后将图片上传到未压缩的网站上,因为一旦文件被压缩或者二次渲染后,将失去shellcode的作用,无法被正常调用。
上传后,我们需要知道这个图片的访问路径,然后打开Loader.go文件,将KEY值设置为与code.go一致,并写入访问图片的路径。
如图所示
此时直接运行Loader.go则直接将该文件所处终端的权限上线至CS服务器中,要注意弹的是Loader.go所处的终端的shell并非code.go所处的位置。如图所示
所以我们要想办法欺骗目标,让目标运行Loader.go,达到反弹shell的目的。
使用命令:go build -ldflags="-H windowsgui" Loader.go 将Loader.go编译成exe文件,并设置参数阻止运行时弹出cmd可视化界面。
并将其改名为svchost.exe来增强隐蔽性。
当然,exe的隐蔽性还是太差了,很少有目标会直接点击可疑的exe文件,所以我们需要进一步伪装。
找一张看起来就很想让人点开的图片,然后同时选中要隐藏的exe和图片,将其压缩到一起
注意此处的文件名,很重要,将其更改为这个名字后,打开高级选项中的自解压选项。
将提取后运行命令(此处有个瑕疵,由于这个自运行路径必须为绝对路径,所以我们必须知晓目标在哪个路径下运行这个文件才能做到CS上线)
模式改为全部隐藏然后将压缩完成的文件右键重命名,将光标移动至最前,选择插入Unicode控制字符选择RLO,将文件名反转,成功得到后缀名为JPG的exe可执行文件(但在各个上传点均被辨认出来为exe文件,感觉这种伪装方式不可取,只可在邮件钓鱼中使用) 且可以*更换该文件图标,力求伪装逼真
然后点击伪装后的该文件,成功上线,且目标毫无察觉,依然以为是正常点开了一个图片,加载过程会比点开正常图片略慢,但很难察觉。
至此,golang语言的图片马+远程调用的组合拳就此结束,剩下的全靠无敌的社工钓鱼啦,有兴趣的小伙伴们可以尝试一下。
“D&X 安全实验室”
专注渗透测试技术
全球最新网络攻击技术