Go 恶意软件增多,分析两个新发现的零检出样本

news2024/11/17 1:54:29

由于 Go 良好的跨平台特性,在多个操作系统与架构上都能运行,所以最近使用 Go 语言编写的恶意软件越来越多,每周都会发现大量的新样本。

在四月末,研究人员通过蜜罐发现了两个新的变种(Backdoorit和
Caligula),发现时在
VirusTotal 上无检出。

image.png-98.3kBBackdoorit样本检出

image.png-52.1kBCaligula样本检出

Backdoorit 与 Caligula 都是为多处理器架构编译的、跨平台 Go 恶意软件程序。

Backdoorit

Backdoorit(版本 1.1.51562578125)是一个使用 Go 语言开发的跨平台远控木马,支持 Windows 与 Linux
操作系统。在代码中,该恶意软件也被称为 backd00rit。

其 analyse-full 命令主要是窃取与 Minecraft 相关文件和 Visual Studio 与 Intellij 的项目。

恶意软件不仅局限于这些文件,某些命令(upload、basharchive、bashupload 等)支持窃取任意文件,某些命令(run、run-
binary 等)支持运行任意命令,某些命令(screenshot、ssfile 等)支持获取屏幕截图。

Backdoorit 开发者的母语应该不是英语,而是俄罗斯语。代码中的注释与字符串都是使用语法不正确的英文书写,还有一些使用俄文书写的字符串。

image.png-32.9kB代码注释

攻击者还针对 VimeWorld 文件进行窃取,这是一个提供 Minecraft 服务器的俄罗斯项目,这也能佐证攻击者来自俄罗斯。

image.png-21.9kB针对
VimeWorld 攻击

Backdoorit 运行后会检索环境信息,例如操作系统与用户名,然后不断尝试连接 C&C 服务器。

该恶意软件通过一组函数(backd00r1t_logging_*)记录所有执行的操作,这些日志通过 uploadlogs 和 uploadlogs-file
命令上传到 C&C 服务器,在异常的情况下可以自动上传。

遇到异常(backd00r1t_backdoor_handlePanic)时,会执行以下操作:

将日志发送到 C&C 服务器 /api/logsC&CJSONbackd00r1t_api_SendLogs

关闭与 C&C 服务器的连接

尝试重新连接

与 C&C 服务器连接后,攻击者会获取环境上下文数据。函数 backd00r1t_backdoor_SocketConnectionHandle
负责处理所有支持的命令,并调用 backd00r1t_backdoor_printMotd 显示此类信息:

上次连接时间

Backdoorit 版本

进程信息

活动连接

用户名

用户目录

用户 ID

登录

Gid

进程路径

模块自启动状态

Backdoorit 允许攻击者远程执行命令。analyse-full 命令可以将
Desktop、Documents、Downloads、Minecraft、VimeWorld、Visual Studio 与 IntelliJ
相关文件数据生成一个 report.txt 文件,并且上传到 Bashupload上,该服务最大可以上传
50GB 的文件。

攻击者可以通过 run-binary 命令下载并执行其他恶意软件,也可以通过 shell 命令执行任意命令。

kill-switch 命令会删除恶意软件本身,并且利用 CVE-2021-24098 漏洞使 Windows 操作系统崩溃。还能够通过
CVE-2021-28312 破坏硬盘 NTFS 信息,这会使文件信息(大小、时间、权限、数据内容)完全丢失,也就丢失了感染的证据。

Backdoorit 支持的完整命令列表为:

shell:生成可交互终端,Windows 平台使用 PowerShell、Linux 平台使用 Bash

help:显示帮助信息

toggle-path:启用或禁用切换路径

bell:启用或禁用铃声

clear-fallback:清空屏幕

background-logs:确定缓冲区大小,为存储日志

backdoor:显示远控木马信息

clear-code:重置字体样式

clear-color:重置 Shell 着色

colors/color:启用或禁用 Shell 着色

un-export:删除环境变量

export:添加环境变量

mkdir:创建文件夹

exit:退出

wcd:打印工作目录

