在Linux上狩猎Netwire RAT
Posted FreeBuf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux上狩猎Netwire RAT相关的知识,希望对你有一定的参考价值。
如今攻击者可以选择多种 RAT,现在的这些 RAT 不仅针对 Windows 而是跨平台的(如 CrossRAT、Pupy 与 Netwire)。尽管此前有大量的研究针对 Windows 与 macOS 版本的 Netwire,但是 Linux 版本的 Netwire 却鲜为人知。
Netwire 简介
Netwire 是由 World Wired Labs 开发并销售的 RAT。它支持远程访问 Windows、macOS、Linux 和 Solaris 系统,可以用多种方式传输文件与系统管理。
其中也有许多功能会被滥用,被滥用时这些功能没有看起来那么好了:
键盘记录
使用浏览器 User-Agent 伪装网络流量
捕获屏幕截图
在 Web 浏览器中访问凭据
Netwire 允许通过代理转发流量、监听接收加密命令控制的任何端口。文章的末尾表格列出了 Netwire 使用的 ATT&CK 概述情况,特定在 Linux 中的技术以粗体显示。
Linux 版特性
Netwire 大多数功能在各个平台上都是相同的,只有少数功能不同。比如 Windows 平台的持久化依赖 Windows 注册表,但在非 Windows 系统中不存在注册表需要更改持久化方法。另外,不同平台的可执行格式也不相同,Windows 和 macOS 版本分别使用 PE 与 Mach-O 格式,而 Linux 与 Solaris 使用 ELF 格式。
持久化机制也有变化,提供了使用 XDG 自启动项与 crontabs 定时任务进行持久化。之前,我们介绍过 crontabs 但是没有详细探讨过 XDG 自启动项,这类似于 Windows 中的开始菜单启动项。
在任何使用与 Freedesktop.org 的 XDG 兼容的类 Unix 桌面操作系统中,都可以添加自启动项在桌面加载时执行程序或脚本。这些文件通常在以下文件夹中,也可以通过环境变量对路径进行更改:
/etc/xdg/autostart
~/.config/autostart
自启动项本身的文件扩展名通常为 .desktop,其内容如下所示:
[Desktop Entry]
Type=Application
Exec=/home/user/.config/dbus-notifier/dbus-inotifier
Name=system service d-bus notifier
当然,Netwire 不是唯一一个使用这种方法的 RAT(Fysbis、Pupy、jRAT、CrossRAT)。
详细分析
我们在 VirusTotal 上查看了 Netwire 的样本,我们将其下载下来进行详细地分析。
执行样本后,注意到样本将自身复制到一个隐藏文件夹中,并从该隐藏文件夹中启动。
这是将自己隐藏起来的第一步,用以将 RAT 的副本安装到本地文件夹以便长期潜伏。接下来现实了 Netwire 使用 .desktop 进行持久化的机制与其他两个文件的创建。
文件 /tmp/.rOuYXzdOF 可能是用于确保 Netwire 只运行一次的互斥量。接下来的文件 .default.conf 是一个配置文件,用于存储 Netwire 与 C&C 服务器通信所需的配置数据。在 Windows 中该信息存储在注册表中。最后,Netwire 会建立网络连接以供攻击者进行远程控制。
归因到 Netwire
为了归因到 Netwire,我们提供了多方证据。首先,VirusTotal 上的反病毒引擎的检测率与家族分类信息可以提供可信支撑。接下来,根据 Patrick Wardle 对 macOS 的 Netwire 变体的分析文章中从 macOS 版 Netwire 样本中提取的字符串。将这些字符串与 Linux 版 Netwire 进行比较可以发现 14 个相同的字符串。如 User-Agent、网络配置发现、可能是会话 ID 或密码的特殊字符串:
/bin/bash
/bin/sh
/tmp/.%s
en-US,en;q=0.8 :
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
CONNECT %s:%d HTTP/1.0
Current IP Address:
GET / HTTP/1.1
Host: %s:%d
Host: checkip.dyndns.org
Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko :
checkip.dyndns.org
exit
hyd7u5jdi8
最后,我们将其余字符串与 Netwire 在线用户手册的功能进行了比较。Netwire 较新版本的发行说明中提到了对 crontab 持久化的支持,并且我们观察到一个字符串暗示该程序可能使用了 crontab -l 命令,尽管在执行过程中我们并未发现该命令执行。我们还观察到了 Netwire 用户手册中描述的 HTTP 和 SOCKS 代理的字符串。据此,我们可以非常肯定地说该样本是 Netwire 的变体,而且是较新的版本。希望本文能够对检测、阻止环境中的 RAT 提供一些帮助!
Netwire 使用的 ATT&CK 技术项
ATT&CK ID | 战术 | 描述 | 注释 |
---|---|---|---|
XDG 自启动项 | N/A | Netwire 可能会在 Linux 系统上使用 XDG 自启动项来进行持久化 | 可由用户在编译时配置 |
数据压缩(T1002) | 数据外带 | Netwire 可以将捕获的屏幕压缩 | |
应用窗口发现(T1010) | 发现 | Netwire 可以发现并关闭受控主机上的窗口 | |
系统网络配置发现(T1016) | 发现 | Netwire 与外部通信发现其公共 IP 地址 | Netwire 使用域名 checkip.dyndns.org |
数据加密(T1022) | 数据外带 | Netwire 将捕获的击键记录存储在加密的日志文件中 | |
标准加密协议(T1032) | 命令控制 | Netwire 使用 AES 加密来传输数据 | |
系统用户发现(T1033) | 发现 | Netwire 可以发现已登录的用户 | |
伪装(T1036) | 防御逃避 | Netwire 伪装成其他软件,网络流量伪装 User-Agent | Netwire 模拟了 TeamViewer、macOS Finder 与其他软件的流量,通常使用 Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko. 作为 User-Agent |
加壳(T1045) | 防御逃避 | 一些文件使用 .NET 加壳工具进行检测逃避 | |
计划任务(T1053) | 执行、持久化、权限提升 | 使用计划任务保持 Netwire 的持久化 | Netwire 并未内置计划任务,通常由部署 Netwire 的另一种机制实现 |
进程注入(T1055) | 防御逃避、权限提升 | 使用进程注入逃避检测 | 代码注入系统进程如 notepad.exe、svchost.exe 和 vbc.exe 中 |
输入捕获(T1056) | 信息收集、凭据访问 | Netwire 可以执行键盘记录 | |
进程发现(T1057) | 发现 | Netwire 可以发现并中止受控主机上的进程 | |
命令行界面(T1059) | 执行 | Netwire 可以使用 cmd.exe 和 sh 执行命令 | |
注册表运行/启动文件夹(T1060) | 持久化 | Netwire 创建一个注册表启动项维持持久化 | 可以在编译时配置 |
本地计划任务(T1168) | 持久化、执行 | Netwire 通过 cron 定时任务实现的能力 | |
文件中的凭据(T1081) | 凭据访问 | Netwire 可以从邮件客户端程序中检索密码 | 支持的程序包括 Windows Live Messenger、Pidgin、Mozilla Thunderbird 和 Microsoft Outlook |
系统信息发现(T1082) | 发现 | Netwire 可以发现并收集失陷主机信息 | |
连接代理(T1090) | 命令控制、防御逃避 | Netwire 可以代理系统的网络流量 | |
进程 Hollowing(T1093) | 防御逃避 | 使用该技术逃避检测 | |
远程文件复制(T1105) | 命令控制、横向平移 | Netwire 将文件传输至远端系统 | |
修改注册表(T1112) | 防御逃避 | Netwire 将配置存储在 Windows 注册表中 | 配置信息通常存储在 HKCU:SoftwareNetwire |
屏幕截图(T1113) | 信息收集 | Netwire 可以捕获失陷主机的屏幕 | |
数字签名(T1116) | 防御逃避 | Netwire 使用伪造或无效的数字证书 | |
启动代理(T1159) | 防御逃避 | Netwire 包含启动代理的 macOS 启动选项 | 可在编译时进行配置 |
登录(T1162) | 持久化 | Netwire 包含用于登录的 macOS 启动项 | 可在编译时进行配置 |
Web 浏览器凭据(T1503) | 凭据访问 | Netwire 从众多 Web 浏览器检索密码 | 支持的浏览器包括 Mozilla Firefox、Internet Explorer、Opera、Chromium 和 SeaMonkey |
*参考来源:RedCanary,FB 小编 Avenger 编译,转载请注明来自 FreeBuf.COM
精彩推荐
以上是关于在Linux上狩猎Netwire RAT的主要内容,如果未能解决你的问题,请参考以下文章