国家级黑客组织利用受损的乌克兰私人军事电子邮件针对欧洲政府和难民发起攻击

关键要点

已经确定了一个可能由民族国家赞助的网络钓鱼活动,该活动使用可能被盗的乌克兰武装部队成员的电子邮件帐户,针对参与管理逃离乌克兰的难民后勤工作的欧洲政府人员。

该电子邮件包含一个恶意宏附件,该附件试图下载一个名为 SunSeed 的基于 Lua 的恶意软件。

该活动中使用的感染链与 2021 年 7 月观察到的历史性活动具有显着相似之处,因此很可能同一威胁行为者是这两个活动集群的幕后黑手。 

概述

“伏击: 从隐蔽处突然袭击,毫无征兆”

研究人员已经确定了来自一个电子邮件地址 (ukr[.]net) 的网络钓鱼活动,该电子邮件地址似乎属于一名受感染的乌克兰武装部队成员。这一发现是在 警报之后出现的 由乌克兰计算机应急响应小组 (CERT-UA) 和乌克兰国家特殊通信和信息保护服务局发布,关于“UNC1151”针对乌克兰武装部队成员私人电子邮件帐户的广泛网络钓鱼活动,作为 TA445 的一部分进行跟踪。观察到的电子邮件可能代表这些攻击的下一阶段。该电子邮件包含一个恶意宏附件,该附件利用了与 2022 年 2 月 23 日举行的北约安理会紧急会议有关的社会工程主题。该电子邮件还包含一个恶意附件,该附件试图下载名为 SunSeed 的恶意 Lua 恶意软件,并针对欧洲政府人员负责管理欧洲的交通和人口流动。 

鉴于正在进行的俄乌战争,TA445 等代理行为者的行动将继续以欧洲政府为目标,以收集有关乌克兰难民流动和对俄罗斯政府重要的问题的情报。TA445 似乎在白俄罗斯以外开展业务,具体而言,它有  参与大量虚假信息行动的历史,这些行动旨在操纵欧洲对北约国家内难民流动的情绪。这些受控制的叙述可能旨在调动欧洲国家内部的反难民情绪,加剧北约成员国之间的紧张局势,减少西方对参与武装冲突的乌克兰实体的支持。这种方法是一个 已知因素 在俄罗斯军方采用的混合战争模式中,白俄罗斯也采用这种模式。

发送

2022 年 2 月 24 日,检测到一封来自 ukr[.]net 电子邮件地址的电子邮件,该电子邮件地址已发送至欧洲政府实体。该电子邮件使用了“根据乌克兰安全委员会 2022 年 2 月 24 日紧急会议的决定”的主题,并包含一个启用宏的 XLS 文件,标题为“person.xlsx 列表”,该文件后来被确定为传递 SunSeed 恶意软件. 在 2022 年 2 月 23 日的北约安理会会议和有关俄罗斯政府针对乌克兰人的“杀戮名单”的新闻报道于 2022 年 2 月 21 日开始在西方媒体上流传之后,这次网络钓鱼活动中使用的社会工程诱饵非常及时. 主题的格式包括日期“24.02. 2022”在主题行末尾,表面上与乌克兰国家特殊通信和信息保护局 (SSSCIP) 于 2022 年 2 月 25 日报告的电子邮件相似。此警报表明,大规模网络钓鱼活动的目标是“公民的电子邮箱”。邮件地址”在乌克兰。值得注意的是,我们观察活动的时间安排与乌克兰国家机构报告的活动非常接近。 

图 1. SSSCIP 乌克兰 报告的 电子邮件,包括日期格式 24.02.2022。

 图 2.针对乌克兰军事人员私人账户的 UNC1151 的CERT-UA 报告。

对发件人电子邮件地址的开源研究在 2016 年的 Stihl 割草机的乌克兰公共采购文件中确定了该帐户。该电子邮件帐户被列为购买的联系地址,而客户被列为“Військова частина А2622”或军事单位 A2622。这个标题以及列出的地址似乎指的是在“Чернігівська область”或乌克兰切尔尼戈夫地区设有军事单位的军营。虽然尚未明确确定这一检测到的活动是否与乌克兰政府报告的网络钓鱼活动一致,或者该活动可归因于 TA445。

