Seth GoodwinSalim Bitam

NETWIRE 动态配置提取

一个基于仿真的 NETWIRE 动态配置提取工具。

17 分钟阅读安全研究
NETWIRE Dynamic Configuration Extraction

要点

  • NETWIRE 在过去一年中的流行程度有所上升
  • Elastic 安全实验室创建了一个提取器,用于从 NETWIRE 文件和内存转储中提取配置数据,目标是恶意软件用于提取其加密数据的功能
  • NETWIRE 提取器可免费下载

要下载 NETWIRE 配置提取器,请查看我们关于该工具的帖子

序言

NETWIRE 是一种远程访问工具 (RAT),至少从 2014 年开始使用。它是一种公开可用的商品恶意软件,并且已被观察到被经济动机和民族国家行为者使用。

在 2022 年下半年,我们注意到在我们的遥测数据中,NETWIRE 的使用率有所上升。这促使 Elastic 安全实验室团队开发了一个配置提取器,以协助安全社区收集配置中的原子指标。使用此提取器将支持威胁跟踪并提高检测、预防和响应时间。

提取器

NETWIRE RAT 使用 RC4 对称加密算法来保护其配置,该配置在 .data 部分中加密,同时还有 16 字节长的 RC4 解密密钥。

在逆向分析我们的样本时,分析师注意到对于 crypto::rc4_init_sboxcrypto::rc4_decrypt 函数,第二个参数(下图中的#2)始终是所需加密配置值的内存地址,而第三个参数 (#3) 是在调用之前写入内存堆栈的立即值,它表示加密字符串的大小。

还注意到函数调用是一个接一个的。这对于让我们构建提取器以按顺序查找这些函数非常重要。

考虑到$key(来自上图),我们创建了 YARA 规则来识别密钥和加密配置值的位置。

![识别密钥和加密配置的 YARA 规则部分](/assets/images/netwire-dynamic-configuration-extraction/image5.jpg

有了这些信息,我们就可以使用 Capstone

  1. 使用 YARA 定位负责解密配置的函数。

  2. 使用 Capstone 反汇编该函数。

  3. 提取 RC4 密钥地址和加密的配置字段地址。

  4. 提取配置字段的大小。

  5. RC4 解密加密字段并重建配置。

![RC4 解密配置](/assets/images/netwire-dynamic-configuration-extraction/image5.jpg

一旦我们重新创建了配置,我们就可以使用提取器来提取 NETWIRE 使用的几个参数,以及一些基本的文件特征

  • Active Setup 密钥Active Setup 注册表项,以实现持久性。
  • C2 IP 列表:命令和控制 (C2) 服务器域或 IP 地址的列表。
  • 主机 ID:分配给受感染计算机的唯一标识符。
  • 安装路径:恶意软件将安装到的位置。
  • 键盘记录器日志目录:将存储键盘记录日志文件的位置。
  • 互斥体:互斥体名称,用于创建同步对象,以确保机器上仅运行一个样本实例。
  • 密码:用于生成 AES 密钥的静态密码,该密钥用于加密恶意软件和 C2 服务器之间的通信。
  • 运行注册表项条目运行注册表中用于持久性的条目名称。
  • 睡眠时间(秒):恶意软件休眠的时间。

配置提取器接受四个参数

  • -f:指定单个 NETWIRE 样本
  • -d:指定 NETWIRE 样本的目录
  • -o:以 JSON 格式将配置写入指定的文件
  • --all-config:打印未解析的原始解密配置

分析

我们已使用此提取器检查了过去 180 天内的一组样本,以提取指标以进行进一步的丰富和分析。

我们最初收集的一批样本是可执行文件和内存转储的混合体。提取器只能处理未映射的文件,因此已经映射的转储通过 pe_unmapper 运行。

当从内存中提取有效负载时,我们获得的是它的内存映射版本。这意味着“原始地址”“原始大小”可能与正确部分的数据未正确对齐。要正确对齐 PE 文件,有必要调整指向原始地址的指针,使其与每个部分的虚拟地址匹配。

现在,我们可以使用 Poetry 对我们的未映射二进制文件目录运行配置提取器

**poetry lock**
**poetry install**
**poetry shell**
**netwire-config-extractor -d sample-dir/ -o output.ndjson**

然后可以将此文件 output.ndjson 上传到 Kibana 以进行进一步分析。

查看 Elastic Container 项目,以快速启动 Elastic Stack 并开始分析结构化的安全相关数据。

下次遇到 NETWIRE 样本时,请通过我们的配置提取器运行它,以提取其他指标,从而帮助您完成分析之旅或更快地开始修复。

检测

YARA

这些 YARA 规则可用于检测和识别 NETWIRE RAT。

rule Windows_Trojan_Netwire_1 {
   meta:
       author = "Elastic Security"
       os = "Windows"
       arch = "x86"
       category_type = "Trojan"
       family = "Netwire"
       threat_name = "Windows.Trojan.Netwire"
   strings:
       $a = { 0F B6 74 0C 10 89 CF 29 C7 F7 C6 DF 00 00 00 74 09 41 89 F3 88 5C }
   condition:
       all of them
}
rule Windows_Trojan_Netwire_2 {
   meta:
       author = "Elastic Security"
       os = "Windows"
       arch = "x86"
       category_type = "Trojan"
       family = "Netwire"
       threat_name = "Windows.Trojan.Netwire"
   strings:
       $a1 = "[%.2d/%.2d/%d %.2d:%.2d:%.2d]" fullword
       $a2 = "\\Login Data"
       $a3 = "SOFTWARE\\NetWire" fullword
   condition:
       2 of them
}
rule Windows_Trojan_Netwire_3 {
   meta:
       author = "Elastic Security"
       os = "Windows"
       arch = "x86"
       category_type = "Trojan"
       family = "Netwire"
       threat_name = "Windows.Trojan.Netwire"
   strings:
       $a = { C9 0F 44 C8 D0 EB 8A 44 24 12 0F B7 C9 75 D1 32 C0 B3 01 8B CE 88 44 }
   condition:
       all of them
}
rule Windows_Trojan_Netwire_4 {
   meta:
       author = "Elastic Security"
       os = "Windows"
       arch = "x86"
       category_type = "Trojan"
       family = "Netwire"
       threat_name = "Windows.Trojan.Netwire"
   strings:
       $a1 = "http://%s%ComSpec" ascii fullword
       $a2 = "%c%.8x%s" ascii fullword
       $a3 = "%6\\6Z65dlNh\\YlS.dfd" ascii fullword
       $a4 = "GET %s HTTP/1.1" ascii fullword
       $a5 = "R-W65: %6:%S" ascii fullword
       $a6 = "PTLLjPq %6:%S -qq9/G.y" ascii fullword
   condition:
       4 of them
}

指标

所有指标也可以 下载,以 ECS 和 STIX 格式打包在一个 zip 捆绑包中。

本研究讨论了以下指标。

指标类型注意
139.28.38[.]235ipv4-addrNETWIRE RAT C2
149.102.132[.]253ipv4-addrNETWIRE RAT C2
184.75.221[.]115ipv4-addrNETWIRE RAT C2
185.136.165[.]182ipv4-addrNETWIRE RAT C2
185.140.53[.]139ipv4-addrNETWIRE RAT C2
185.140.53[.]144ipv4-addrNETWIRE RAT C2
185.140.53[.]154ipv4-addrNETWIRE RAT C2
185.140.53[.]61ipv4-addrNETWIRE RAT C2
185.216.71[.]251ipv4-addrNETWIRE RAT C2
194.36.111[.]59ipv4-addrNETWIRE RAT C2
194.5.98[.]126ipv4-addrNETWIRE RAT C2
194.5.98[.]178ipv4-addrNETWIRE RAT C2
194.5.98[.]188ipv4-addrNETWIRE RAT C2
194.5.98[.]65ipv4-addrNETWIRE RAT C2
212.193.29[.]37ipv4-addrNETWIRE RAT C2
212.193.30[.]230ipv4-addrNETWIRE RAT C2
213.152.161[.]249ipv4-addrNETWIRE RAT C2
217.151.98[.]163ipv4-addrNETWIRE RAT C2
23.105.131[.]166ipv4-addrNETWIRE RAT C2
37.0.14[.]199ipv4-addrNETWIRE RAT C2
37.0.14[.]203ipv4-addrNETWIRE RAT C2
37.0.14[.]206ipv4-addrNETWIRE RAT C2
37.0.14[.]208ipv4-addrNETWIRE RAT C2
37.0.14[.]214ipv4-addrNETWIRE RAT C2
37.120.217[.]243ipv4-addrNETWIRE RAT C2
51.161.104[.]138ipv4-addrNETWIRE RAT C2
54.145.6[.]146ipv4-addrNETWIRE RAT C2
80.66.64[.]136ipv4-addrNETWIRE RAT C2
85.209.134[.]105ipv4-addrNETWIRE RAT C2
85.31.46[.]78ipv4-addrNETWIRE RAT C2
94.156.35[.]40ipv4-addrNETWIRE RAT C2
20220627.duckdns[.]org域名NETWIRE RAT C2
admin96.hopto[.]org域名NETWIRE RAT C2
alice2019.myftp[.]biz域名NETWIRE RAT C2
asorock1111.ddns[.]net域名NETWIRE RAT C2
banqueislamik.ddrive[.]online域名NETWIRE RAT C2
betterday.duckdns[.]org域名NETWIRE RAT C2
bigman2021.duckdns[.]org域名NETWIRE RAT C2
blazeblaze.ddns[.]net域名NETWIRE RAT C2
chongmei33.myddns[.]rocks域名NETWIRE RAT C2
clients.enigmasolutions[.]xyz域名NETWIRE RAT C2
gracedynu.gleeze[.]com域名NETWIRE RAT C2
ingobea.hopto[.]org域名NETWIRE RAT C2
iphanyi.edns[.]biz域名NETWIRE RAT C2
iphy.strangled[.]net域名NETWIRE RAT C2
kimlee11.duckdns[.]org域名NETWIRE RAT C2
loffgghh.duckdns[.]org域名NETWIRE RAT C2
megaton.gleeze[.]com域名NETWIRE RAT C2
moran101.duckdns[.]org域名NETWIRE RAT C2
netuwaya.servecounterstrike[.]com域名NETWIRE RAT C2
nowancenorly.ddns[.]net域名NETWIRE RAT C2
podzeye.duckdns[.]org域名NETWIRE RAT C2
podzeye2.duckdns[.]org域名NETWIRE RAT C2
recoveryonpoint.duckdns[.]org域名NETWIRE RAT C2
redlinea[.]top域名NETWIRE RAT C2
roller.duckdns[.]org域名NETWIRE RAT C2
rozayleekimishere.duckdns[.]org域名NETWIRE RAT C2
sani990.duckdns[.]org域名NETWIRE RAT C2
saturdaylivecheckthisout.duckdns[.]org域名NETWIRE RAT C2
uhie.hopto[.]org域名NETWIRE RAT C2
uhie2020.duckdns[.]org域名NETWIRE RAT C2
wcbradley.duckdns[.]org域名NETWIRE RAT C2
xman2.duckdns[.]org域名NETWIRE RAT C2
zonedx.ddns[.]net域名NETWIRE RAT C2