sensen1234
本帖最后由 sensen1234 于 2023-1-3 11:14 编辑

请各位服主看到后立即转发给你认识的服主!

以免损失扩大!

并且请版主不要删除本帖,尽管本帖有很多违反版规格式的排版!



不知道各位服主有没有这样的感受,一个玩家在线或者空载的时候,服务器内存占用极高(如3000-5000m) 并且服务器mspt异常高,每次开服都会生成一堆.tmp文件
那么如果您遇到上述情况,您的服务器很可能中毒了!
一、判断是否中毒最简单的方法:

① 使用任意压缩软件(这里我使用7zip) 逐个打开您的插件
如发现有.la_gnita文件(如图所示)



那么这时你的服务器就有概率感染了此病毒
接下来,还是用上述方法打开.jar文件,查看Jar文件中的javassist文件夹下是否有Franslator.class文件。此外,查看Jar文件根目录内是否含有名为.data、.l_ignore和.la_gnita的文件,或者为任何零字节大小的文件,这些文件也极有可能成为病毒感染的标志性文件。



解决方法:
前往插件官网下载最新版的插件,并且删除您插件文件夹里被感染的插件
请注意:某些插件可能官网版也有此病毒,这边推荐下载完成后按照上面的判断方法判断插件是否中毒
如还是存在0字节.l_ignore  .la_gnita文件,那么请不要安装本插件!请联系插件作者处理此事!请注意,请勿仅删除.l_ignore  .la_gnita文件 并不能成功杀死病毒


碎碎念:
本病毒真正完全运行仅会在Java8中完全运行(如图,可能是这个病毒字节码对应java8 在java16的服务器上运行可能会有问题)


