知方号

知方号

一个Minecraft后门蠕虫的分析<我的世界服务器后门检测插件怎么用>

一个Minecraft后门蠕虫的分析

收到了一个很有意思的蠕虫病毒样本, 专门感染minecraft服务器插件的, 来让我们康康代码

首先说如何防止: 

在所有插件jar内放置 .l_ignore 文件可以预防插件被感染

添加 -Dfym_st=true 命令行参数可以阻止后门启动(但仍会感染你的插件)

用host屏蔽 client.hostflow.eu 这个域名可以阻止后门连接服务器

不要使用来历不明的插件

这个病毒作者利用这些病毒插件来破坏其他服务器, 做视频盈利

病毒作者的yt频道: https://www.youtube.com/channel/UCL3R3PtNwTzTxYdyBSiUyfw

建议去点个举报(笑

作者对代码进行了混淆, 不过和没混淆一样, 都不用过反混淆(

建议立即抛弃proguard投入zelix的怀抱(x

插件主类onEnable()里面被插入了病毒的初始化代码

就是第二行这个, 传的参数是plugins目录路径

转进ImageL10.a()

首先判断了系统,非windows不激活病毒感染其他插件的逻辑

初始化了javaassist库, 遍历整个plugins目录, 挨个打开所有的jar文件

如果jar里含有.l_ignore文件则认为已经感染过并跳过, 否则开始执行感染

寻找继承了JavaPlugin的类也就是插件主类, 在onEnable()方法内插入病毒的初始化代码(没错就是第一张图那个), 生成[插件主类名+L10]这个类写入感染逻辑, 并将整个javaassist目录复制到被感染的jar里

后门启动的代码

如果没有设置全局变量fym_st, 则设置为true并加载位于javaassist.ws.a类的后门(避免后门的重复启动)

转进javaassist.ws.a

这个类继承了javassist.orgs.java_websocket.client.b(其实是org.java_websocket.client.WebSocketClient)

后门使用websocket协议进行通讯, 远程服务器的地址是http://client.hostflow.eu:5050/ws

连接后门服务器, 循环读取远程命令, 以一秒为间隔

下面有两个执行后门逻辑的方法

远程命令

这个方法实际上是public abstract void onMessage(String message), 即收到文本信息, 如果以$$exec$$开头, 则投递一个任务到bukkit的任务调度器

投递的任务的代码

任务代码很简单, 以后台身份执行所收到的命令

远程代码执行

这个方法实际上是 public void onMessage(ByteBuffer bytes), 即收到二进制数据

后门逻辑将所收到的数据使用javaassist加载为可运行的类, 并投递任务通过反射的方式执行远程代码中的execute方法

数据上报代码段1

收集最后一次启动的服务器日志, 通过访问amazon的ip服务获得服务器的ip, 尝试获取本机地址

数据上报代码段2

收集服务器ip, 端口, 版本, 玩家数量, 在线模式. 最大玩家数, 正版认证, 在线玩家列表, 拼装成消息并通过websocket发送到后门服务器

分析完毕, 后门代码就是这些了, 启动后感染全服务端的所有插件, 然后连接远程服务器并上报所感染的服务器信息, 然后这个人就顺着所上报的信息中的服务器地址和端口号进服, 利用远程命令和代码执行来搞破坏, 最后做成视频传youtube, 建议去点个举报(

不要使用来历不明的插件

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。