主要观点:大学的几乎每个房间都配备了 VoIP 电话,作者所在的黑客实验室也有,其安装的是 NEC 的 DT900 VoIP 电话,发现该电话运行 Linux 且存在多个漏洞,包括可通过 Web 界面和 SSH 访问、JSON 解析导致的命令注入漏洞、无需 session_id 可绕过认证、多处缓冲区溢出等,作者利用这些漏洞进行了攻击,在开发过程中通过使用静态编译的 gdbserver 进行调试,已向 NEC 报告漏洞,NEC 处理专业并修复,还在 GARR Workshop 做了相关报告。
关键信息:
- 实验室的 VoIP 电话型号为 DT900,来自 NEC,其 Web 界面有 80 和 443 端口,SIP 有 5060 和 5061 端口,需登录有效凭证,已找到默认密码和后门账户。
- 可在 Web 界面启用 SSH 访问,重启后 22 端口开放,找到 SSH 凭证较容易,设备的 SSH 服务器较旧不支持新算法。
- 通过 Python 脚本复制文件获取固件,发现整个电话功能由 lynxphone 二进制文件提供,该文件死亡会导致重启。
- Web 界面的 HTTP 请求由 lighttpd 处理,通过 CGI 传递给 ipc_client 再到 lynxphone,存在 JSON 解析导致的命令注入漏洞和缓冲区溢出漏洞。
- 利用命令注入漏洞的攻击代码为 curl 命令,攻击较 stealth 且可能安装后门。
- 开发过程中通过在真实电话上使用静态编译的 gdbserver 进行调试,已向 NEC 的漏洞披露计划报告漏洞,NEC 修复后预留 CVE 并披露。
重要细节: - 无固件升级文件,通过 SSH 复制文件,因电话内存有限不能压缩。
- JSON 解析函数在地址簿的插入联系人功能中触发,
form_data
数组无边界检查导致栈溢出。 - 可通过省略
session_id
字段绕过认证。 - 给出了具体的漏洞利用代码和相关截图。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。