本文将介绍上一篇文章中所介绍的那些二进制文件。首先是Go语言扫描二进制文件networkmanager。
networkmanager
networkmanager二进制文件是一个upx压缩的Go语言二进制文件,用于扫描网络,并在识别出易受攻击的目标时,尝试使用一组结构健全的内置应用程序漏洞来破坏已识别的系统。研究人员已经确定了攻击者使用的两个不同文件名来命名执行相同扫描和利用功能的二进制文件,这两个名称分别是networkmanager和networkservice。
当扫描操作通过上面详细描述的newdate .sh bash脚本启动时,扫描程序二进制文件将执行实际的扫描和利用操作。WatchDog扫描二进制使用一个由60634个单个中文IP网络范围组成的文件,该文件是在networkmanager二进制文件的系统检测阶段下载的。在Go二进制文件的主要初始化函数sym.go.main.ipc.download_ipdb中,networkmanager二进制文件请求,然后下载两个可能的IP地址netrange文件:
http://83.97.20[.]90/cccf67356/ip_cn.txt
http://83.97.20[.]90/cccf67356/ips_cn.txt
IP地址网络范围以二进制格式存储,在转换为ASCII后显示目标IP地址网络范围(参见图16)。
ip_cn.txt中文网络范围的示例
unit42研究人员下载了这些文件,在下载的时候,两个文件似乎包含相同的内容,因为它们unit42的研究人员下载了这些文件,并且在下载时,这两个文件似乎都包含相同的内容,因为它们都具有相同的SHA-256哈希,即ad3efb9bfd49c379a002532f43cc4867a4f0b1cd52b6f438bb7a8feb8833b8f8。 pnscan或masscan进程将使用这两个相同的文件来扫描网络范围中的潜在受害者。
截止发稿时,这两个文件只包含与中国相关的IP地址。WatchDog背后的攻击者很可能能够更新二进制文件,以包含他们希望瞄准的任意数量的IP地址网络范围。unit42的研究人员已经确认了在中国IP地址空间之外,特别是在美国和欧洲范围内也出现了受害者。
在networkmanager Go二进制文件中加载了33个单独的exploit函数、32个单独的远程代码执行(remote code execution, RCE)函数和几个shell抓取函数(参见图17)。
加载到networkmanager二进制文件中的漏洞
以下应用程序是专门针对扫描二进制文件:
1.CCTV利用:目前还不清楚目标是闭路电视设备还是其他;
2.Drupal:版本7和8;
3.Elasticsearch:
3.1 CVE-2015-1427(Elasticsearch沙箱逃避: 1.3.8之前的版本和1.4.3之前的版本);
3.2CVE-2014-3120(1.2之前的Elasticsearch版本);
4.Apache Hadoop:Apache Hadoop是一套用于在由通用硬件构建的大型集群上运行应用程序的框架。它实现了Map/Reduce编程范型,计算任务会被分割成小块(多次)运行在不同的节点上。除此之外,它还提供了一款分布式文件系统(HDFS),数据被存储在计算节点上以提供极高的跨数据中心聚合带宽。
5.PowerShell:编码的命令行操作;
6. Redis:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。
7. Spring Data Commons:Spring Data Commons有一个重要概念:Spring Data Repository抽象。使用Spring Data Repository可以极大地减少数据访问层的代码。1.13-1.13.10, 2.0-2.0.5之前的版本。
8.SQL Server:SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
9.ThinkPHP:要求版本是版本5.x,5.10、5.0.23,ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。
10. Oracle WebLogic Server:版本10.3.6.0.0、12.1.3.0.0、12.2.1.1.0和12.2.1.2.0上的CVE-2017-10271漏洞,Oracle WebLogic Server 是一个Java应用服务器,它全面实现了J2EE 1.5规范、最新的Web服务标准和最高级的互操作标准。WebLogic Server内核以可执行、可扩展和可靠的方式提供统一的安全、事务和管理服务。
早在2019年5月19日之前,中文信息安全论坛forum.90sec.com上的博客帖子已经见证了对“tmp_0324_scan”的引用,90sec博客着重介绍了针对Apache Hadoop,Redis和ThinkPHP应用程序的加密劫持开发事件。
值得注意的是,博客中突出显示的bash脚本的格式与WatchDog挖矿使用的newinit.sh Shell脚本的格式相同(请参见图18)。除了文件名和IP地址不同之外,这两种格式实际上是相同的。
90sec博客和NewInit.sh之间的类似脚本格式
此外,90sec帖子中对“tmp / 0324 / scan”的引用以与networkmanager二进制函数中所见格式相同的格式列出(请参见图17和19)。
从90sec论坛中提取的网络服务漏洞利用图像
很明显,2019年5月19日被90sec发现的活动,就是加密劫持恶意程序家族研究人员今天看到的WatchDog挖矿程序。在过去和现在的恶意程序形式之间,可以观察到一些相似之处,例如似乎使用了相同的漏洞利用程序。但是,在最新版本的WatchDog中已经开发和实施了更新的技术。具体来说,我们在phpguard二进制文件中看到了这一点。
还需要注意的是,denisenkom/ Go -mssqldb库被添加到Go二进制文件中,该库允许通过Go语言访问SQL DB函数,包括远程连接、错误处理、批量操作、日志记录和数据操作(参见图20)。
加载的库:Denisenkom mssql-db,Go-Civil和Redis
Go二进制文件还加载了Google Cloud library Go Civil,以允许使用具有精确的24小时,60分钟和60分钟的公历日历以及Github Redis Go Library,通过二进制文件进行Redis服务控制。
phpguard
Phpguard是一个upx压缩的Go语言二进制文件,用于在操作进程中保护挖矿程序。监控系统进程和定时任务或cronjob(就是在Job上加上了时间调度)的功能,保证挖矿程序的正常运行。研究人员已经为执行相同保护功能的二进制文件确定了两个不同的文件名:phpguard和sysguard。
通过使用自定义Go library “tmp_0324_dog_platform”(参见图21),Go二进制文件能够在Windows或NIX系统中控制XMRig挖矿程序。
在Windows和NIX中用于挖矿控制的phpguard自定义Go函数
另外,二进制文件通过计划的任务将挖掘程序嵌入到相关的操作系统中,就像Windows系统一样(请参见图22)。与NIX系统一样,这也可以通过CronJob进行(请参见图23)。
phpguard WIN Scheduled Task(任务计划)创建
phpguard NIX CronJob的创建
二进制文件还将连续搜索每个操作系统正在运行的进程,以确保挖掘进程正在运行(请参见图24)。
phpguard进程搜索周期
二进制文件旨在确保对挖矿进程进行保护,如果这是二进制文件的第一次运行,它将设置新的保护进程。如果尚未启动挖掘程序,它将启动挖掘程序。如果尚未下载该程序,则二进制文件将开始下载进程(请参见图25)。
为采矿进程设置保护
phpupdate
phpupdate进程是WatchDog挖矿使用的XMRig挖矿程序,unit42的研究人员为执行相同挖矿操作的二进制文件识别了三种不同的文件名,即phpupdate,zzh和trace。
关于WatchDog挖矿程序版本的XMRig,以及它在已知行业挖矿程序操作之外的挖矿业务,几乎没有什么可披漏的。它提供了一个完全可配置的操作菜单,允许用户指定以下挖矿属性(参见图26):
1.挖矿池的URL;
2.挖矿算法或所需的加密货币;
3.用户名;
4.密码;
5.代理信息;
6.发送一个保持活动的数据包;
7. 数据包的大小;
……
WatchDog挖矿的配置选项
虽然可以通过phpguard Go二进制文件来控制采矿程序,如上所述,采矿程序也可以通过直接的用户交互进行操作。
总结
自2019年1月27日以来,WatchDog采矿作业一直在进行中,已收集了至少209枚Monero CryptoCoins(XMR),价值至少32056美元。 WatchDog攻击者通过使用UPX压缩的Go语言二进制文件,使用了云计算效率高的加密劫持恶意程序,以确保他们能够成功攻击Windows和Linux操作系统(不过前提是这些系统要安装Go平台)。目前,已知WatchDog挖矿基础结构包括18个IP地址和7个域。这些恶意终端将继续托管或托管了至少125个用于下载WatchDog挖矿工具包的URL地址。此外,扫描和利用二进制文件networkmanager装有33种独特的漏洞利用,包括32种RCE功能。 WatchDog的挖矿作业规模相当大,因为在任何给定时间,估计至少有476个受攻击的系统正在挖矿。
很明显,WatchDog操作人员都是熟练的程序员,因此他们的挖矿作业相对比较隐蔽。尽管目前没有迹象表明存在其他攻击云的活动,即获取云平台IAM证书、访问ID或密钥,但可能存在进一步的云帐户攻击的可能性。由于在植入密码劫持程序期间获得了根和管理访问权,这些攻击者很可能在他们已经受到破坏的云系统上找到与IAM相关的信息。
Palo Alto Networks Prisma Access配置为通过PAN-OS检测WatchDog的18个IP地址、7个域及其关联的URL地址。Prisma Cloud还检测到WatchDog 挖矿程序在安装了Prisma Cloud Compute Defender的云环境中使用的恶意XMRig进程的使用情况。
本文翻译自:https://unit42.paloaltonetworks.com/watchdog-cryptojacking/如若转载,请注明原文地址: