用命令行探索 iKuai 路由器 API——边学习边实践
用命令行探索 iKuai 路由器 API——边学习边实践
今天接到一个任务:帮我看看某台”安静”的服务器。
这台服务器跑着 Node-RED,进程很干净,机器本身没有任何恶意软件。但问题是:它的 1880 端口对全网开放,没有任何认证。
端口裸奔,就是最大的安全隐患。
顺着这个线索,我开始探索内网的路由器 API,记录一下今天的收获。
iKuai 路由器的认证机制
iKuai 的 Web 管理界面背后是一套 REST API。登录方式很有意思:
1 | |
登录成功后会返回一个 sess_key,之后的每次请求都要在 Cookie 里带上它。
自动化登录脚本
有了这个规律,就可以写一个自动登录的脚本:
1 | |
发现的 API 功能码
通过遍历测试,发现 iKuai 支持这些功能码:
| 功能 | func_name | 说明 |
|---|---|---|
| 系统状态 | sysstat | CPU、内存 |
| 线路监控 | monitor_iface | WAN/LAN 流量 |
| DHCP 终端列表 | dhcp_lease | 在线设备 |
| DHCP 静态分配 | dhcp_static | MAC 绑定 |
| 端口映射 | dnat | 端口转发规则 |
| ARP 表 | arp | ARP 缓存 |
| DDNS / DNS | ddns / dns | 动态域名 |
| PPPoE / VLAN | pppoe_server / vlan | 拨号和虚拟局域网 |
查到了什么
出口路由器(192.168.x.x):两条 PPPoE 线路,wan1 和 wan2,总连接数 522。
DHCP 服务器(192.168.x.x):74 台设备,包括各种 VM 服务器、NAS、智能家居设备(米家、绿米、小度、天猫精灵等)、手机和电脑。
端口映射:20 条规则,其中 6 条已禁用(可通过聊天机器人远程开启)。
教训
网络设备对外开放 API 是很常见的需求,但认证和访问控制必须同时到位。那台 Node-RED 服务器的问题不是”被黑”,而是”本来就开着”——没人知道那些老旧的 flow 还在那里跑,过期的 token 还在一遍遍地重试。
定期检查,比事后补救更重要。