基于Golang的加密货币挖矿恶意软件***活动
原创 ang010ela 嘶吼专业版 2019-08-18
Golang也称Go,是一种开源的编程语言。Trend Micro研究人员在分析6月的一起***活动时发现该语言被用于传播加密货币挖矿机。该***活动中使用的传播器可以扫描运行着有漏洞软件的机器来进行传播。该***活动的***链如下:
图1. ***感染链
技术细节
基于Golang的传播器
恶意软件会寻找多个***入口来将恶意软件传播到其他的系统中。在该***活动中,***者使用了常用的SSH服务和多个其他漏洞利用。***活动使用了基于Golang的传播器来扫描:
· SSH
· Misconfigured Redis server
· ThinkPHP exploit
· Drupal exploit
· Atlassian Confluence server (CVE-2019-3396)
图2是扫描Redis端口的传播器代码。
图2. 显示使用Redis的代码
除了使用错误配置的Redis端口外,恶意软件还可以通过有漏洞的web应用,主要是ThinkPHP和Drupal,来感染服务器。下图中的代码表明可以扫描Atlassian’s Confluence服务器的漏洞CVE-2019-3396,该漏洞之前被爆用于传播加密货币挖矿恶意软件。
图3. 使用多个漏洞的代码
最后,恶意软件会通过SSH端口来进行传播,如下图所示。
图4.使用SSH来进行传播的代码
其他组件
恶意软件感染系统后,会连接到Pastebin来下载释放器组建。然后释放器会从下载文件mysqli[.]tar[.]gz,并从中提取出一个TAR文件。该TAR文件中含有加密货币挖矿机payload、基于Golang的扫描器和其他必要组件,比如:
· 挖矿机组件的配置文件
· 执行挖矿机和扫描器的Trojan.SH.SQUELL.CB
· 基于Golang的扫描器
· 挖矿机
· 用来确定恶意软件安装状态的文件
除了执行挖矿机和扫描器外,Trojan.SH.SQUELL.CB还会执行许多其他的动作。它会尝试通过SSH来感染其他系统,禁用安全工具,并清除命令历史和日志。还可以通过拦截网络流量、杀掉其他进程来kill掉其他竞争的加密货币挖矿活动。恶意软件还会在系统中以服务的形式安装来实现驻留。还会设定一个cron任务来从Pastebin下载和执行最新版本的恶意软件。所有的活动如下图代码所示:
图5. 使用SSH感染其他系统的代码
图6. 恶意软件禁用安全工具的代码
图7. 使用命令来清除历史和日志的代码
图8. 恶意软件清理系统中其他挖矿机的代码
图9. 恶意软件实现驻留的代码
总结和建议
基于Golang的脚本和恶意软件已经不是第一次用于***活动了。5月份就有一款基于Golang的传播器用于另一个加密货币挖矿恶意软件。之前Malwarebytes也报道过Go语言被用于数据窃取器恶意软件。
Go语言为网络犯罪分子提供了一个跨平台的开发方法,开发的恶意软件既可以感染Linux主机也可以感染Windows主机。但这些特征对编程语言来说并不是唯一的。对安全分析人员来说,基于Golang的恶意软件更难分析,因为与其他语言相比,该恶意软件在恶意软件中的使用比较少。
用户可以通过加强网络安全和防护的方式来减少类似***活动的有效性。研究人员建议:
· 及时应用必要的安全补丁和更新;
· 关注***者用来传播恶意软件的方法并进行针对性地防护;
· 修改系统和设备设置来预防非授权的访问。
阅读原文阅读 370分享收藏赞在看1写下你的留言有疑问加站长微信联系(非本文作者)