- WellServ行动主要是攻击目标的服务器,以长期持续控制和内网渗透为目的。
- WellVpn行动主要是针对网络基础服务供应商技术人员的定向攻击,以恶意VPN服务社工钓鱼作为切入点进行供应链攻击。
WellMess组织的攻击特点
WellMess组织的攻击具备以下特点:
- 发起的都是针对性极强的定向攻击,对目标进行了较长时间的控制
- 攻击前期进行了周密的筹划,针对目标和关联目标发动了供应链攻击行动
- 擅长使用GO语言构建攻击武器,具备Windows和Linux双平台攻击能力
WellMess组织的技战术过程
对WellMess组织的攻击行为进行研究后,我们借鉴ATT&CK描叙了其完整的技战术过程。
WellMsess的攻击技战术过程分为供应链攻击、边界入侵和内网后渗透三个阶段。
- 供应链入侵阶段
该组织通过架设恶意VPN服务器的方式进行钓鱼攻击,用社会工程学的方式诱导目标连接恶意VPN服务器,达到远程植入木马后门的效果。
- 边界入侵阶段
该组织对多个目标实施了网络攻击,部分攻击是通过安全漏洞入侵目标网络的服务器,同时疑似通过失陷供应商的信任关系,获取账户密码接入目标网络边界服务(如VPN、邮件服务等)。
- 内网后渗透阶段
该组织在攻陷目标机器之后,会安装专属的后门程序,控制目标机器进行信息搜集和横向移动,同时为了行动的方便也会建立代理跳板隧道方便内网渗透。
WellServ行动
1. 受影响情况
2. 攻击技战术分析
该组织针对攻击目标进行了复杂的网络渗透,我们通过日志对其攻击流程进行了部分还原:
后门与持久化
在通过对公网服务器的攻击并取得一定权限后,下发并启动WellMess专用后门,用于维持shell权限,后门会定时反向连接C&C,通过远程控制命令完成操作。由于该后门的主要目标为服务器系统,考虑到服务器很少重启,所以其自身没有内置设计持久化功能。后门的持久化,往往通过攻击组件为其添加计划任务,或者通过远程桌面操作手动添加以及AD域策略下发等方式。
信息收集
在信息收集方面,主要利用系统自带工具收集本地信息,包括systeminfo、ipconfig、WMIC等。还会使用第三方工具收集,如LaZagne Project、mimikatz收集密码,使用ADFIND收集域相关信息。
内网端口转发
在内网渗透过程中,可能会存在网络访问限制,攻击者通过端口转发来穿透内网,搭建跳板机对其他内网主机进行扫描和进一步的攻击。WellMess在渗透过程中采用了一个名为gost的开源工具,通过它实现加密隧道传输。
如相关工具日志中最常出现的一条命令:
其含义为: 将原103[.]253[.]41[.]102这个C&C的8673端口数据,通过socks5代理链转发到本地192.168.0.250的49645端口。攻击者访问C&C的8673端口,通过加密隧道,相当于直接访问目标机器的49625端口。
横向移动
我们从日志中发现,攻击者有利用powershell访问其他机器的IPC$资源,以及利用远程桌面登陆到不同主机的行为,说明内网多台机器遭受了横向移动攻击。
3. 攻击组件分析
分类数量 | 命名 | |
后门组件3例 | WellMess_Hello
WellMess_Botlib WellMess_Net |
|
持久化组件1例 | WellMess_Task | |
第三方工具4例 | Gost
mimikatz LaZagne Project ADFIND |
后门组件
在发现的后门组件中,不同的中招目标几乎没有找到相同MD5的后门,但是大部分样本间都能找到相似的特征。其中主要归类为两种,Windows和Linux上共用的GO版本,以及Windows上专有的.Net版本。由于GO类型后门较大,在捕捉的样本中,部分样本加有UPX壳。
GO类型后门
GO类型后门拥有很强的跨平台能力,只要一套源码上进行更改就可以同时在多个平台使用。该类后门也有两种,一种是未封装的版本,一种是封装成botlib类的版本。
未封装的版本我们命名为WellMess_Hello,其主要功能简单,主要是作为渗透过程中的一个shell驻留。主要功能函数如下:
通信过程中采用HTTPS,C&C为25端口。设置为邮件服务的常用端口可以突破防火墙限制。
封装成Botlib类的后门我们命名为WellMess_Botlib。WellMess_Botlib可以看作是WellMess_Hello的升级版,在其基础上添加了更多的远程控制命令并在通信过程中做了数据加密。
Botlib类的GO后门主要有Windows版和Linux版,这两种后门实际是相似的,通过还原GO的符号,可以发现其核心函数类似且都在botlib库下面。如下图,左侧为Windows版右侧为Linux版:
后门的核心功能为上传下载文件和远程shell,尽管样本很大,但并没有使用一些特殊的技术。在启动后,会和C&C交换数据,根据C&C的命令完成不同操作。在和C&C交互过程中的核心参数为Service参数,其控制整个后门的核心功能,字段含义如下:
Service 参数 | 功能 |
p | 初始化AES密钥 |
u | 修改User-Agent头 |
m | 设置数据包长度限制 |
hi | 设置运行周期 |
fu | 下载文件 |
fd | 上传文件 |
其他 | 执行shell命令 |
触发命令’ Fu’时,直接进行下载操作
触发命令’ Fd’时,直接读取后上传
如果其他参数没有匹配到,则会执行命令行
在样本的编码中可以看出针对的语言涉及中文、日文、韩文,可以推断这类样本主要针对东亚地区。
.Net 类型后门
.Net版本的后门我们命名为WellMess_Net。WellMess_Net外层是个loader,实际功能为利用RC6解码代码中的buffer为一个PE,并在新的域内调用。
新解密的代码也是WellMess后门,核心控制功能依旧为上传下载文件和远程shell。通过分析发现大量功能函数和WellMess_Botlib相同,可以说WellMess_Net实际上就是WellMess_Botlib在.Net平台上的重写。在BotChat类的UDFile函数执行上传下载操作,Command函数执行命令行,同时WellMess_Net还支持执行powershell脚本
后门加密算法分析
在通信上会采用RC6、AES、RSA进行加密.
RC6算法应用于WellMess_Botlib、WellMess_Net 中的通信过程同时也在WellMess_Net中用于解码出后门dll。RC6是所有通信最外层的加密,任何cookie和数据包在最外层都要经过RC6处理后进行base64然后做字符串替换混淆,最后进行通信传输。
AES算法应用于WellMess_Botlib和WellMess_Net中的通信过程,采用CBC模式,这个是通信数据的核心加密算法,如果拿不到AES密钥,核心的C&C控制命令以及文件传输信息就无法获取。
RSA主要用于加密AES密钥、AES初始向量和收集到的本地信息。在通信最开始阶段,通过RSA本地公钥加密随机的AES密钥和IV,并发送给C&C。同时还会发送本地收集信息以及利用这些信息制作的HASH用于识别中招机器。
持久化组件
我们将该组织的持久化组件命名为WellMess_Task。持久化组件的主要功能为:利用XML文件注册计划任务,为后门添加自启动,主要攻击目标是服务器系统。
第三方工具
WellMess组织除了自己研发的工具,还使用了如下第三方工具进行后渗透攻击活动,对应功能如下:
名称 | 功能 |
Gost | 端口转发 |
mimikatz | 读取本地密码 |
LaZagne Project | 读取本地密码 |
ADFIND | 查询域信息 |
WellVpn行动
1. 受影响情况
2. 攻击技战术分析
3. VPN客户端漏洞分析
VPN客户端在连接VPN服务器过程中有个预配置行为,客户端启动后的一个线程是升级功能,方法是通过传递命令行参数启动升级程序,升级程序会向目标服务器获取更新程序下载执行,该功能优先于登陆操作。
4. 后门组件分析
此次攻击行动的后门组件主要分为两类,是WellMess专属的下载者和WellMess专属的最新版本后门程序。
Wellmess_Downloader
cmd 命令行 |
systeminfo |
ipconfig.exe /all |
set |
net user |
hostname |
net user /domain |
net group /domain |
tasklist.exe /V |
whoami /all |
值得注意的是在攻击组件利用计划任务实现持久化的过程中,首先会判断是否具有管理员权限。由于VPN客户端在升级更新过程中,会开启自己的提权服务,当升级过程中是普通权限时,会调用**PromoteService自动提权,因此后门组件无需再次提权。
伪装的VPN升级组件会通过HTTP下载并执行最新版本的WellMess_Botlib后门
其中在通信过程中,会采用RC6算法加密
新版WellMess_Botlib
本次使用的后门为WellMess使用GO语言开发的最新版后门,最新版的样本与老版本的WellMess_Botlib 相比做了小部分功能调整,新版本同时可以支持http、https、域名多种协议进行命令控制。
其中在命令参数上多了一条”pr”指令用于设置使用的协议,而协议分为Protocol_1、Protocol_2、Protocol_3。
- Protocol_1采用http通信方式,Protocol_2采用https方式,这两种和老版WellMess_Botlib在通信方面采用相同加密方法。
- Protocol_3采用DNS隧道的方法,使用其中的TXT类型数据进行通信。在加密算法上不再使用AES和RC6而是采用RC4进行加密,同时采用zbase32进行编码。
Protocol_3同时增加了’com’命令用于判断执行shell命令。目前捕获的样本中,Protocol_3功能暂未发现使用。
样本本身依旧不带持久化功能,这和老版本专注于攻击服务器有关,在新版本中的持久化依旧依赖于渗透过程中shell命令交互执行。
5. 后渗透行为分析
在样本成功落地并和C&C进行交互后,会执行攻击者下发的远程命令进行后渗透攻击,相比于WellServ攻击行动,WellVpn行动的攻击拥有更明确的目的,执行的命令大致为以下几种:
- 收集本地机器信息部分,主要是对主机相关的信息进行收集
- 下载第三方工具部分,可以看出攻击者除了使用作为C&C的几个端口,还会使用其他端口下载第三方工具辅助操作
- 收集密码信息并打包部分,攻击者本次攻击行动核心目的是收集密码信息,经过统计发现,主要目标是远程终端软件的session数据。收集后使用从C&C下载的7z或者其他的打包工具打包,最终利用WellMess后门中的上传功能上传。
后渗透相关的Shell操作显示攻击者主要以收集信息、特别是密码信息为目的,而中招人员维护了大量相关机构的网络基础设施的账号密码。我们推测攻击者在获取这些系统的账户密码后,会通过相关系统作为突破口,再针对相关目标发起新一轮的网络渗透攻击,相关单位需要提高警惕,排查可能出现的网络异常情况。
幕后组织归属
在历史攻击数据中暂未关联到与此次WellMess攻击模式相似的数据,目前只能通过此次攻击行动的攻击痕迹推测幕后组织的归属,我们对攻击时间范围和样本编译时间范围进行统计分析。
- 远程shell按小时统计时区(UTC+0)
- 落地样本编译时间按小时统计时区(UTC+0)
攻击者远程shell的日志时间和样本的编译时间规律显示,该组织是来源于时区UTC+3即东三时区地域的国家。
智库时评
平地一声惊雷起,揭开万倾网络攻防风云战。可以说,此次全新APT组织的披露,无疑为网络安全的世界再蒙一层冰霜。尤其是在网络战早已成为大国博弈重要手段之下,WellMess组织以其高隐秘性、广目标性、强杀伤性的供应链攻击,令全球的网络系统犹如不定时炸弹一样,随时会在临界点中“爆发”。
针对如此强劲的APT高阶威胁攻击,请相关单位提高警惕,保护好关键网络基础设施的安全,同时对客户端做好安全漏洞补丁的更新,并定期进行病毒查杀。
危机时刻,我们更希望业界如360安全大脑及其360威胁情报云、APT全景雷达等诸多安全产品,能持续性支持对该组织的攻击检测。
最后,关于360高级威胁研究院:它是360政企安全集团的核心能力支持部门,由360资深安全专家组成,专注于高级威胁的发现、防御、处置和研究,曾在全球范围内率先捕获双杀、双星、噩梦公式等多起业界知名的0day在野攻击,独家披露多个国家级APT组织的高级行动,赢得业内外的广泛认可,为360保障国家网络安全提供有力支撑。
附录:IOC
WellMess_Hello |
8777a9796565effa01b03cf1cea9d24d |
WellMess_Botlib |
51f3ff4ffb2ad830c5ddca0fb5f6417d |
d24de5bb4f3b903e91e8ad31ddbee520 |
09bdcf2062d86cc0dd1d11479e30f747 |
31c888ee2fa179410c8b0812317b34af |
e58b8de07372b9913ca2fbd3b103bb8f |
429be60f0e444f4d9ba1255e88093721 |
WellMess_Net |
03c78d459aeb4625d26eabbeae39bc99 |
3a3b65439f52f8611028f9bcaf5e0278 |
7d35c3aba04211d087fc5952b5d91511 |
39df019b9d9803655a95fcb184b2ed6a |
74d59de5909c87ac6e727fe7e7429a76 |
84d9d57958ff032e9aca2b003e06610b |
538f51690e2933e8beccef20098dac7b |
3367fc1b45c344a590f633130da770a6 |
17450b81d0e34edfe9ea26788d8bd70f |
584027e8ecb30f16106ed08fb3b7fbb4 |
aea1064a7c69c7687c75f18459f46c9a |
bc479f7a8cb9bcc633f0f2b9733ed67b |
ee843ed3afd6626847a3d9966168c700 |
WellMess_Task |
d6e82086ca56623b07b72355fa217b9e |
WellMess_Downloader |
c5d5cb99291fa4b2a68b5ea3ff9d9f9a |
a32e1202257a2945bf0f878c58490af8 |
967fcf185634def5177f74b0f703bdc0 |
C&C
URL |
https://119.81.184[.]11:25 |
http://112.74.102[.]215:8085 |
http://119.81.173[.]130:80 |
http://103.253.41[.]82:8081 |
https://119.81.178[.]105:443 |
http://103.73.188[.]101 |
http://112.74.102[.]215:8081 |
http://103.253.41[.]102:8081 |
http://139.129.110[.]82:8081 |
http://120.76.101[.]58:8081 |
http://218.244.138[.]95:8085 |
http://120.55.163[.]144:8081 |
http://103.216.221.19:8080 |
https://103.216.221.19:8081 |
http://103.216.221.19:80 |
http://103.216.221.19:81 |
IP |
119.81.184[.]11 |
112.74.102[.]215 |
119.81.173[.]130 |
103.253.41[.]82 |
119.81.178[.]105 |
103.73.188[.]101 |
103.253.41[.]102 |
139.129.110[.]82 |
120.76.101[.]58 |
218.244.138[.]95 |
120.55.163[.]144 |
103.216.221[.]19 |