motd:打印状态信息

get-asset:访问资产

extract-asset:将资产提取到指定路径

safe:禁用安全模式

open-file:打开文件

open:在浏览器中打开指定 URL

list-windows-disks:列出磁盘信息

cp:拷贝文件

rm:删除文件

cd:更改目录

ls:显示文件信息

cat:读取文件

checkupdates:检查更新

exploit:使用漏洞利用

autostart:进行持久化

autostart-update:更新持久化

exec:执行带有参数的命令

sysinfo:显示系统信息

Screenshot/ssfile/screen:创建屏幕截图

archiveapi:创建压缩文件,上传并删除本地文件

Create-archive:创建压缩文件

Uploadapi:将文件上传到指定服务器

uploadlogs-file:上传日志文件

uploadlogs:以JSON格式上传日志文件

upload:将文件上传到服务器

bashupload:将文件上传到 baseupload

bashdownload:通过 baseupload 下载

bashupload-parse:上传文件并获取链接地址

basharchive:创建压缩文件并上传到 baseupload

download:下载文件

bashdownload:通过 URL 下载文件

run:下载脚本并运行

run-binary:下载脚本并运行,只支持 Windows 平台

cls:清空屏幕

$STOP:终止 Backdoorit 运行

analyse-full:将所有相关文件信息合并上传

可见恶意软件还支持 checkupdates 命令,预计很快就能够看到 Backdoorit 的新版本。

Caligula

Caligula 是一个新出现的 IRC 跨平台恶意程序,能够执行 DDoS 攻击。

该恶意软件是用 Go 语言编写的,针对多种架构进行编译:

Intel 80386 32-bit

ARM 32-bit

PowerPC 64-bit

AMD 64-bit

目前通过 WSL 环境中的 os_user_Current 函数确定底层操作系统是 Linux 还是 Windows。

image.png-44.6kB部分代码

Caligula 基于 Hellabot开发而来,该 Bot
能够在不丢失与 C&C 服务器的连接的情况下进行更新升级。

Caligula 重用了很多开源代码,包括 log15、fd、go-shellwords、go-isatty 和 go-colorable 等。

在野发现的样本都使用固定的信息连接 IRC 服务器:

主机:45.95.55.24:6667

频道:#caligula

用户名:由平台、当前用户和一个伪随机数组成,例如 [LINUX]kali-11066

如下所示,加入 Caligula IRC Net v1.0.0 僵尸网络:

image.png-31.9kB部分代码

Caligula IRC Net v1.0.0 僵尸网络对外提供以下功能:

image.png-21.3kB各种攻击方式

其源代码文件如下所示:

/root/irc/bot/attack/attack.go

/root/irc/bot/attack/methods.go

/root/irc/bot/attack/parser.go

/root/irc/bot/attack/flags.go

/root/irc/bot/network/header.go

/root/irc/bot/network/ip.go

/root/irc/bot/network/tcp.go

/root/irc/bot/routine/timedRoutine.go

/root/irc/bot/attack/methods/httpflood.go

/root/irc/bot/attack/methods/sshflood.go

/root/irc/bot/attack/methods/synflood.go

/root/irc/bot/attack/methods/tcpflood.go

/root/irc/bot/attack/methods/udpflood.go

/root/irc/bot/handle.go

/root/irc/bot/singleInstance/singleinstance.go

/root/irc/bot.go

结论

由于原生的跨平台支持,与开发效率较高的特性,攻击者越来越青睐使用 Go 语言开发恶意软件,特别是针对 Linux 操作系统的恶意软件。

自然而然的,很多恶意程序相继在 GitHub 上开源,并且被攻击者广泛利用。

IOC

34366a8dab6672a6a93a56af7e27722adc9581a7066f9385cd8fd0feae64d4b0

147aac7a9e7acfd91edc7f09dc087d1cd3f19c4f4d236d9717a8ef43ab1fe6b6

1945fb3e2ed482c5233f11e67ad5a7590b6ad47d29c03fa53a06beb0d910a1a0

