要点
- NETWIRE 在过去一年中的流行程度有所上升
- Elastic 安全实验室创建了一个提取器,用于从 NETWIRE 文件和内存转储中提取配置数据,目标是恶意软件用于提取其加密数据的功能
- NETWIRE 提取器可免费下载
要下载 NETWIRE 配置提取器,请查看我们关于该工具的帖子
序言
NETWIRE 是一种远程访问工具 (RAT),至少从 2014 年开始使用。它是一种公开可用的商品恶意软件,并且已被观察到被经济动机和民族国家行为者使用。
在 2022 年下半年,我们注意到在我们的遥测数据中,NETWIRE 的使用率有所上升。这促使 Elastic 安全实验室团队开发了一个配置提取器,以协助安全社区收集配置中的原子指标。使用此提取器将支持威胁跟踪并提高检测、预防和响应时间。
提取器
NETWIRE RAT 使用 RC4 对称加密算法来保护其配置,该配置在 .data 部分中加密,同时还有 16 字节长的 RC4 解密密钥。
在逆向分析我们的样本时,分析师注意到对于 crypto::rc4_init_sbox 和 crypto::rc4_decrypt 函数,第二个参数(下图中的#2)始终是所需加密配置值的内存地址,而第三个参数 (#3) 是在调用之前写入内存堆栈的立即值,它表示加密字符串的大小。
还注意到函数调用是一个接一个的。这对于让我们构建提取器以按顺序查找这些函数非常重要。
考虑到$key(来自上图),我们创建了 YARA 规则来识别密钥和加密配置值的位置。
![识别密钥和加密配置的 YARA 规则部分](/assets/images/netwire-dynamic-configuration-extraction/image5.jpg
有了这些信息,我们就可以使用 Capstone 来
-
使用 YARA 定位负责解密配置的函数。
-
使用 Capstone 反汇编该函数。
-
提取 RC4 密钥地址和加密的配置字段地址。
-
提取配置字段的大小。
-
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[.]235 | ipv4-addr | NETWIRE RAT C2 |
149.102.132[.]253 | ipv4-addr | NETWIRE RAT C2 |
184.75.221[.]115 | ipv4-addr | NETWIRE RAT C2 |
185.136.165[.]182 | ipv4-addr | NETWIRE RAT C2 |
185.140.53[.]139 | ipv4-addr | NETWIRE RAT C2 |
185.140.53[.]144 | ipv4-addr | NETWIRE RAT C2 |
185.140.53[.]154 | ipv4-addr | NETWIRE RAT C2 |
185.140.53[.]61 | ipv4-addr | NETWIRE RAT C2 |
185.216.71[.]251 | ipv4-addr | NETWIRE RAT C2 |
194.36.111[.]59 | ipv4-addr | NETWIRE RAT C2 |
194.5.98[.]126 | ipv4-addr | NETWIRE RAT C2 |
194.5.98[.]178 | ipv4-addr | NETWIRE RAT C2 |
194.5.98[.]188 | ipv4-addr | NETWIRE RAT C2 |
194.5.98[.]65 | ipv4-addr | NETWIRE RAT C2 |
212.193.29[.]37 | ipv4-addr | NETWIRE RAT C2 |
212.193.30[.]230 | ipv4-addr | NETWIRE RAT C2 |
213.152.161[.]249 | ipv4-addr | NETWIRE RAT C2 |
217.151.98[.]163 | ipv4-addr | NETWIRE RAT C2 |
23.105.131[.]166 | ipv4-addr | NETWIRE RAT C2 |
37.0.14[.]199 | ipv4-addr | NETWIRE RAT C2 |
37.0.14[.]203 | ipv4-addr | NETWIRE RAT C2 |
37.0.14[.]206 | ipv4-addr | NETWIRE RAT C2 |
37.0.14[.]208 | ipv4-addr | NETWIRE RAT C2 |
37.0.14[.]214 | ipv4-addr | NETWIRE RAT C2 |
37.120.217[.]243 | ipv4-addr | NETWIRE RAT C2 |
51.161.104[.]138 | ipv4-addr | NETWIRE RAT C2 |
54.145.6[.]146 | ipv4-addr | NETWIRE RAT C2 |
80.66.64[.]136 | ipv4-addr | NETWIRE RAT C2 |
85.209.134[.]105 | ipv4-addr | NETWIRE RAT C2 |
85.31.46[.]78 | ipv4-addr | NETWIRE RAT C2 |
94.156.35[.]40 | ipv4-addr | NETWIRE 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 |