图 3. 乌克兰军事采购文件,包括可能被泄露的发件人电子邮件作为联系人。

启用宏的附件

在电子邮件中观察到的恶意 XLS 附件包含一个简单但独特的宏。启用后,它会执行一个名为“Module1”的 VB 宏,该宏会创建一个 Windows Installer (msiexec.exe) 对象,该对象调用 Windows Installer 以调出由参与者控制的暂存 IP 并下载恶意 MSI 包。它还将 Microsoft 文档 UILevel设置 为“2”,指定“完全静默安装”的用户界面级别。这对用户隐藏了所有宏操作和网络连接。参与者通过 Microsoft Installer InstallProduct访问交付 IP  该方法旨在从 URL 获取 MSI 安装文件,将其保存到缓存位置,最后开始安装 MSI 包。由于攻击者使用 MSI 包作为基于 Lua 的恶意软件的安装程序,因此这种方法非常适合通过网络钓鱼传递的恶意宏负载文档进行部署。

图 4. 在 person.xlsx 列表中观察到的恶意宏。

SunSeed Lua 恶意软件安装

对参与者控制的交付基础设施的分析确定了一个 MSI 包,该包安装了一系列基于 Lua 的依赖项,执行了称为 SunSeed 的恶意 Lua 脚本,并通过安装用于在 Windows 启动时自动运行的 LNK 文件建立持久性。该文件名为 qwerty_setup.msi,之前 由安全研究员公开识别 ,以响应初始 内容 关于这个威胁。该软件包安装了 12 个合法的 Lua 依赖项、一个 Windows Lua 解释器、一个恶意 Lua 脚本 (SunSeed) 和一个用于持久性的 Windows 快捷方式 LNK 文件。值得注意的是,合法的 Windows Lua 解释器 sppsvc.exe 已被修改,因此它不会向 Windows 控制台打印任何输出。这可能是为了向受感染用户隐藏恶意软件安装。除 LNK 文件外,所有文件都安装到文件夹 C:\ProgramData\.security-soft\。通过 Window Lua 解释器执行 SunSeed 命令“print.lua”的 LNK 持久性脚本保存到目录 C:\ProgramData\.security-soft\sppsvc.exe 以在启动时执行。这会执行恶意 SunSeed Lua 脚本“print.lua”。

合法文件和 Lua 依赖项:

luacom.dll(LuaCom 库)

ltn12.lua(LuaSocket:LTN12 模块)

mime.lua(对 Lua 语言的 MIME 支持)

http.lua(Lua 的 HTTP 库)

url.lua (luasocket)

tp.lua (luasocket)

socket.lua (luasocket)

tp.lua

core.dll

mime.dll

lua51.dll

sppsvc.exe(Lua Windows Standalone Interpreter)

<6个字符>.rbs(Windows 安装程序回滚脚本) 

持久性文件:

Software Protection Service.lnk

安装目录:

~\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Software Protection Service.lnk

恶意 SunSeed Lua 脚本:

print.lua 7bf33b494c70bd0a0a865b5fbcee0c58fa9274b8741b03695b45998bcd

图 5. Asylum Ambuscade - 活动快照。

研究人员在仔细检查后观察到 MSI 封装的几个不同和不寻常的方面。该演员使用了日语 Shift-JIS 代码库,在启动 MSI 包时会显示日语安装消息。这可能是一个基本的虚假标志,旨在隐藏威胁者的口语。此外,在安装过程中对软件包进行的加密调用的检查表明 MSI 文件似乎是使用 WiX Toolset 版本 3.11.0.1528 的过时版本创建的。这是一个开源软件,允许用户从命令行“构建 MSI 而无需在构建服务器上安装其他软件”。该版本最后一次更新是在 2017 年,最近的更新是在 2019 年推出的,而全新版本的工具集则在 2021 年 5 月推出。

图 6. 日文代码库 MSI 包安装显示。

图 7. 指示 Windows Installer XML 版本的 MSI 包加密调用。

SunSeed 恶意软件功能:Lua 下载器