4a1bb0a3a83f56b85f5eece21e96c509282fec20abe2da1b6dd24409ec6d5c4d

6cfe724eb1b1ee1f89c433743a82d521a9de87ffce922099d5b033d5bfadf606

71b2c5a263131fcf15557785e7897539b5bbabcbe01f0af9e999b39aad616731

99d523668c1116904c2795e146b2c3be6ae9db67e076646059baa13eeb6e8e9b

fe7369b6caf4fc755cad2b515d66caa99ff222c893a2ee8c8e565121945d7a9c

97195b683fb1f6f9cfb6443fbedb666b4a74e17ca79bd5e66e5b4e75e609fd22

edcfdc1aa30a94f6e12ccf3e3d1be656e0ec216c1e852621bc11b1e216b9e001

最后

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,有需要的小伙伴,可以【扫下方二维码】免费领取:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/195658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AOSP 8.0 系统启动概要

目录 一、Android 系统启动流程图 二、系统启动阶段 三、 系统重要进程 3.1 父进程 3.2 重量级进程 一、Android 系统启动流程图 备注:(图片引用gityuan) 二、系统启动阶段 step1. 启动电源及系统:电源按下后,引…

家庭网络WIFI相关知识

文章目录参考资料路由器的最大下载速率WFI协议WIFI工作频段和信道2.4GHZ频段5GHz频段双频路由器兼容性覆盖WIFI信号为什么总这么差?参考资料 WiFi穿墙完全指南:你的网速是由什么决定的? 路由器的最大下载速率 所谓的450M路由器中的“450M”…

【Catalyst 9000 内嵌抓包方法】

新的一年 新的征程 新的课程开班 等你来学&#xff01; 1.在特权模式下进入如下配置 switch#monitor capture XXX interface Gix/x/x both 或 control-plan both <<<<< control-plan为CPU抓包 switch#monitor capture XXX match any 或 access-list XX swi…

4.6--贪心--最小生成树(MST)

一共有两种方法Prim算法和Kruskal算法都可以看作是应用贪心算法设计策略的例子。 Prim算法--选集合S中所有顶点的邻接点 距离最短的那个点&#xff08;不属于S&#xff09;加入集合S Kruskal算法--每次选取最短的且不构成回路的边 它们都利用了下面的最小生成树性质&#xf…

VRP系统下增加网络设备安全性之console接口

VRP即华为设备的操作系统 增加网络设备安全性的其中一种措施是增加console的安全 增强console安全性 1、使用密码登陆 首先先进入设备的console接口&#xff1a; 在进入系统视图时&#xff0c;可以使用system-view或sys 在进入console接口时&#xff0c;可以使用user-inte…

RPC的序列化方案详解

1 为什么需要序列化&#xff1f; 网络传输的数据须是二进制数据&#xff0c;但调用方请求的出入参数都是对象&#xff1a; 对象不能直接在网络传输&#xff0c;需提前转成可传输的二进制&#xff0c;且要求可逆&#xff0c;即“序列化” 将对象转换成二进制数据 这时&#xf…

拉伯证券|磷酸铁锂电池低温性能怎么解?

磷酸铁锂系电池本钱相对三元系电池低&#xff0c;且安全性好&#xff0c;寿命长。随着技能的前进&#xff0c;实践能量密度也在无限挨近理论能量密度。所以其市场占有率也在稳步上升&#xff0c;且现已超越三元系锂电池的装机量。 但磷酸铁锂&#xff08;LiFePO4&#xff0c;L…

Java网络编程 - UDP通信

文章目录UDP通信快速入门一发一收多发多收广播组播UDP通信 快速入门 UDP协议的特点: UDP是一种无连接、不可靠传输的协议。 将数据源IP、目的地IP和端口以及数据封装成数据包&#xff0c;大小限制在64KB内&#xff0c;直接发送出去即可。 UDP协议通信首先要有DatagramPacket数…

flume kafka channel 应用详解

1 官方文档 Documentation -> Flume User Guide2 kafka source (消费者) Kafka Source is an Apache Kafka consumer that reads messages from Kafka topics. If you have multiple Kafka sources running, you can configure them with the same Consumer Group so each …

