GoBrut:一个新的GoLang僵尸网络

2019-03-07 15:39:098564人阅读

GoBrut:一个新的GoLang僵尸网络

一、简介

用Go编程语言编写的恶意软件始于十年前,在2009年Go编程语言首次公开发布的几年之后:例如,2012年开始发布的InfoStealer样本,进行网络犯罪活动,最终成为Sofacy的一个先进和现代化的网络军火库。很久之前,它被认为是一种恶意软件不同寻常的编码方式,现在已变成了大多数CSIRT习以为常的事情了。

上个月,一个特定的样本在InfoSec社区内传播:它采用GoLang编写,行为很有意思,还具有不寻常的二进制模式,因此Cybaze-Yoroi ZLab决定深入调查分析。

二、技术分析

GoLang程序编译生成嵌入所有必需依赖的二进制文件,这是该语言的主要优点之一,因为它避免了在机器内安装运行时库,如Java Runtime或特定的.NET版本,简化了多平台支持Go应用程序。Go编译二进制文件的一个主要特征是将“Go build ID”字段包含在PE头中。

GoBrut:一个新的GoLang僵尸网络

分析的样本包含此特定字段,确认恶意软件已使用Go语言编写,尽管缺少运行PE识别工具的签名匹配。

GoBrut:一个新的GoLang僵尸网络

图1:Go Build ID签名

在程序集中,我们能够隔离一些揭示样本恶意功能的有趣的代码块。我们检测到系统重启后授予感染持久性的内部例程,即通过运行以下批处理实脚本将自我复制安装到用户启动文件夹(“AutorunDropper”函数)中,。

GoBrut:一个新的GoLang僵尸网络

此外,在这个PE二进制文件的RDATA段中发现了一个有趣的引用:对所谓的“TryLogin”和“StartBrut”例程的引用,暗示了某种攻击功能,随后我们将在“The BruteForce Module”一节中进行了描述。

GoBrut:一个新的GoLang僵尸网络

图2:RDATA段中对源代码函数的引用

在静态分析样本期间另一个有趣的发现是硬编码到二进制文件本身的特定url值。远程目的地指向一个荷兰供应商,ISPIRIA Networks Ltd,托管僵尸网络的命令和控制服务器。

GoBrut:一个新的GoLang僵尸网络

图3:命令和控制通信例程

动态运行恶意软件,它会启动一系列旨在将僵尸程序注册到已发现服务器的http请求。GET请求参数包含一个非常有趣的“worker”字段,其中的“phpadmin”值明确引用臭名昭著的“PhpMyAdmin”数据库管理工具,PhpMyAdmin在互联网上广泛部署。

GoBrut:一个新的GoLang僵尸网络

图4:Bot在C2上的注册

在签入之后,bot查询包含一系列任务的JSON对象,其中C2指示它在获取到的网页上尝试大量登录。

GoBrut:一个新的GoLang僵尸网络

图5:包含目标的JSON文件的C2响应

三、暴力破解模块

僵尸程序的核心是bruteforce模块:它的任务是尝试使用从C2服务器获取的凭据登录目标服务,如上一节所述。

GoBrut:一个新的GoLang僵尸网络

图6:BruteForce模块功能流程

名为“StartBrut”的例程的目的是准备从C2获取的凭据,然后子例程“TryLogin”连接到目标主机,尝试使用提供的凭据进行身份验证并等待服务器响应。在这段时间,僵尸网络正在运行一个利用“phpadmin”模块的活动,在整个互联网上攻击数千个PhpMyAdmin。

GoBrut:一个新的GoLang僵尸网络

图7:“phpadmin”模块的登录尝试

此时,我们决定收集僵尸网络攻击下的目标列表,在撰写本文时,我们确定了可能受到攻击的4万个唯一目标。根据顶级域名的分布显示,一半的目标是“.com”和“.org”,令人惊讶的是俄罗斯顶级域名和其他东欧目标排在前列。中欧和南欧也是目标,但目前数量较少。

GoBrut:一个新的GoLang僵尸网络

图8:TLD的分布

僵尸网络目标列表中的“.it”域名大约为400个,包括专业论坛(如“avvocati [.it”),电子商务门户网站,公司网站以及银行(“bancamacerata [.it”)。

四、调查僵尸网络

进一步深入研究,我们发现这个新的GoLang bot支持更多功能,不仅仅是“PhpMyAdmin”。事实上,我们发现机器人支持23种功能,能够针对从管理协议到CMSes的各种技术,例如它能够攻击SSH登录、FTP站点、暴露的MySql服务和两个最常用的CMS,WordPress和Joomla。这里列出了已发现的功能:

· bitrixBrt

· bitrixChk

· cp_b

· cp_chk

· drupalBrt

· drupalChk

· ftp_b

· ftpChk

· joomlaBrt

· joomlaChk

· magentoBrt

· magentoChk

· mysql_b

· OCartBrt

· OCartChk

· php_b

· php_chk

· postgres_b

· ssh_b

· whm_b

· whm_chk

· wpBrt

· wpChk

攻击活动非常动态,并可能会随着时间的推移而快速变化,进一步分析特定的命令和控制API,其中僵尸网络主机通过启用或禁用“/project/active”服务器位置进行攻击性操作。因此,bot被指示哪些是当前有效的活动和目标技术。

最后,JérômeSegura最近发表的一篇文章(article ),完成了这个新的“GoBot”威胁的细节,描述了僵尸程序如何与JavaScript skimmer活动相关联,这些活动折磨了若干门户网站。滥用访问后嵌入的javascript代码能够窃取访问受感染网站的每个用户的敏感信息,如凭据和信用卡号(PAN)。这种攻击技术非常危险,导致机构大量数据泄露,正如2018年MageCart攻击英国航空基础设施安装JavaScript skimmer时所观察到的那样。

五、总结

使用不常见的语言和技术编写恶意软件,是攻击者用来打败传统的基于反病毒的安全控制(编译模式和组件可以逃避静态签名和一般启发式检测)的武器。因此,安全软件必须包含适当的分析功能,以检测和处理此类威胁。

此外,这个新的“GoBrut”僵尸网络提供了一种有关不安全登录和不必要服务暴露的宝贵见解。本文展示了网络犯罪行为者如何能够进行广泛的国际犯罪行动,旨在渗透机构,滥用其基础设施并窃取用户登录和敏感数据。

IoC

C2:

· http[://5.45.69[.149[:7000

Hash: 

· 94e119d88ff59d33d3c6fe6c346eba274d5fcc971771ec94b86657a0c2217a2d

Yara 规则

rule gobrut_bott {    meta:  description = "Yara rule for phpmyadmin ruteforcer botnet written in Go Language"  author = "Yoroi - ZLab"  last_updated = "2019-02-25"  tlp = "white"  category = "informational"  strings:  // Go build      $go = { 47 6f 20 62 75 69 6c 64 20 49 44 3a 20 }       $b1 = { BA D7 F7 AD 02 04 04 91 }  $b2 = { 5E 9B 5C 00 60 97 5F }  condition:  uint16(0) == 0x5a4d and all of them}



本文翻译自:https://blog.yoroi.company/research/gobrut-a-new-golang-botnet/

翻译作者:TRex  原文地址:https://www.4hou.com/web/16544.html

0
现金券
0
兑换券
立即领取
领取成功