根据对 SunSeed print.lua 恶意第二阶段负载脚本的解码,它似乎是一个简单的下载器,它从主机获取 C 驱动器分区序列号,通过 Lua 套接字附加到 URL 请求,持续 ping C2 服务器附加 Lua 代码,并在响应中接收到该代码时执行该代码。在分析时,我们没有从 C2 服务器收到额外的 Lua 代码。然而,研究人员认为,这可能是为了将后续阶段的有效载荷传递给受感染的主机。对 SunSeed Lua 主机进行解码的进一步尝试包括几个值得注意的字符串,这些字符串可能暗示来自参与者控制的服务器的可能响应。在没有 C2 服务器响应的情况下,这些字符串似乎不是初始 SunSeed 脚本功能的一部分。 

“serial”

“string”

“luacom”

“CreateObject”

“Scripting.FileSystemObject”

“Drives”

“SerialNumber”

“socket.http”

“request”

“[.]96/”

“ socket”

“sleep”

命令与控制

SunSeed 恶意软件在执行时使用 Lua 套接字通过端口 80 通过 HTTP 发出 GET 请求。每三秒向 C2 服务器发出请求,以期得到响应。该恶意软件将用户代理指定为“LuaSocket 2.0.2”,并将受感染目标的 C 驱动器分区序列号附加到 URI 请求中。这是在创建文件系统时分配给驱动器的唯一十进制数字值。参与者可能会尝试根据他们的唯一序列号在后端跟踪受感染的受害者。此外,这可能允许运营商选择在下一阶段有效负载响应中发出哪些感染。根据观察到的 Lua 脚本中的字符串,研究人员推测服务器响应可能包含进一步的恶意命令, 

图 8. SunSeed Lua 恶意软件 C2 通信。 

受害者和目标

可利用围绕此活动的有限数据集,只能得出有限的关于定位的结论。观察到的电子邮件消息仅限于欧洲政府实体。目标个人拥有一系列专业知识和专业责任。然而,显然更倾向于针对负责欧洲境内交通、财务和预算分配、行政管理和人口流动的个人。这场运动可能代表着试图获取有关北约成员国内资金、物资和人员流动的后勤情报。

归属仍不清楚

存在几个时间和轶事指标,表明此活动与威胁参与者 TA445/ UNC1151报告的活动一致/代笔人。然而,还没有观察到具体的技术重叠,这将使我们能够明确地将这场运动归咎于这个演员。除了与之前提到的乌克兰政府报告的运动有显着重叠之外,该运动的受害者是北约著名政府成为目标,并且可能关注北约国家的难民流动,这让人想起 TA445 大约在 2021 年开展信息行动的历史动机。该组织在 2021 年移民危机期间散布的反移民叙事也被称为 Ghostwriter,其中白俄罗斯故意将难民汇集到波兰边境,这掩盖了 2022 年的竞选活动与 TA445 的历史使命之间可能存在的联系。主要是这两种运动都可能表明通过混合信息战和有针对性的网络攻击模型将战争中的移民和难民武器化。Mandiant 的研究人员通过 UNC1151 的信息运营团队(称为 Ghostwriter)(统称为 TA445)在最近的一次 演示文稿 (12:17 时间戳),披露该组织的存在并将该活动归因于白俄罗斯。除了 Asylum Ambuscade 行动外,最近几天研究人员还检测到 TA445 凭证收集活动,这与 Mandiant 对该威胁组的描述一致,包括使用 GoPhish 传递恶意电子邮件内容。这项活动似乎与庇护伏击活动不同。目前正在追踪与 TA445 不同的负责 Asylum Ambuscade 的演员,直到可以进一步建立技术关系。

图 9. Asylum Ambuscade 活动与 TA445 TTP 的比较。

虽然目前尚未明确确定归属,但研究人员以适度的信心评估该活动和 2021 年 7 月以来的历史性活动是由同一威胁行为者进行的。2021 年 7 月的活动利用高度相似的宏负载 XLS 附件来提供安装 Lua 恶意软件脚本的 MSI 包。同样,该活动利用最近的一份政府报告作为社会工程内容的基础,并将恶意 附件命名为 “简报参与者名单.xls。” 除了文件名与 Asylum Ambuscade 活动非常相似之外,Lua 脚本还创建了与 SunSeed 样本几乎相同的 URI 信标,该信标由受感染受害者的 C 驱动器分区序列号组成。对两个样本中的加密调用的分析表明,相同版本的 WiX 3.11.0.1528 已被用于创建 MSI 包。最后,这个历史性活动中的宏使用了与 Asylum Ambuscade 活动相同的技术,使用 Windows Installer 从参与者控制的 IP 资源中检索 MSI 包,并抑制用户的安装指示。2021 年 7 月的活动针对美国私营公司的高级网络安全从业人员和决策者,包括国防领域的公司。

