- UID
- 1288
- 积分
- 160
- 精华
- 0
- 沃币
- 6 枚
- 注册时间
- 2023-3-30
|
本帖最后由 kitty 于 2023-3-30 16:25 编辑
西班牙最近成为多个 APT (高级持续威胁) 组织攻击的目标,其中我们可以找到 APT-28。该组织有许多不同的名称,其中一些名称是:Sofacy、Group 74、Pawn Storm、Sednit 和 Strontium。在这里我们将这个组织称为 Fancy Bear。
谁是 Fancy Bear?
Fancy Bear 是一个俄罗斯 APT 组织,据称与俄罗斯军事情报部门 GRU (俄罗斯武装部队高级总参谋部总局) 有关,他们在 2004 年至 2008 年间开始行动,主要从事间谍活动和窃取信息 (可能对俄罗斯政府有用的信息)。
出于这个原因,他们通常攻击与关键基础设施相关的部门,例如:政府、媒体、石油,天然气或国防。他们的目标国家各不相同,但通常倾向于关注北约 (北大西洋公约组织) 的成员国。
一般来说,APT 的特点是高度专业化。就 Fancy Bear 而言,他们利用 Microsoft、Adobe、Internet Explorer 和 Oracle 相关的漏洞。所有这些技术都有一个共同点:受害者经常使用它们。
因此,Fancy Bear 侧重于利用受害者机器上存在的新兴漏洞。事实上,最近发现该组织一直在积极利用 Outlook 中的一个漏洞 (CVE-2023-23397),该漏洞允许他们窃取 NTLM 哈希,后来使用这些哈希在受害者网络上进行横向移动操作。
恶意软件 TTPs
每个 APT 组织的特点是使用一系列特定的策略、技术和程序 (TTP) 以及一组特定的恶意软件和工具。就 Fancy Bear 而言,他们已被确定为使用以下恶意软件:
另一方面,他们在攻击的每个阶段都使用了不同的技术。
这些 TTP 的研究是从威胁狩猎的角度进行的。在我们的案例中,使用 EDR/XDR 技术从 APT 的主要目标系统端点收集信息,从而能够将调查重点放在攻击潜在受害者身上。
然而,利用这项技术,我们无法了解攻击的早期阶段:
因此,本研究重点关注网络杀伤链的最后四个阶段,应该注意的是,EDR/XDR 技术确实具有交付阶段的可见性 (对应于 MITRE ATT&CK 的初始访问策略)。
然而,由于可用的遥测数据因 EDR/XDR 提供商而异,并且由于不可能了解所有初始访问技术,因此在本调查中,这一阶段的技术于 Fancy Bear 组织而言,也是如此,在他们大多数攻击中,人们都看到他们使用网络钓鱼作为初始访问技术 (T1566)。
开发的查询
以下查询旨在在 EDR/XDR 上执行,所有这些都是用伪代码编写的,目的是完全不了解所使用的 EDR 技术,并方便阅读。
以下是 Fancy Bear 针对先前确定的每个策略使用的技术,以及在 EDR/XDR 中检测此行为的可能查询。
TA0002 执行
— 使用 PowerShell 下载脚本或第二阶段恶意软件 (T1059.001)
因此可以使用几个 Powershell cmdlet,在命令行上查找这些 cmdlet 的出现就足够了:
- process = “powershell.exe” and command_line in contains (“DownloadFile”, “Invoke-WebRequest”, “DownloadString”, “iwr”)
复制代码
— 手动执行 LNK 文件 (T1204.001)
EDR/XDR 具有用于执行 LNK 文件的特定事件,对于那些没有这些事件的人,我们可以从文件资源管理器 (explorer.exe) 中寻找 LNK 的打开,然后立即执行可疑进程。这里指出的那些允许执行代码,但我们也可以寻找未签名进程的执行。
- event_type = FILE_OPENED and parent_process = “explorer.exe” and extension = “lnk”
- | join (event_type = PROCESS and process in (“cmd.exe”, “powershell.exe”, “wscript.exe”, “mshta.exe”)) by endpoint_id, process_id
- | where time_difference (t1, t2) < 5 seg
复制代码
TA0003 持久性
— 登录时使用脚本 (T1037.001)
Fancy Bear 组织已在 HKCU\Environment\UserInitMprLogonScript 注册表项中包含脚本,每次用户登录时都会执行存储在此注册表项中的脚本。
- event_type = REGISTRY_SET_VALUE and registry_key contains “\Environment\UserInitMprLogonScript”
复制代码
— 使用启动文件夹 (T1547.001)
他们使用 Startup 文件夹来实现恶意软件的持久性。如果使用 C:\users[username]\appdata\roaming\microsoft\windows\start menu\programs\startup,该恶意软件将在该特定用户登录时运行。如果使用 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup,则每次用户登录时都会运行恶意软件 (无论是谁,都会运行)。
- event_type = FILE_CREATED
- and file_path regex “(?i)^(C:\\Users\\.*\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\|C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp).*”
- and file_name != “desktop.ini”
复制代码
— 使用注册表项 "Office Test" (T1137.002)
使用注册表项 HKEY_CURRENT_USER\Software\Microsoft\Office test\Special\Perf 或 HKEY_LOCAL_MACHINE\Software\Microsoft\Office test\Special\Perf 来存储每次启动 Microsoft Office 应用程序时都会执行的恶意 DLL。默认情况下不创建此注册表项,因此它必须是以前手动创建的,或者必须由攻击者创建。
- event_type in (REGISTRY_CREATE_KEY, REGISTRY_SET_VALUE) and registry_key contains “\Software\Microsoft\Office test\Special\Perf”
复制代码
TA0004 权限提升
在提权的情况下,Fancy Bear 经常利用新出的漏洞。在他们的攻击中,被发现利用了以下漏洞:CVE-2014-4076、CVE-2015-2387、CVE-2015-1701 和 CVE-2017-0263 等。
然而,执行特定查询来定位这些漏洞并不是威胁搜寻的真正目标。避免利用这些漏洞将是漏洞管理部门的责任。由于这些漏洞会随着时间的推移而变化,随着旧漏洞的修补和新漏洞的出现,将我们自己局限于这些漏洞似乎没有意义。
因此,我们决定采用以下方法:查找通常用于执行 UAC (用户帐户控制) 绕过的合法 Windows 二进制文件的使用。
— 用于 UAC 的常用二进制文件绕过生成提升的子进程 (T1548.002)
- event_type = PROCESS_START
- and parent_process in (“WSReset.exe”, “slui.exe”, “fodhelper.exe”, “eventvwr.exe”, “cmstp.exe”, “sethc.exe”)
- and child_process_integrity_level in (“High”, “System”)
复制代码
TA0005 绕过检测
— 使用 certutil (T1140) 进行 Base64 有效载荷解码
已发现该组织在 Base64 中编码其有效负载并将其存储在 TXT 文件中。后来,为了使用它们,他们使用 certutil -decode 对它们进行解码。
- process = “certutil.exe” and command_line regex “(?i).*\-decode.*\.txt.*”
复制代码
— 使用 wevtutil (T1070.001) 清除事件日志
他们使用 wevtutil cl 命令清除某些事件日志。具体来说,他们已经删除了安全和系统注册表。我们已将应用程序注册表添加到搜索中,因为它是另一个通常被攻击者删除的注册表。
- command_line regex “(?i).*wevtutil\s+cl\s+(system|security|application).*”
复制代码
— 使用 rundll32 (T1218.011) 执行恶意 DLL
该组织通常将其 DLL 存储在 C:\Windows\ 或 C:\Users\[用户名]\AppData\ 中。后来,他们用 rundll32 运行这些 DLL。
- command_line regex “(?i).*rundll32\.exe.*(C:\\Windows|C:\\Users\\[\w\s\.]+\\AppData|[A-Z]:)\\[\w\s\.]+\.dll.*”
复制代码
TA0006 访问凭证
— 使用 rundll32 (T1003.001) 的 LSASS 转储
comsvcs.dll 的 Minidump 函数通常用于转储进程的内存,转储 lsass.exe 的内存允许该组访问用户凭据哈希。
- process = “rundll32.exe” and command_line regex “(?i).*comsvcs\.dll, MiniDump.*”
复制代码
— SAM 数据库 (T1003.002) 的转储
可以使用 reg.exe save 执行 SAM (安全帐户管理器) 数据库的转储,这将允许攻击者获取用户凭据的哈希值,此外,SAM 使用 SysKey 加密。
但是,攻击者可以通过转储 SYSTEM 注册表项来获取此密钥。另一方面,SECURITY 密钥也很有趣,因为它包含 LSA 机密。这就是为什么在这个查询中,我们要查找这三个键中任何一个的转储。
- process = “reg.exe” and command_line regex “(?i).* .*save.*(hklm|HKEY_LOCAL_MACHINE)\\(sam|security|system).*”
复制代码
— NTDS.dit (T1003.003) 的转储
C:\Windows\NTDS\Ntds.dit 文件位于域控制器上,包含 Active Directory 信息,包括用户凭据。已看到该组使用 ntdsutil.exe 从该数据库中导出数据。
- process = “reg.exe” and command_line regex “(?i).* .*save.*(hklm|HKEY_LOCAL_MACHINE)\\(sam|security|system).*”
复制代码
TA0007 发现
– 使用 forfiles 查找 PDF、Excel 或 Word 文件 (T1083)
forfiles 命令可用于根据特定模式搜索系统上的特定文件,Fancy Bear 使用此工具搜索可能包含感兴趣信息的 PDF、Word 和 Excel 文件。
- process = “forfiles.exe” and command_line regex “(?i).*\.(xls|xlsx|doc|docx|pdf|ppt|pptx).*”
复制代码
– 从包含敏感信息的目录中读取文件 (T1083、T1518)
此查询是根据 SkinnyBoy 窃取者的行为进行的,这是该组的特征,这个窃取器会打开许多不同文件夹中的文件。因此,我们寻找打开超过 5 个这些敏感子文件夹的未签名文件,这种行为是盗窃者的典型行为。
- event_type = FILE_OPENED
- and parent_process is not signed
- and file_path REGEX “(?i)^(C:\\Users\\.*\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools\\|C:\\Users\\.*\\AppData\\Roaming\\|C:\\Users\\.*\\AppData\\Roaming\\Microsoft\\Windows\\Templates\\|C:\\Users\\.*\\AppData\\Local\\Programs\\|C:\\Program Files( \(x86\))?\\)([a-zA-Z0-9\-\._]+)\\.*”
- | set folder = regextract(file_path,”(?i)^(C:\\Users\\.*\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Administrative Tools\\[a-zA-Z0-9\-\._]+\\|C:\\Users\\.*\\AppData\\Roaming\\[a-zA-Z0-9\-\._]+\\|C:\\Users\\.*\\AppData\\Roaming\\Microsoft\\Windows\\Templates\\[a-zA-Z0-9\-\._]+\\|C:\\Users\\.*\\AppData\\Local\\Programs\\[a-zA-Z0-9\-\._]+\\|C:\\Program Files\\[a-zA-Z0-9\-\._]+|C:\\Program Files \(x86\)\\[a-zA-Z0-9\-\._]+)\\.*”),1)
- | counter = count_distinct(folder) by host, parent_process_pid
- | where counter > 5
复制代码
TA0008 横向移动
– 通过 SMB (T1548.002) 发送恶意文件
他们使用 SMB 在网络上的机器之间发送恶意软件,这允许他们在其中横向移动。请记住,SMB 常用的端口是 445 和 139。因此,我们可以查找通过这些端口发送的可疑文件的创建:
- event_type = NETWORK_INBOUND and local_port in (445,139)
- | join (event_type = FILE_CREATED and file_extension in (“exe”, “dll”, “bat”, “vbs”) by endpoint_id
- | where time_difference (t1, t2) < 5seg
复制代码
– 使用 net 将共享资源映射为磁盘 (T1021.002)
Fancy Bear 使用用户凭据将共享映射为磁盘,使用的命令类似于:net use [A-Z]: \\{share}
- process in (“net.exe”, “net1.exe”) and command_line regex “(?i).*net.*use.*[A-Z]:.*\\\\.*”
复制代码
TA0009 集合
– 受害者机器 (T1113) 上的屏幕截图
为了窃取信息,Fancy Bear 进入目标系统后会截取屏幕截图
有很多工具可以做到这一点,但应该注意的是,可以通过 PowerShell 和 NirCmd 截取屏幕截图。基于此,开发了以下查询:
- event_type = FILE_CREATED and parent_process in (“powershell.exe”, “nircmd.exe”) and file_path regex “.*\.(png|jpeg|jpg|svg|bmp)$”
复制代码
– 将被盗信息存储在 %ALLUSERSPROFILE% (T1074.001) 中的 TMP 文件中
Fancy Bear 将所有被盗的受害者信息保存在 C:\ProgramData\ 的临时文件中。随后,它将执行此信息的过滤。
- event_type = FILE_CREATED and file_path regex “(?i)^C:\\ProgramData\\[\w\s\_]+\.tmp$”
复制代码
TA0010 渗透
– 将文件分成小于 1MB 的碎片 (T1030)
在泄露信息之前,Fancy Bear 将收集到的信息文件分成小于 1MB 的碎片。
- event_type = FILE_CREATED and file_path regex “(?i)^[A-Z]:(\\Windows\\|\\Users\\[\w\s\.]+\\AppData\\|\\ProgramData\\|\\)[\w\s\.\_]+\.\w+” and file_size < 1MB
- | count as created_files by parent_pid, endpoint_id
- | where created files > 5
复制代码
– 使用 Google Drive 的数据泄露 (T1567.002)
人们看到 Fancy Bear 使用 Google Drive 作为云存储来发送以前收集的信息。为了检测这种可能的渗漏,我们可以基于体积研究:寻找与我们公司通常模式的偏差。
以下查询允许我们制作一个图表,表示一个月内每天发送到 Google 云端硬盘的字节数。如果我们发现某天发送了大量字节,则可能是一次信息泄露尝试。
- event_type = NETWORK_CONNECTION and URL contains any (“drive.google.com”, “www.googleapis.com”)
- | sum (bytes_uploaded) by date
复制代码
TA0011 命令与控制
– 使用 Google Drive 作为命令和控制 (C2) 服务器 (T1102.002)
为了在受害机器上运行从他们的 C2 服务器发送的命令,他们使用 Google Drive API。每 20 分钟,安装在受害者身上的恶意软件就会在 Google Drive (cmd_{victim ID}) 中查找具有特定名称的文件,其中将包含要执行的命令。通过此查询,我们寻找可疑进程对此 API 的访问。
- event_type = NETWORK_CONNECTION
- and URL contains “www.googleapis.com/upload/drive”
- and parent_process not in (“msedge.exe”, “chrome.exe”, “firefox.exe”, “opera.exe”, “iexplore.exe”, “GoogleUpdate.exe”, “OUTLOOK.EXE”)
复制代码
这篇文章是 Ana Junquera Méndez 在 RootedCON 2023 上发表的 Fancy Bears and Where To Find Them 演讲的摘要。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
查看全部评分
|