通过结合正则表达式、Whois 记录和域名注册商来跟踪 APT SideWinder 域名
威胁行为者通常利用基于域的基础设施来托管和促进恶意操作。当他们部署这些新域时,常常会无意间留下某些特征或行为模式。这些模式可以被用来创建签名,从而将当前的恶意活动与过去已知的活动关联起来。
开发这些签名可能相当困难,并且很少有关于如何执行这些签名的公开文档。今天,我们将研究在 X/Twitter 上共享的一个域指示器,并展示如何分析它,以发现与另外 36 个域相关的模式。
我们的最终分析将审查这些域,并高度可信地将它们与 APT SideWinder 公开报告联系起来。
概述
在开始之前,这里是我们将在本博客中介绍的内容的摘要。
- 从 Twitter/X 获取初步情报(域名)
- 分析域名以找到一个关键点
- 围绕正则表达式、日期和域名注册商
- 调整关联分析以识别其他域(拓线)
- 使用 CyberChef 和 JPATH 解析数据输出
- 使用 WHOIS 记录丰富输出
- 在子域中建立模式
- 获取公开情报报告以协助归因
- 使用公开报告将活动与 APT SideWinder 联系起来
初始情报
我们的初步调查始于DocGuard在 X 的最新帖子中 分享的一个单个域名指标。
注意域名docs.mofa-services-server[.]top
并考虑到 MOFA 是“外交部”的首字母缩写。这在后面会变得很重要。
DocGuard在 X 的帖子 |
我们的初始指标是一个域名(初始域名),因此我们可以从基于域名的分析开始,比如被动 DNS 查询。
这里的目的是获取域名已解析的 IP 地址的历史记录。我们希望使用这些 IP 地址来查找与同一 IP 基础设施关联的其他域名。
在初始域名上进行拓线
在 SilentPush 中运行被动DNS查找,显示该域名当前解析为 IP 地址 188.114.97[.]3
。该 IP 由 CloudFlare 托管在 ASN 13335
。
CloudFlare是一家商业性质的、"合法"的网络基础设施反向代理。在威胁调查环境中,CloudFlare有效地作为匿名化基础设施的手段,因为攻击者的“真实”服务器被隐藏在CloudFlare代理之后。
由于 CloudFlare 代理经常在成千上万个不相关的客户之间共享。这使得分析过程变得复杂,因此经常被恶意行为者利用。
我们可以尝试通过执行被动 DNS 查找 188.114.97[.]3
来查找相关的域名,这将显示任何解析到相同地址的域名。
以下是 188.114.97[.]3
的被动 DNS 查询,显示了大量无关的域名。
我们上面的截图显示有801666666
个域名解析到了同一个地址。
如前所述,这么多相关域名是由于使用了CloudFlare。我们可以通过应用额外的过滤器来缩小结果范围,但结果数量仍可能在上万以上。因此,我们尝试对父域名进行类似的关联分析,以确定是否有更容易识别的模式。
由于父域名很可能由同一个实体拥有和控制,它有时可以作为一个更容易和更有用的关联点。
在我们的父域上执行关联分析
由于针对初始子域 docs
进行的操作结果过多,我们对父域 mofa-services-server[.]top
进行了类似的查找。
父域名并不总是像子域名那样受到同样的保护,由于它们通常由同一方控制,因此它们作为一个更有帮助的关联点。
mofa-services-server[.]top
的父域名只有一个已知的 IP 地址 91.195.240[.]123
,托管在 SEDO 上,ASN 为 47846
,首次出现在 2024-03-20
。
对这个新 IP 91.195.240[.]123
进行被动 DNS 查找将帮助我们确定是否有共享相同地址的任何域。
执行此查找将识别 770427
个相关域。这是一个庞大的数字,但明显少于原始 CloudFlare IP 的数量。
由于这仍然是一个庞大的数字,我们可以利用正则表达式来应用额外的过滤以缩小我们的结果范围。如果操作正确,这可以显著减少相关域名的数量,使其变得可管理。
在这种情况下,正则表达式将把 770427 个结果减少到只有 6 个
构建高级威胁情报查询
高级查询允许我们应用特定的过滤器,这将大大减少结果数量。在执行此操作之前,我们需要确定要过滤的具体内容。
考虑到我们已经了解到关于 mofa-services-server[.]top 的以下信息
- 它托管在
91.195.240[.]123
- 它使用了一个
.top
顶级域名 - 域名包含三个单词,由连字符分隔
- 该域名首次观察到于
2024-03-20
高级查询允许我们通过日期过滤器、网络过滤器和正则表达式提供此信息。以下参数说明了它们如何在SilentPush中应用。
-
91.195.240[.]123
可以应用为qanswer
过滤器。 - TLD(
.top
)可以应用为\.top$
到domain_regex
的结尾 - 三个单词,用连字符分隔,可以作为
domain_regex
的开头^[a-z]{1,}\-[a-z]{1,}\-[a-z]{1,}
- 第一个观察日期可以应用为
first_seen_after=2024-03-18
和first_seen_before=2024-03-22
,这允许在两侧各有+- 2 天的缓冲。
此处使用的完整正则表达式是^[a-z]{1,}\-[a-z]{1,}\-[a-z]{1,}\.top$
,如果您使用 SilentPush,则可以在高级查询生成器 -> PADNS 查询 -> 实时未经批准资产查找中找到高级查询
下面我们可以看到应用了筛选器后的效果。
应用这些过滤器将结果减少到仅 7
个域名。这是一个很大的数字,明显低于最初与相同 IP 91.195.240[.]123
关联的 770427
。这意味着我们的过滤器能够剔除 770420
个结果。
7 个结果领域包含了反复出现的“PK”(巴基斯坦)主题和政府机构常见的首字母缩写。
在我们最初的mofa-services-server[.]top指标中观察到了政府主题,这是通过外交部(Ministry of Foreign Affairs)得出的。
下面我们可以看到应用过滤器之后的样子。
使用 CyberChef 和 JPATH 解析 JSON 数据
结果以 JSON 格式返回,包含大量信息。我们目前只需要结果域(domain),因此可以使用 Python 或 CyberChef 提取域字段。
为了简化起见,我们利用 CyberChef 和 JPath 表达式来过滤 JSON 输出,以返回 7 个结果域。
我们通过一个 JPath 表达式 response.records[*].query
实现了这一点
(如果您对 JPath 不熟悉,这里有一个很好的教程可以帮助您理解它)
下图可以清晰地看到生成的 7 个域名。
这7个域名有一个反复出现的主题,即与巴基斯坦和政府机构相关。我们还可以观察到一个反复出现的IT支持服务的主题,通过对更新、服务器、下载和服务的提及来体现。
(稍后我们将了解 APT SideWinder 的 TTP 原理)
- PK——巴基斯坦的缩写
- NITB-国家信息技术委员会
- MOFA – 外交部
- Goverment - 政府(Government)拼写错误
- 内阁——政府的决策机构
这些相似之处表明这些域名是相关的,而且我们发现了一些问题,尤其是考虑到它们共享相同的 IP 地址,并且注册日期接近(这是我们的过滤器所要求的)。
到目前为止,这些域名共享相同的 IP 基础设施、相同的命名方案和相似的注册日期。我们可以在此基础上建立进一步的共性,例如域名注册商、子域名和相关文件。
利用 WHOIS 记录丰富域名
我们可以使用一种方法来进一步建立共同点,即对域名执行 WHOIS 查询。WHOIS 查询将提供有关谁注册了域名以及在哪个域名注册商处注册的信息。
如果在多个域名中可以看到相同的域名注册商和注册信息,则表明这些域名是相关的。
许多服务(例如WHOIS)可以执行这些查询,但仅限于单个搜索。我们将利用 SilentPush 进行查询,因为它支持批量搜索并显著加快我们的流程。
如果您使用 SilentPush,则可以使用高级查询生成器 -> 丰富查询 -> 域批量执行批量查找
导出生成的 JSON 并使用 CyberChef 进行解析后,我们可以看到 6/7 的域名都是在 上注册的,NameSilo
而且2024-03-19
注册时间彼此相差无几。
其中一个结果域名的luxury-get-away[.]top
命名主题和注册时间有所不同。出于本博客的目的,我们将在后续分析中忽略此域名。
我们现在有 6 个相关域,其中 5 个是新的,是通过关联分析发现的。
考虑到我们的分析建立了这 6 个域名之间的共性。
- 政府实体和巴基斯坦的同一主题
- 相同的命名模式(3 个单词用连字符分隔)
- 相同的顶级域名
.top
- 同一注册提供商
NameSilo
- 相同的 IP 地址
91.195.240[.]123
(因此,相同的 ASN47846
) - 和之间的注册日期
2024-03-19
和注册时间相同04:0904:11
关联分析其他域
有了 6 个领域以及它们之间的 6 个共同点,我们就有了一个坚实的基础来开始执行额外的关联分析。
我们通过对查询进行以下调整来扩大搜索范围。
- 放宽 IP 要求,允许任何 IP 托管在
SEDO/47846
, - 要求正则表达式中包含 NITB、PK 或 Pakistan 关键字
- 将日期要求放宽至之后的任何时间
2024-03-01
。 - 添加注册商要求
NameSilo
- 放宽 TLD 要求(任何 TLD,不仅仅是
.top
)
在 SilentPush 中用作高级搜索,这转化为
- 巴基斯坦关键词,
domain_regex=^([^\.]{1,}\-|)(nitb|pk|paki(stan|))(\-[^\.]{1,}|)\.[a-z]{1,}$
- 在 NameSilo 注册
registrar=NameSilo
- 2024 年 3 月后注册
whois_date_after=2024-03-01
- 托管在
SEDO/47846
:asnum=47846
- 托管在任何顶级域名上
\.[a-z{1,}$
(位于我们的 domain_regex 的末尾)
在 SilentPush 中,这是一个高级域搜索,可在“高级查询生成器”->“域查询”->“搜索”下找到。
此外,我们还要特别感谢为本部分提供帮助的 SilentPush 研究团队。
运行搜索并过滤 JSON 输出后,我们获得了五个结果。
其中两个结果在我们的初始搜索中不存在。这意味着我们现在共有 8 个域与我们的初始指标相关。
这两个新域名的出现在很大程度上要归功于我们对顶级域要求的放宽。
新域名对应
- Govt-pk[.]com
- Moma-gov-pk[.]org
我们现在有三个额外的关键词可以再次扩大我们的搜索。这些关键词对应 gov,govt 和 moma(海事部)。
我们接着进行了另一个高级域名搜索,与之前相同,但现在使用了新的正则表达式。
- 政府主题在域名中,
domain_regex=^([^\.]{1,}\-|)(gov(t|erment|)|moma)(-[^\.]{1,}|)\.[a-z]{1,}$
- 使用 NameSilo 注册
registrar=NameSilo
- 2024 年 3 月后注册
whois_date_after=2024-03-01
- 托管在
SEDO/47846 , asnum=47846
- 托管在任何顶级域名
\.[a-z{1,}$
将之前的查询更新为这个正则表达式返回了 11 个结果。这些结果延续了政府实体的主题,并提到
- NCSC(可能是国家网络安全中心)
- 人权部(Ministry of Human Rights)
- 国内税务局(Internal Revenue Service)
- PPY(可能是巴基斯坦爱国青年)
结果显示了一个新的重复命名主题 govpk 和 gov-pk ,因此我们再次修改了正则表达式以针对这些域主题。
- Gov/Gov-pk 关键词在域名中,
domain_regex=^([^\.]{1,}\-|)(gov\-pk|govpk)(-[^\.]{1,}|)\.[a-z]{1,}$
- 使用 NameSilo 注册
registrar=NameSilo
- 2024 年 3 月后注册
whois_date_after=2024-03-01
- 托管在
SEDO/47846 , asnum=47846
- 托管在任何顶级域
\.[a-z{1,}$
(domain_regex 结尾)
执行这个新查询返回了 3 个结果,其中有两个是新的,并且包含下面列出的政府实体。
- 巴基斯坦海军
- DGPS(港口和航运总局)
到目前为止,我们所有的搜索都需要将域名与 ASN 号码 SEDO/47846 相关联。
我们用来识别额外域的一种方法是放宽 ASN 要求,同时保持其他参数不变。
我们对所有的搜索都重复了这个过程,特别是其中一个带来了新的结果。
- 包含 gov、gov-pk 或 govpk 和连字符的任何域名
domain_regex =^([^\.]{1,}\-|)(gov\-pk|govpk)(-[^\.]{1,}|)\.[a-z]{1,}$
- 托管在任何顶级域名上(我们正则表达式中的结尾
\.[a-z]{1,}$
) - 在任何自治系统上托管(删除
asnum
参数) - 注册
NameSilo
- 注册成功后
2024-03-01
使用新参数执行搜索得到了 9 个域名,其中多个是新的,并且延续了冒充巴基斯坦政府实体的主题。
- EP - 快递邮件跟踪系统
- NADRA——国家数据库和注册机构
- PTA——巴基斯坦电信管理局
我们可以继续使用放松和调整参数的相同方式来识别额外的域名。然而,为了避免这篇文章变得太长(存在无限可能的关联分析),我们决定在这里结束关联分析部分,并继续进行我们当前识别的域名。
我们额外的关联分析结果将包含在本帖子的最终 IOC 部分中
在子域中建立模式
回想一下,最初由 DocGuard 共享的域名在 docs.mofa-services-server[.]top 的 docs 子域下进行了主要的恶意活动
我们想要查看我们的新域名是否有任何子域名,这些子域名可能可以建立进一步的模式,将活动与初始域名联系起来。
回忆一下 DocGuard 共享的 docs.mofa-services-server[.]top 域。 docs 子域名是在 2024-05-01 首次出现的,大约在父域名首次注册后 6 周。
如果您正在使用 SilentPush,您可以在高级查询构建器 -> PADNS 查询 -> 子域记录下找到该搜索
我们对我们的 documents-server-pk[.]top 域名进行了相同的搜索,发现了一个类似的模式,即在父域名首次出现大约 6 周后创建了一个 pmo 子域名。
有一种理论认为,威胁行为者“潜伏”在父域上,然后稍后通过子域执行恶意活动。这可能是为了避免基于域的过滤,该过滤会阻止或警告最近注册的基础设施(<30 天)。
重复子域名搜索,共返回 15 个子域名,这些子域名以政府主题和新的政府实体为特色
- MOD(国防部)
- ECP (巴基斯坦选举委员会)
- CTD(反恐部)
- LGCD(地方政府和社区发展)
- PUBAD(公共行政、内政和省议会部)
我们可以在下面的屏幕截图中看到这些主题。
值得一提的是,我们发现一些域名针对的是斯里兰卡 (lk) 和尼泊尔,并且大多数子域名都存在于 下gov-pk[.]com
,这是对合法域名的冒充gov[.]pk
我们还可以观察到,这pubad.gov.lk.govt-pk[.]com
是对合法斯里兰卡域名的冒充pubad.gov[.]lk
大多数已识别的父域都没有关联的子域。我们认为这可能是由于攻击者在首次创建父域后使用了“等待”策略。
截至撰写本文时,距离发现第一个恶意子域名仅过去 6 天。因此,我们认为其余子域名尚未创建。
将域名与 APT SideWinder 关联
在撰写本文时,我们找不到有关我们新发现的 37 个域名的任何公开报告。
然而,我们发现了BlackBerry和Group-IB的两份非常有趣的报告,其中详细介绍了印度高级持续性威胁 (APT) SideWinder 在 2023 年的活动。该威胁行为者以针对巴基斯坦、尼泊尔和斯里兰卡而闻名。(所有这些都与我们迄今为止观察到的活动一致)
两份报告均提供了有关 SideWinder 组织的以下详细信息和 TTP。
- 主要针对印度周边的南亚国家
- 大量使用冒充政府实体的域名
- 重点针对军事和政府实体
- 通过政府主题的武器化文件大量使用初始访问
域名相似性、政府实体和南亚国家的主要目标
blackberry报告包含一份已知针对南亚国家的 SideWinder 域名列表。
以下域名是从 BlackBerry 报告中提取出来的,与我们在分析过程中发现的域名非常相似。请注意大量使用...
- 域名中的连字符
- 政府实体的反复出现的主题
- 巴基斯坦和斯里兰卡的反复出现的主题
- 大量使用子域名
虽然我们将其归为一个标题,但此屏幕截图显示了我们所识别的域与 APT SideWinder 已知的活动之间的 4 个独特共同点。
Group-IB的第二份报告显示了与我们分析中发现的域具有显著相似的域。
关于通过武器化文档进行初始访问的公开报告
Group-IB和BlackBerry的报告详细介绍了SideWinder的活动,其中初始访问是通过带有政府实体主题的武器化文档实现的。
此外,两份报告都详细描述了一个恶意文档,标题为《GUIDELINES FOR BEACON JOURNAL – 2023 PAKISTAN NAVY WAR COLLEGE (PNWC).doc》
。
报告指出,该文档利用了一个远程模板注入漏洞CVE-2017-0199
来下载一个名为file.rtf
的远程文件,该文件包含混淆的Javascript代码。
下面可以看到该文档的视觉概览(取自BlackBerry和Group-IB)。
BlackBerry文章详细介绍了另一份以巴基斯坦政府为主题的 SideWinder 文档以及一封整体制作精良、看上去很专业的电子邮件。
我们新发现的域中的武器化文件
paknavy-govpk[.]info
查看我们在 VirusTotal 上发现的一个域名,我们可以看到一个.docx
名为MoITT_federalemp[.]docx2024-04-29
该文件链接到我们的新域名,具有CVE-2017-0199
与 BlackBerry 和 Group-IB 详述的相同漏洞
通过在 Hybrid-Analysis 上搜索文件哈希 7dca552bc38f54716c80eb2c4f1f35cf6e5b12a78a5cec8bf335453c1b433cfd
,我们注意到文件中包含巴基斯坦政府的主题,并且与公开报道的文件具有整体相似的结构。
以下是与我们域 paknavy-govpk[.]info
相关联的文档
巴基斯坦政府主题、武器化文件和相同漏洞的使用CVE-2017-0199
强烈表明该活动与公开的 SideWinder 报告有关。
武器化文件的修改
我们在剩余的域中没有发现任何其他利用武器化文档的情况CVE-2017-0199
。不过,我们确实观察到链接到受密码保护的 .zip 文件的 PDF 发生了变化。
这代表了具体策略的改变,但武器化文件的总体策略仍在延续。
初始域名docs.mofa-services-server[.]top
与以下文档相关(DocGuard 在其初始帖子中分享),其中包含受密码保护的 .zip 文件,密码为pmo@letter
我们发现的一个子域名pmo.documents-server-pk[.]top
与链接到 .zip 的类似 PDF 文件相关。
通过从 VirusTotal 获取哈希值并在Hybrid-Analysis上进行搜索,我们看到了类似的以政府实体为主题的网络钓鱼,其中带有密码保护的 .zip 文件。
文档的结尾显示了一个提示,要下载一个受密码保护的文件。
密码保护的.zip文件(很可能含有恶意软件)而不是·CVE-2017-0199·的存在,代表了 SideWinder 活动和技术的轻微变化。
总体战术依然延续了文件武器化,但具体战术CVE-2017-0199
改为使用密码保护的zip文件。
SideWinder 使用 NameSilo
BlackBerry 和 Group-IB 共享的旧 SideWinder 域名子集以 NameSilo 为域名注册商。
许多共享域没有采用 NameSilo,但这表明 SideWinder 熟悉 NameSilo 并将其用于其域基础设施的子集。
由于我们今天介绍的所有域名都使用了 NameSilo,这表明新域名与已公开归属 SideWinder 的域名之间存在较弱但仍然有用的联系。
结论
我们现在已经使用威胁情报工具分析了单个域名指标,并确定了 37 个与已知 SideWinder 活动密切相关的新域名。我们分析了 IP 地址、域名注册商、注册日期、相关文件和子域名的历史记录。大胆假设,小心求证是威胁狩猎的不二法门。
域IOC
nitb-update-services[.]top
services-pk-users[.]top
mofa-services-server[.]top
goverment-pk-update[.]top
documents-server-pk[.]top
Cabinet-download-server[.]top
amazonas-gov[.]co
cnsa-gov[.]com
dgps-govpk[.]co
dgps-govpk[.]com
ep-gov-pk[.]christmas
ep-gov-pk[.]icu
gov-govpk[.]info
Govt-pk[.]com
justice-gov[.]info
mohre-gov[.]info
moma-gov-pk[.]org
my-gov-confirm[.]org
ncsc-gov[.]com
paknavy-govpk[.]info
Update-govpk[.]co
paknavy-govpk[.]com
ctd[.]govt-pk[.]com
docs[.]mofa-services-server[.]top
ecp[.]govt-pk[.]com
embajadadenepal[.]es[.]govt-pk[.]com
investinnepal[.]gov[.]np[.]govt-pk[.]com
lgcd[.]punjab[.]gov[.]pk[.]govt-pk[.]com
mindef[.]gov[.]pk[.]govt-pk[.]com
mod[.]gov[.]bd[.]govt-pk[.]com
mod[.]gov[.]np[.]govt-pk[.]com
mofa[.]gov[.]bd[.]govt-pk[.]com
mofa[.]gov[.]np[.]govt-pk[.]com
pmo[.]documents-server-pk[.]top
prisons[.]punjab[.]govt-pk[.]com
pubad[.]gov[.]lk[.]govt-pk[.]com
sparrso[.]gov[.]bd[.]govt-pk[.]com
mail-govpk[.]com
nadra-govpk[.]com
pta-govpk[.]com
newmofa[.]org
update-govpk[.]co
mod-gov-pk[.]live
pakistan-mofa[.]cloud
s3-network-pakistan[.]online
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-