图 10. 2021 年 7 月的历史恶意宏。

结论:及时平衡准确的报告

这项活动独立于归因结论,代表了在俄罗斯、其代理人和乌克兰之间的武装冲突活跃时期,以乌克兰军事账户受损的北约实体为目标的努力。在发布本报告时,我们力求在负责任报告的准确性与尽可能快地披露可操作情报之间取得平衡。包括网络领域在内的混合冲突的爆发加快了行动的步伐,并减少了防御者必须回答有关与已知民族国家运营商的归属和历史相关性的更深层次问题的时间。然而,这些是在保护全球客户的同时将继续研究的问题。我们邀请有关与这些报告一致的任何观察到的活动的其他详细信息和输入。虽然在这场战役中使用的技术并不是单独的突破性的,但如果集体部署,并且在高速冲突期间,它们具有非常有效的能力。随着冲突的继续,研究人员评估可能会对北约国家的政府实体进行类似的攻击。此外,利用欧洲难民流动情报用于虚假信息的可能性是俄罗斯和白俄罗斯国家技术的一个成熟部分。意识到这种威胁并公开披露它对于培养目标实体的意识至关重要。在高节奏的冲突中,他们拥有相当有效的能力。随着冲突的继续,研究人员评估可能会对北约国家的政府实体进行类似的攻击。此外,利用欧洲难民流动情报用于虚假信息的可能性是俄罗斯和白俄罗斯国家技术的一个成熟部分。意识到这种威胁并公开披露它对于培养目标实体的意识至关重要。在高节奏的冲突中,他们拥有相当有效的能力。随着冲突的继续,研究人员评估可能会对北约国家的政府实体进行类似的攻击。此外,利用欧洲难民流动情报用于虚假信息的可能性是俄罗斯和白俄罗斯国家技术的一个成熟部分。意识到这种威胁并公开披露它对于培养目标实体的意识至关重要。利用欧洲难民流动情报进行虚假信息的可能性已被证明是俄罗斯和白俄罗斯国家技术的一部分。意识到这种威胁并公开披露它对于培养目标实体的意识至关重要。利用欧洲难民流动情报进行虚假信息的可能性已被证明是俄罗斯和白俄罗斯国家技术的一部分。意识到这种威胁并公开披露它对于培养目标实体的意识至关重要。 

Indicators of Compromise (IOCs) 

IOC

Type of IOC

Description

<redacted>@ukr[.]net

Sender Email

February 24, 2022

IN ACCORDANCE WITH THE DECISION OF THE EMERGENCY MEETING OF THE SECURITY COUNCIL OF UKRAINE DATED 24.02.2022

Email Subject

February 24, 2022

list of persons.xls 1561ece482c78a2d587b66c8eaf211e806ff438e506fcef8f14ae367db82d9b3

Attachment

February 24, 2022

84.32.188[.]96

IP

Actor Controlled IP

qwerty_setup.msi

31d765deae26fb5cbc700c57f9bd0fc643a622dc0911c42bf93d18f

MSI Package

Malicious MSI Package

print.lua 7bf33b494c70bd0a0a865b5fbcee0c58fa9274b8741b03695b45998bcd

Lua Script

Malicious Lua Script Payload

luacom.dll f97f26f9cb210c0fcf2b50b7b9c8c93192b420cdbdec2848fd19a9af2c

ltn12.lua b1864aed85cb04fbe9b3f41c5ebc4df6d129e08ef65a0c413d0daabd29

mime.lua e9167e0da842a0b856cbe6a2cf576f2d11bcedb5985e8e4c8c71a73486f6fa5a

http.lua d10fbef2fe8aa983fcc6bec4dc4f909f24ab64732c14b3e5fc

socket.dll 3694f63eed46c6bef5c63e0548f743a8fa6bb6983dcf107cab9044

mime.dll 976b7b17f2663fee38d4c4b1cfb17343fbf9ddd29657

lua5.1.dll fbbe7ee073d0290ac13c98b92a8405ea04dcc6837bdd70679e933f