但并不代表在java8以上的服务器中完全没有破坏力(如内存占用异常高,启动速度5-8分钟)楼主的服务器是1.19.2purpur zulu17中运行的,照样中了招(【新提醒】服务器启动奇慢无比,且空载内存9g - 联机问答 - Minecraft(我的世界)中文论坛 - (mcbbs.net) 本帖内的最佳答案并不能完全解决本问题,仅可缓解[指内存占用减小300-500m]
并且papermc的代码里并没有调用javassist的相关代码
附:病毒样本
被感染的插件(此病毒有传播性) NoteBlockAPI-1.6.1-SNAPSHOT.jar (1.85 MB, 下载次数: 35)








HE4071
速速po上virustotal

strings
javassist 是常用的操作字节码的库,和是否是病毒并没有关系

sensen1234
本帖最后由 sensen1234 于 2022-12-20 18:10 编辑
strings 发表于 2022-12-20 17:59
javassist 是常用的操作字节码的库,和是否是病毒并没有关系

但是这个东西表现出了极强的传染性,并且含有本文件夹的插件,运行会生成大量tmp文件(彻底启动后不会自己删除)
并且我也在帖子里提了,
并且papermc的代码里并没有调用javassist的相关代码
并且原插件并没有javassist文件夹并且带有javassist文件夹的插件,内存占用极高!

白魂ww
哥们 你是来搞笑的吗?

sensen1234
白魂ww 发表于 2022-12-20 18:02
哥们 你是来搞笑的吗?

你可以自己试试

sensen1234

这个病毒他并不会破坏系统文件,反而表现出上传自己服务器的信息(?)有点像之前的那个黑客崩服病毒

白魂ww

啊啊啊  好可怕 我是不是中毒了

mzmzmz

哥们,你是个天才
你是懂Java的

小心挨举报



sensen1234
mzmzmz 发表于 2022-12-20 18:09
哥们,你是个天才
你是懂Java的
小心挨举报

我真的建议自己试试

白魂ww
sensen1234 发表于 2022-12-20 18:10
我真的建议自己试试

我服务器好像没有任何问题 并且这个库还是很知名的  哥们
咱先百度再来发帖 或者你自己删掉内容吧  丢人(别钓了 没意思哥们

mzmzmz
sensen1234 发表于 2022-12-20 18:10
我真的建议自己试试

病毒可能会用到javassist没毛病
但用了javassist就是病毒可太草
“那么您的服务器100%中毒了!”你怎么敢说的
我自己写插件就用了javassist
https://www.mcbbs.net/thread-1250793-1-1.html

sensen1234
白魂ww 发表于 2022-12-20 18:11
我服务器好像没有任何问题 并且这个库还是很知名的  哥们
咱先百度再来发帖 或者你自己删 ...

我没钓,真的

sensen1234
mzmzmz 发表于 2022-12-20 18:12
病毒可能会用到javassist没毛病
但用了javassist就是病毒可太草
“那么您的服务器100%中毒了!”你怎么敢 ...

我在开头就提到了
不知道各位服主有没有这样的感受,一个玩家在线或者空载的时候,服务器内存占用极高(如3000-5000m) 并且服务器mspt异常高,每次开服都会生成一堆.tmp文件
那么如果您遇到上述情况,您的服务器很可能中毒了

我并没有说含有javassist文件夹的一定为病毒

‮tcejorPoiK
sensen1234 发表于 2022-12-20 18:13
我在开头就提到了

我并没有说含有javassist文件夹的一定为病毒
一、判断是否中毒最简单的方法:
...
①如发现有javassist文件夹
...
那么您的服务器100%中毒了!


可以把这部分改改..

这里小雨.
提出问题 不深层剖析一下原理就来科普 只能说扯淡

mzmzmz
sensen1234 发表于 2022-12-20 18:13
我在开头就提到了

我并没有说含有javassist文件夹的一定为病毒

那你说的一定中病毒的是
“内存占用极高并且服务器mspt异常高,每次开服都会生成一堆.tmp文件”

那你下面给的“判断是否中毒的方法”有什么意义

sensen1234
‮tcejorPoiK 发表于 2022-12-20 18:15
可以把这部分改改..

已修改,感谢指正

sensen1234
这里小雨. 发表于 2022-12-20 18:17
提出问题 不深层剖析一下原理就来科普 只能说扯淡

稍后我就把深层解析发出来

sensen1234
mzmzmz 发表于 2022-12-20 18:17
那你说的一定中病毒的是
“内存占用极高并且服务器mspt异常高,每次开服都会生成一堆.tmp文件”

javassist+异常内存

白魂ww
哥们你搞一份timings报告发出来看一下

mzmzmz

所以只异常内存就不一定有
然后再装上我这个带javassist的插件就变成一定有了是吧

幽月琉璃



javassist←~→中毒?
疑惑.jpg

sensen1234
幽月琉璃 发表于 2022-12-20 18:23
javassist←~→中毒?
疑惑.jpg

我说了,“很可能中毒”

凌语丶
你要不看看 我把你发的病毒样本覆盖官方的封装了一个jar拿去检测
https://s.threatbook.com/report/ ... 04c12793c7809a38cb4
https://www.virscan.com/report/f ... 04c12793c7809a38cb4
https://habo.qq.com/file/showdet ... IPls8U2c%3D#process
https://www.virustotal.com/gui/f ... 809a38cb4?nocache=1

sensen1234
本帖最后由 sensen1234 于 2022-12-20 18:31 编辑
白魂ww 发表于 2022-12-20 18:21
哥们你搞一份timings报告发出来看一下
  1. [18:26:08 INFO]: Plugins (39): AntiAttack*, Ath, AuthMe, BannerMaker, BossShopPro, Citizens, CleanMOTD, ClearEntity*, CMI, CMIEInjector*, CMILib, CoreProtect, ExcellentBuilding, FastAsyncWorldEdit (WorldEdit), HolographicDisplays, ImageMaps, JoinEventAll*, JukeBox, LiteSignIn, LuckPerms, MagicOpBugHotfix, Multiverse-Core, NoteBlockAPI, PlaceholderAPI, PlayerTitle, PlotSquared, PlugManX (PlugMan), ProtocolLib, RanOptimiser, SkinsRestorer, TAB, TrChat, Vault, ViaBackwards, ViaVersion, Welcome*, WorldGuard, WTF*, ZMusic
  2. > timings on
  3. [18:26:11 INFO]: Enabled Timings & Reset
  4. [18:26:11 INFO]: Timings Reset
  5. > gc
  6. [18:26:14 INFO]:
  7. --------------------------------------------------
  8. 系统: amd64 (Windows Server 2016) 运行线程: 171
  9. TPS: 19.99 (19.83 19.83 19.83 19.83)
  10. Cpu 使用: 2.85% (4 cores)
  11. 运营时间: 4 分 9 秒
  12. 内存使用: 62.03% (3811.00/6144 MB)
  13. Java 版本: 17.0.2+8-LTS-86() Build:
  14. 磁盘占用: 65.46% (523/799 GB)
  15. 1. world 529 个区块 3 个实体 23 tiles 0 玩家
  16. 2. Bplot 529 个区块 3 个实体 40 tiles 0 玩家
  17. 3. plot 529 个区块 0 个实体 0 tiles 0 玩家
  18. 4. Plot1 529 个区块 93 个实体 65 tiles 0 玩家
  19. 5. Plot2 529 个区块 0 个实体 0 tiles 0 玩家
  20. --------------------------------------------------
复制代码

timings还没出来,我先发一份内存占用
按照我发的方法解决后,内存占用仅有700m左右
我希望您相信我
(注:timings我放在帖子最后了)

耗子
本帖最后由 耗子 于 2022-12-20 18:42 编辑

题主未经分析病毒的工作方式,仅根据是否含有javassist来判断是否中毒,是站不住脚的。
一、判断是否中毒最简单的方法:
① 使用任意压缩软件(这里我使用7zip) 逐个打开您的插件
如发现有javassist文件夹(如图所示)
并且打开后文件为这些(如图所示)
那么您的服务器很可能中毒了(并非含有javassist的一定被感染,判断条件还有如我开头提到的异常内存占用)!

根据BetterStructures插件的开源代码,分析依赖关系后得知,引入org.javassist:javassist库的是org.reflections:reflections库,并且该插件使用了shadow打包Jar文件,所以javassist库被打包到Jar文件中。

此外,题主仅根据javassist类库的编译版本为Java 8,就断言“本病毒真正完全运行仅会在Java8中完全运行”,实是犯了Java最基本的常识性错误,即高版本的JVM可以运行低版本编译的程序,简单来说就是向下兼容。连Java最基本的概念都搞不清楚,我对题主有能力判断程序是否是病毒持怀疑态度。

最后,题主能够在发表此类消息前,应该先寻求圈内权威人士的指导,并且希望题主能够提升自己的Java水平,不要再弄出这样的乌龙出来了。




sensen1234
耗子 发表于 2022-12-20 18:29
题主未经分析病毒的工作方式,仅根据是否含有javassist来判断是否中毒,是站不住脚的。

根据BetterStructu ...

我已咨询过相关人员,稍后他会在本帖回复

sensen1234
耗子 发表于 2022-12-20 18:29
题主未经分析病毒的工作方式,仅根据是否含有javassist来判断是否中毒,是站不住脚的。

根据BetterStructu ...



耗子

只能看出是javassist的ClassPool内存占用大,但是是什么插件造成的不清楚,有可能你使用的某个插件的开发者水平不高,导致这种问题。

sensen1234
本帖最后由 sensen1234 于 2022-12-20 18:52 编辑
耗子 发表于 2022-12-20 18:49
只能看出是javassist的ClassPool内存占用大,但是是什么插件造成的不清楚,有可能你使用的某个插件的开发 ...

不是的,我从官网重新下插件 根本没有javassist,相应的也就没有javassist占用资源并且您提到开发水平不高
那么我觉得我们应该无法否认 cmi p2 fawe coreprotect开发水平不高吧?

ak-4-7
跟正常的javassist库对比了一下,最明显的是在javassist/tools/reflect下多了几个以单个或者多个随机字母及下划线组成名字的目录,目前应该可以通过此方法判断是否为病毒

其病毒代码高度混淆,目前我自己没看出来这个玩意儿的工作方式是什么

耗子
本帖最后由 耗子 于 2022-12-20 21:01 编辑
sensen1234 发表于 2022-12-20 18:51
不是的,我从官网重新下插件 根本没有javassist,相应的也就没有javassist占用资源并且您提到开发水平不高 ...

经过检查,你上传的NoteBlockAPI-1.6.1.jar确实是被病毒感染的文件,该病毒会主动感染服务器中的所有jar文件,并在jar文件中生成.la_gnita作为标志文件,javassist只是此病毒的提供的附属类库。如果你已经感染了此病毒,请关闭服务器上所有java和javaw程序,并替换服务器上所有的jar文件。我建议通过解压文件中是否含有.la_gnita作为被感染的依据,而不是以javassist作为被感染的依据。

该病毒在2022年8月3日于SpigotMC论坛被报告,贴主发现有人在SpigotMC论坛大量上传恶意插件,讨论链接:
https://www.spigotmc.org/threads/infected-resources.567487/

PaperMC官方也于2022年9月29日发布了安全公告:
https://forums.papermc.io/threads/malware-announcement.529/

如何防止感染此类恶意插件?

请不要从任何来历不明的渠道下载插件,并且如果你要在SpigotMC下载插件,请注意观察插件和插件上传者,这些恶意插件的表现如下所示:
1. 这些插件的会有人评论“这是恶意软件”。
2. 这些插件主要是在深夜被上传的。
3. 这些插件的上传者主要是新注册的账号。
4. 这些插件通常不会很大(大概900KB)。
5. 这些插件的介绍是从别的插件抄过来的。
6. 同一个上传者在短时间内上传了大量的插件。

如何判断你的服务器是否已被感染?

用支持打开zip文件的压缩文件管理器打开.jar文件,查看Jar文件中的javassist文件夹下是否有Franslator.class文件。此外,查看Jar文件根目录内是否含有名为.data、.l_ignore和.la_gnita的文件,或者为任何零字节大小的文件,这些文件也极有可能成为病毒感染的标志性文件。

个人使用PaperMC建议的MCAntiMalware无法检查到楼主提供的病毒样本,有需要的服主可以考虑下载试用:https://github.com/OpticFusion1/MCAntiMalware

我已经被感染了怎么办?

如果你已经感染了此病毒,请关闭服务器上所有java和javaw程序,并替换服务器上所有的jar文件。

此外,早在2021年2月5日,就有人在B站上发布了一个正在传播的Minecraft后门蠕虫插件的分析,具体链接如下所示:
https://www.bilibili.com/read/cv9651407












sensen1234
耗子 发表于 2022-12-20 19:05
经过检查,你上传的NoteBlockAPI-1.6.1.jar确实是被病毒感染的文件,该病毒会主动感染服务器中的所有jar ...

感谢指正

William_Shi
sensen1234 发表于 2022-12-20 18:51
不是的,我从官网重新下插件 根本没有javassist,相应的也就没有javassist占用资源并且您提到开发水平不高 ...

耗子大佬已经列出了前人对此病毒的分析,切中肯綮,病毒之争可暂告一段落。然区区窃不自揆,希望见识见识您口中的相关人员,ta有多么日下无双风流第一,见 CMI 而陋之,闻 CoreProtect 而拊掌。

1055Lab
本帖最后由 1055Lab 于 2022-12-20 19:21 编辑

简要说一下整件事情的经过吧....(我不是搞信息安全方向的,主语言也不是java,所以如果描述有问题的话,还请友善交流,批评指正)
最初是楼主的服务端内存占用颇高,即使使用openj9并且在服务器空载的情况下,依然能达到10余G的内存占用,这对于一个插件数量中等,只有三个世界的paper服务端来说显然不正常。
随后我进入其后台观察服务端行为,发现服务端启用耗费的时间异常巨大,粗略估计在五分钟上下,并且每次新的插件开始加载时,都会耗费大量的时间,这让我不由得怀疑是不是有某个插件出bug了,不过我和楼主找了一段时间后都没有发现到底是哪个插件出了问题。
最后我只能通过heap dump并借助mat工具对内存进行分析,在经历了一番波折之后,我发现每个插件的classloader中都存在大量的javaassist对象,并且大量的内存都是由javaassist的classpool占据,导致服务器内存占用异常。
javaassist库可以用于修改java的字节码,我对插件的接触并不多,但是很显然,应该大多数的插件都用不到这个库,然而服务端却加载了大量的javaassist类的对象,并且每个插件都有一个单独的javaassist的classloader,再结合javaassist可以修改java字节码的特性,这让我很自然地想起了蠕虫病毒,一种可以自我复制的病毒程序,于是我连忙检查插件文件夹,果然发现大量插件的jar包中都注入了javaassist包,即使这些插件根本不用javaassist库。
到这里已经很明显了,这些插件感染了病毒,并且通过感染其他插件的方式进行传播,接下来我将一个被感染的插件和一个正常的插件一起启动,发现正常的插件也被注入了恶意代码,这也映证了上面的结论。
随后,我尝试通过反编译对这个病毒进行分析,发现这些插件的主类的onEnable()函数的开头部分都被注入了一段恶意代码,用于执行病毒的恶意函数,不过这个病毒的混淆把我看懵了,所以我只是简单的翻了一下,在其中看到了DES字样,可能是用来加密程序数据的,不过我觉得更有可能是勒索病毒。
那为什么楼主的服务器只是内存占用和启动时间异常,而没有其他的影响呢,我的推测是该病毒的字节码版本对应Java8,因此在入侵一些Java16的服务器的时候可能会出现问题,所以没有造成更严重的影响。

DreamVoid
本帖最后由 DreamVoid 于 2022-12-20 20:13 编辑

就算是挖矿,也得有矿池地址,你病毒在电脑上干了什么只字不提,就说个这是病毒,有传染性,最后还得靠其他人来帮你解释,我觉得挺有意思的
我的评价是,少下盗版付费插件
另外在我的印象中,这个病毒早就在几个月前在本论坛公开了吧

远远饿了
早在去年这段时间开始(甚至更早)就有该病毒了
当初解答了一个问题
https://www.mcbbs.net/thread-1285844-1-1.html


sensen1234
本帖最后由 sensen1234 于 2022-12-20 21:52 编辑

很难理解一些回帖者的想法,我只是在本帖提醒一下各位服主,以免利益受损(我因为这玩意花了700多来回换服务器,一直以为是服务器问题)
然而某些人缺yygq 喷起我来了
我承认我的技术力低下,言语表达能力并不强
我也欢迎各位一起来补充这个帖子
可能我的话并不准确,语言并不流畅,但我还是希望各位能理智回帖
我只是一个初三服主,并没有多少技术力和精力研究这些东西,并且一些人发的这个病毒早就有了,我只是在我服再次爆发这个病毒后,发帖提醒各位
并不知道这个病毒早已有人发帖,并且之前发过俩关于病毒导致内存溢出的求助帖,大家给出的解答都是换jvm核心啥的,我今天就以为这个病毒可能是爆发了,但知道的人很少,没有相关帖子
并且我最初给的判定病毒方法,我们服并没有带javassist类的插件,所以我就误以为带javassist文件夹的插件一定为中毒
并且我在帖子的最上方也说了,您的服务器很可能中毒了,里面的判定方法(不严谨)里还有个看是否生成大量.tmp文件
但某些人的话确实恶心到我了,我承认我确实技术力低下,并且以后不会再发类似有争议性的帖子了,明天我会把本帖结合各种资料补充完毕,请不要再网暴我了...

第一页 上一页 下一页 最后一页