快速生成钓鱼木马
项目地址:https://github.com/darkb1rd/DarkGld/
项目基于https://github.com/EddieIvan01/gld项目二次开发,仅用于交流学习,禁止用于非法活动。
为什么写这个项目?
- 在每年的大型多人运动中,钓鱼无疑是快速进入内网的一种手段。当我们批量发送同一个钓鱼木马时,目标上线时间不统一,一旦某个目标操作敏感,导致程序被标黑,其他目标很可能会同时掉线。所以就萌生了写个程序快速生成钓鱼木马,从而在钓鱼的时候发送 hash 不同的木马。
- 直接在 GitHub 上看到大佬的 GLd 项目,开源的项目,刚学习的 go,所以借助这个项目,练习了一下。
过程
DarkGld 原理非常简单,就是在 Gld 的基础上,将手动编译的过程实现了自动化,从而提高效率。主要过程如下:
- 根据是否添加图标判断是否通过
rsrc -manifest main.exe.manifest -ico rc.ico -o rsrc.syso
生成资源文件 - 根据是否捆绑文件,生成不同的加载器模版。此处如果加载文件,文件会被转换成 base64 字符串插入到加载器模版。加载器再运行的时候会将 base64 字符串重新解码写入到系统环境变量
temp
目录下,写完后自动打开。 - 根据选择的目标系统架构,在编译的时候设置编译出
x64
或x86
的文件。 - 判断是否需要 UAC 权限启动。如果选择 UAC,目标在点开文档的时候会弹出来 UAC 窗口,好处是回来的权限更大,缺点是现对而言更容易被察觉。不选择 UAC 的话,运行没有弹窗,相对而言更不易被察觉。两种模版都是从网上找的,程序中的模版如下:
- 需要 UAC
|
- 不需要 UAC 的模版
|
- 根据是否进行虚拟机探测,判断是否插入虚拟机探测代码。无论是否进行虚拟机探测,都不会影响文档的正常打开。
根据选项生成了模版后(由于 Gld 项目本身生成加载器的过程中每次使用的加密 key 都不同,所以相同命令生成的加载器也是不同的),通过使用 go 执行编译命令,编译出最终的加载器。
go 编译命令解释如下:
err = exec.Command("go", "build", "-o", ".\\" + OUTFILE , "-ldflags", "-w -s -H=windowsgui", "-gcflags", "-trimpath=$GOPATH/src", "-asmflags", "-trimpath=$GOPATH/src", ".\\" + dir ).Run() |
编译完成后,会自动删除 temp
目录。
演示
以上即为 DarkGld 项目实现的逻辑,内置模版可能不免杀了,可根据内容自行调整。本文若有错误之处,敬请指出,以免误导他人。