研究人员近日发现了一个 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://i-blog.csdnimg.cn/blog_migrate/3baf58f065269601f168364869af682c.jpeg)
GoBruteforcer 攻击链
服务器的 /.x/ 目录下的 cache_init 文件,就是被发现植入的 GoBruteforcer 恶意软件。
![](https://i-blog.csdnimg.cn/blog_migrate/8845b95d5fe541078fcc907de78783a6.jpeg)
失陷主机上的恶意软件
GoBruteforcer 恶意软件主要针对类 Unix 平台,支持 x86、x64 与 ARM 架构。
扫描与系统访问
GoBruteforcer 恶意软件样本使用 UPX 加壳,并且针对 CIDR 块内的主机进行扫描。
![](https://i-blog.csdnimg.cn/blog_migrate/1f33fc533862f234d3b7e610808475d6.jpeg)
CIDR 块扫描
对目的 IP 地址来说,恶意软件对其进行扫描 phpMyAdmin、MySQL、FTP 和 Postgres 服务,每种服务都定义了单独的扫描模块。
![](https://i-blog.csdnimg.cn/blog_migrate/2d7ae993a6f29825c84fc262b7c9f5da.jpeg)
扫描不同服务的模块
在不同的扫描模块间,会共用端口扫描模块。
![](https://i-blog.csdnimg.cn/blog_migrate/3afb0e15c8c23841425e03b8c019e82a.jpeg)
端口扫描功能
phpMyAdmin 服务
扫描 phpMyAdmin 服务时,GoBruteforcer 会尝试通过暴力破解入侵服务器。GoBruteforcer 内部携带了各种硬编码的凭据,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/2160fbea841f13304fb0d2afce4169c6.jpeg)
硬编码凭据列表
IRC Bot
通过 phpMyAdmin 服务成功进入失陷主机后,GoBruteforcer 会进一步部署 IRC Bot。文件 fb5 与 ab5 分别是 x86_64 和 ARM 架构的 IRC Bot,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/ec5aa297a625cde78d4c882add304d99.jpeg)
x86 平台的 IRC Bot
![](https://i-blog.csdnimg.cn/blog_migrate/b564f169c33520ff8833bbdbef50e3a5.jpeg)
ARM 平台的 IRC Bot
GoBruteforcer 恶意软件通过 IRC Bot 启用 C&C 通信,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/d83dd81e4f692c0eeaffe3d224654dac.jpeg)
IRC 的 C&C 通信
IRC Bot 也会设置定时任务进行持久化,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/d57d4931cadc33c4f5d5f50c9610277f.jpeg)
定时任务持久化
MySQL 与 Postgres 服务
扫描 MySQL 与 Postgres 服务时,GoBruteforcer 检查 3306 端口与 5432 端口是否打开。确认服务开放后,尝试使用各种凭据进行登录,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/378b66d4cc2fdb5ab7013b2e951ed51d.jpeg)
Mysql 登录尝试
![](https://i-blog.csdnimg.cn/blog_migrate/cd569cb7714f27be253de0e5712e7fb0.jpeg)
Postgres 登录尝试
FTP 服务
确认 FTP 的 21 端口打开后,GoBruteforcer 会尝试使用 goftp 库进行连接尝试,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/b62ac818bf49e5381e2f2aa0297f9555.jpeg)
FTP 登录尝试
PostResult 模块与 WebShell
扫描完成后会调用 GoBruteforcer 的 PostResult 模块,其中包含一个硬编码链接如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/184d7a34850a63d2984c17b43aafddcd.jpeg)
硬编码链接地址
进一步分析该 IP 地址的目录,其中发现了名为 x 的 WebShell。该 WebShell 与名为 pst.php 的 PHP 文件相似。这个 WebShell 实际上具备 Reverse Shell 与 Bind Shell 的功能,如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/36a0dfcb6ffdf1158bedcbe8c4b0c800.jpeg)
WebShell 功能
除此之外,WebShell 还提供了一个数据包生成工具。能够根据攻击者的控制生成定制化的数据包,例如主机、端口、超时时间等。攻击者可以利用这个工具,来深入地了解目标网络。
![](https://i-blog.csdnimg.cn/blog_migrate/2caab5cda4d30bc8aa7db42a0e873137.jpeg)
数据包生成工具
旧版本 GoBruteforcer
在研究人员分析 GoBruteforcer 攻击活动的时候,发现了旧版的 GoBruteforcer 样本文件。该版本的 GoBruteforcer 只针对 phpMyAdmin 服务进行攻击,且 VirusTotal 上为零检出。
![](https://i-blog.csdnimg.cn/blog_migrate/ec3c87deb9c5a3047211c9da130caa03.jpeg)
VirusTotal 检测结果