2.DjangoRestFramework【基于DRF的RESTAPI的序列化使用】

进入Django rest framwork官网就能看到rest_framwork相关的教程; 1.安装rest_framwork pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django-filter # Filtering support2.在setting中注册 setting…

QT-线性拟合(自动找直线区域)

最近有个需求&#xff0c;需要对一个S曲线的散点图做线性拟合&#xff0c;百度上线性拟合和曲线拟合公式很多&#xff0c;没什么问题&#xff0c;但需求里面有一个预期就是自动找出直线部分&#xff0c;前面因为其它事情耽搁&#xff0c;一直没有实现&#xff0c;心里多少有点梗…

SpringBoot微服务项目,转发并响应下载请求

在微服务项目中&#xff0c;我经常会碰到从一个微服务项目转发下载请求并实现下载文件的需求&#xff0c;因此在此做一个转发下载的示例。总的下载转发流程如下&#xff0c;我会按照这个流程一一介绍下载流程。 1、客户端的下载请求 这里主要介绍controller层是如何接收客户端…

apple pencil一代平替笔有哪些?平替电容笔推荐

当今社会&#xff0c;高科技推动了数字产品的发展。无论是在工作中&#xff0c;还是在学习中&#xff0c;大的屏幕都能让画面变得更清楚。不管是现在还是未来&#xff0c;Ipad设备都会变成我们每天的一个重要组成部分。如果ipad与一款易于使用的电容笔相结合&#xff0c;将会大…

git-secret:在 Git 存储库中加密和存储密钥(下)

在本篇文章中&#xff0c;将带你了解如何在 Docker 容器中设置git-secret和gpg&#xff0c;通过 Makefile recipe 为不同的场景创建工作流。 Makefile Adjustment 将git-secret和gpg指令添加到 Makefile 中.make/01-00-application-setup.mk&#xff1a; # File: .make/01-0…

C语言基础复习

目录 数组 一维数组 完全初始化int a[5]{1,2,3,4,5}; 不完全初始化int a[5]{1,2} 完全不初始化”&#xff0c;int a[5] 二维数组 完全初始化 不完全初始化 指针 变量的访问方式&#xff1a; 指针变量的定义&#xff1a; 指针变量的赋值&#xff1a; 指针变量的运算…

Spring-Security入门

简介 Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 ​ 一般来说中大型的项目都是使用SpringSecurity 来做安全框架。小项目有Shiro的比较多&#xff0c;因为相比与Spring…

ChatGPT - InstructGPT 论文简读

发表于NLP会议:NeurlPS,EMNLP EMNLP: Empirical Methods in Natural Language Processing,自然语言处理中的经验方法NeurlPS: Neural Information Processing Systems,神经信息处理系统ChatGPT: Optimizing Language Models for Dialogue,优化对话的语言模型 ChatGPT:htt…

一文了解编程领域的模版

文章目录模版含义代码模版泛型模版引擎小结&#x1f34a;在编程领域&#xff0c;模板是一种代码片段&#xff0c;它可以被重复使用&#xff0c;并允许您在保持代码的基本结构不变的情况下&#xff0c;根据需要调整其中的内容。模板通常在构建大型程序或开发一类相关程序时非常有…

Arthas的学习与使用

一、简介 Arthas 是一款线上监控诊断产品&#xff0c;通过全局视角实时查看应用 load、内存、gc、线程的状态信息&#xff0c;并能在不修改应用代码的情况下&#xff0c;对业务问题进行诊断&#xff0c;包括查看方法调用的出入参、异常&#xff0c;监测方法执行耗时&#xff0c…

Maven知识点-反应堆

前言 在一个多模块的Maven项目中&#xff0c;反应堆&#xff08;Reactor&#xff09;是指所有模块组成的一个构建结构。对于单模块的项目&#xff0c;反应堆就是该模块本身&#xff1b;但是对于多模块项目来说&#xff0c;反应堆就包含了各模块之间继承和依赖的关系&#xff0…