url.lua c11dbb25b1b4b13eec4e7577e15de33ca18afa70a2be5f373b771bd1ab

sppsvc.exe 737f08702f00e78dbe78acbeda63b73d04c1f8e741c5282a9aab6efa8

tp.lua

343afa62f69c7c140fbbf02b4ba2f7b2f711b6201bb6671c67a69

socket.lua 15fd138a169cae80fecf4c797b33a257d587ed446f02ecf3ef913e307a22f96d

Files

Legitimate Lua Dependencies

Software Protection Service.lnk

File Name

Persistence File Name

AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Software Protection Service.lnk

Directory Path

Persistence File Directory

C:\ProgramData\.security-soft

Directory Path

Lua Files Installation Directory

hxxp://84.32.188[.]96/<hexadecimal_value>

URL

Command and Control

list of participants of the briefing.xls

a8fd0a5de66fa39056c0ddf2ec74ccd38b2ede147afa602aba00a3f0b55a88e0

File

Phishing Attachment

July 2021

157.230.104[.]79

IP

Actor Controlled IP

July 2021

i.msi

2e1de7b61ed25579e796ec4c0df2e25d2b98a1f8d4fdb077e2b52ee06c768fca

MSI Package

Malicious MSI Package

July 2021

hxxp://45.61.137[.]231/?id=<hexdecimal_value>

URL

Command and Control

wlua5.1.exe

737f08702f00e78dbe78acbeda63b73d04c1f8e741c5282a9aab6efa8

core.lua

737f08702f00e78dbe78acbeda63b73d04c1f8e741c5282a9aab6efa8

luacom.dll

f97f26f9cb210c0fcf2b50b7b9c8c93192b420cdbdec2848fd19a9af2c

struct.dll

5b317f27ad1e2c641f85befb65e93f28df06ed03daa1f98d0aa5e69cf0

ltn12.lua

b1864aed85cb04fbe9b3f41c5ebc4df6d129e08ef65a0c413d0daabd29

mime.lua

e9167e0da842a0b856cbe6a2cf576f2d11bcedb5985e8e4c8c71a73486f6fa5a

http.lua

d10fbef2fe8aa983fcc6bec4dc4f909f24ab64732c14b3e5fc

socket.dll

3694f63eed46c6bef5c63e0548f743a8fa6bb6983dcf107cab9044

core.dll

9aa3ca96a84ebadb58776c9eefb6f7e6f9b50498f7071

core.lua

20180adaef6db45b2978fd962d2168fb3b2b1580da3af6465fe2f6

mime.dll

976b7b17f2663fee38d4c4b1cfb17343fbf9ddd29657

lua5.1.dll

fbbe7ee073d0290ac13c98b92a8405ea04dcc6837bdd70679e933f

url.lua

c11dbb25b1b4b13eec4e7577e15de33ca18afa70a2be5f373b771bd1ab

alien.lua

303eb1beda0338eb10a845e6b0965ca9fa8ee16fa9f3a3c6ef03c6939f

tp.lua

343afa62f69c7c140fbbf02b4ba2f7b2f711b6201bb6671c67a69

socket.lua

15fd138a169cae80fecf4c797b33a257d587ed446f02ecf3ef913e307a22f96d

Files

Lua Dependencies

July 2021

YARA Signatures

rule WindowsInstaller_Silent_InstallProduct_MacroMethod

{

    meta:

        author = "Proofpoint Threat Research"

        date = ""

        hash = "1561ece482c78a2d587b66c8eaf211e806ff438e506fcef8f14ae367db82d9b3; a8fd0a5de66fa39056c0ddf2ec74ccd38b2ede147afa602aba00a3f0b55a88e0"

        reference = "This signature has not been quality controlled in a production environment. Analysts believe that this method is utilized by multiple threat actors in the wild"

   

    strings:

        $doc_header = {D0 CF 11 E0 A1 B1 1A E1}

        $s1 = ".UILevel = 2"

        $s2 = "CreateObject(\"WindowsInstaller.Installer\")"

        $s3 = ".InstallProduct \"http"

   

condition:

        $doc_header at 0 and all of ($s*)

}

新兴威胁特征

    SunSeed Lua Downloader Activity (GET)    SunSeed Downloader Retrieving Binary (set)    SunSeed Download Retrieving Binary