Openwrt安全问题思考
字数 1471 2025-08-29 08:31:35
OpenWRT 安全研究与实践指南
1. OpenWRT 概述
OpenWRT 是一个嵌入式 Linux 发行版,是主流路由器固件之一(其他包括 dd-wrt、tomato、padavan)。与静态系统不同,OpenWRT 提供了:
- 完全可写的文件系统
- 灵活的包管理系统
- 高度可定制性
市场份额逐年增长,被小米等主流厂商用于家用路由设备二次开发。
2. OpenWRT 环境搭建
2.1 获取源代码
git clone git://github.com/openwrt/openwrt.git
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
2.2 目录结构详解
| 目录 | 内容描述 |
|---|---|
include/ |
编译系统所需的Makefile文件 |
package/ |
软件包目录,包含各代码包的Makefile |
scripts/ |
工具脚本(shell/python) |
staging_dir/ |
内核和工具的编译结果 |
target/ |
平台相关代码(不同芯片型号) |
toolchain/ |
交叉编译工具链 |
tools/ |
工具集(压缩、加壳、文件系统构造等) |
build_dir/ |
内核、工具、软件源码编译内容 |
bin/ |
编译输出的二进制文件(bin和ipk) |
2.3 配置选项
执行配置命令:
make menuconfig
主要配置项:
- Target System:设备架构
- Sub Target:子目标
- Target Profile:目标配置文件
- Target Images:选择vmdk等镜像格式
- Base System:基本系统组件(可定制busybox)
- Kernel Modules:内核驱动模块
- Network:网络相关程序
- Utilities:工具包
注:x86_64架构便于本地调试,其他架构需对应硬件
2.4 编译与运行
编译命令:
make V=s
运行:
- 编译生成
openwrt-x86-64-combined-ext4.vmdk - 使用VMware加载运行
- 开启dropbear服务进行连接
3. OpenWRT 安全研究要点
3.1 后端代码审计
3.1.1 Lua语言后台(如小米设备)
审计路径:
/www目录下的Web路由controller/目录中的路由处理
常见漏洞类型:
- 未授权访问
- 命令注入
- 权限越权
- XSS跨站脚本
- 目录穿越
3.1.2 Boa HTTP服务器(如360设备)
分析要点:
- Boa配置文件
- CGI程序逆向分析
- HTTP请求处理流程
3.2 硬编码问题
检查点:
/etc/passwd和/etc/shadow中的初始密码- Telnet/SSH服务的默认凭证
- 启动脚本中的硬编码凭证
示例漏洞代码:
#!/bin/sh
# 某路由器启动脚本中的硬编码
telnetd -l /usr/sbin/login -u Alphanetworks:$image_sign -i br0 &
3.3 后门与隐藏服务
审计要点:
- 非常规开放端口(53、22、23等)
- 隐藏服务程序(如磊科的igdmtpd监听53413端口)
- 非常规认证机制
4. 安全研究建议
- 固件分析:解包分析文件系统,查找敏感信息
- 服务枚举:全面扫描所有开放端口和服务
- 逆向工程:对关键二进制进行逆向分析
- 流量分析:监控设备网络通信行为
- 认证机制:测试所有可能的认证绕过方式
5. 典型漏洞案例
-
NetCore全系列路由器后门:
- 服务:igdmtpd
- 端口:53413
- 影响:允许未授权访问
-
硬编码Telnet凭证:
- 厂商:多个
- 位置:启动脚本
- 影响:固定凭证导致设备暴露
通过系统化的环境搭建和安全审计方法,可以有效发现OpenWRT及基于其开发的设备中的安全隐患。