研究人员近日发现了一个 Golang 开发恶意软件,并将其命名为 GoBruteforcer。该恶意软件主要针对 Web 服务,特别是 phpMyAdmin、MySQL、FTP 和 Postgres 服务。
简介
Golang 现在越来越来受到攻击者的欢迎,被用于开发个各种各样的恶意软件,包括勒索软件、窃密木马与远控木马等。
GoBruteforcer 就是一种用 Golang 编写的新型僵尸网络,主要针对 Web 服务,特别是 phpMyAdmin、MySQL、FTP 和 Postgres 服务。
GoBruteforcer 会扫描整个 CIDR 块,而不是单个的 IP 地址。发现主机存活后,GoBruteforcer 会通过暴力破解尝试入侵服务器。一旦获取访问权限,GoBruteforcer 就会立刻部署 IRC Bot。并且,留下 PHP WebShell 作为失陷主机的后门。
![](https://img-blog.csdnimg.cn/img_convert/1d8f5acda4d7609b80283fdaadae0f23.jpeg)
GoBruteforcer 攻击链
服务器的 /.x/ 目录下的 cache_init 文件,就是被发现植入的 GoBruteforcer 恶意软件。
![](https://img-blog.csdnimg.cn/img_convert/2eac218d12ff7b1bf9e280ce25ac0768.jpeg)
失陷主机上的恶意软件
GoBruteforcer 恶意软件主要针对类 Unix 平台,支持 x86、x64 与 ARM 架构。
扫描与系统访问
GoBruteforcer 恶意软件样本使用 UPX 加壳,并且针对 CIDR 块内的主机进行扫描。
![](https://img-blog.csdnimg.cn/img_convert/42c697a30e09c642ed5d4d58850f5997.jpeg)
CIDR 块扫描
对目的 IP 地址来说,恶意软件对其进行扫描 phpMyAdmin、MySQL、FTP 和 Postgres 服务,每种服务都定义了单独的扫描模块。
![](https://img-blog.csdnimg.cn/img_convert/c46a30b571b7f885c2224a6e2ab256f7.jpeg)
扫描不同服务的模块
在不同的扫描模块间,会共用端口扫描模块。
![](https://img-blog.csdnimg.cn/img_convert/c70b1ed806f2ae8d5acb8c547dc0f24f.jpeg)
端口扫描功能
phpMyAdmin 服务
扫描 phpMyAdmin 服务时,GoBruteforcer 会尝试通过暴力破解入侵服务器。GoBruteforcer 内部携带了各种硬编码的凭据,如下所示:
![](https://img-blog.csdnimg.cn/img_convert/3453208c64c5a6e42a931f2f7d4b8f49.jpeg)
硬编码凭据列表
IRC Bot
通过 phpMyAdmin 服务成功进入失陷主机后,GoBruteforcer 会进一步部署 IRC Bot。文件 fb5 与 ab5 分别是 x86_64 和 ARM 架构的 IRC Bot,如下所示:
![](https://img-blog.csdnimg.cn/img_convert/d7ce5a7c63de5d5064a2c1f4693673d5.jpeg)
x86 平台的 IRC Bot
![](https://img-blog.csdnimg.cn/img_convert/2ba3e98cbbaaa9137075a55c438b35fc.jpeg)
ARM 平台的 IRC Bot
GoBruteforcer 恶意软件通过 IRC Bot 启用 C&C 通信,如下所示:
![](https://img-blog.csdnimg.cn/img_convert/e7d0f800eff65a3c91e88130910d21cf.jpeg)
IRC 的 C&C 通信
IRC Bot 也会设置定时任务进行持久化,如下所示:
![](https://img-blog.csdnimg.cn/img_convert/2a2404f426ebde023f48673148a0b40b.jpeg)
定时任务持久化
MySQL 与 Postgres 服务
扫描 MySQL 与 Postgres 服务时,GoBruteforcer 检查 3306 端口与 5432 端口是否打开。确认服务开放后,尝试使用各种凭据进行登录,如下所示:
![](https://img-blog.csdnimg.cn/img_convert/b6ab2424093e4ce9a6cdb5292c4c561f.jpeg)
Mysql 登录尝试
![](https://img-blog.csdnimg.cn/img_convert/895ab58a78828d189628d95af6127c8e.jpeg)
Postgres 登录尝试
FTP 服务
确认 FTP 的 21 端口打开后,GoBruteforcer 会尝试使用 goftp 库进行连接尝试,如下所示:
![](https://img-blog.csdnimg.cn/img_convert/a4918284f5763184e9d61d9d54483a43.jpeg)
FTP 登录尝试
PostResult 模块与 WebShell
扫描完成后会调用 GoBruteforcer 的 PostResult 模块,其中包含一个硬编码链接如下所示:
![](https://img-blog.csdnimg.cn/img_convert/6e64f8818dd356618a311c4802b9f6cd.jpeg)
硬编码链接地址
进一步分析该 IP 地址的目录,其中发现了名为 x 的 WebShell。该 WebShell 与名为 pst.php 的 PHP 文件相似。这个 WebShell 实际上具备 Reverse Shell 与 Bind Shell 的功能,如下所示:
![](https://img-blog.csdnimg.cn/img_convert/eb5020cb3c44016e4b573acdfe3960a6.jpeg)
WebShell 功能
除此之外,WebShell 还提供了一个数据包生成工具。能够根据攻击者的控制生成定制化的数据包,例如主机、端口、超时时间等。攻击者可以利用这个工具,来深入地了解目标网络。
![](https://img-blog.csdnimg.cn/img_convert/768d21b05843813db84df6c5b54504de.jpeg)
数据包生成工具
旧版本 GoBruteforcer
在研究人员分析 GoBruteforcer 攻击活动的时候,发现了旧版的 GoBruteforcer 样本文件。该版本的 GoBruteforcer 只针对 phpMyAdmin 服务进行攻击,且 VirusTotal 上为零检出。
![](https://img-blog.csdnimg.cn/img_convert/2893f71b58aa6dc64468b6dd76a8d2d3.jpeg)
VirusTotal 检测结果