如何有效识别并修复路由器中的安全漏洞?

路由器漏洞挖掘步骤及工具

1、固件提取

从官网下载路由器固件,通常为 .bin 文件。

如何有效识别并修复路由器中的安全漏洞?插图1
(图片来源网络,侵删)

使用 binwalk 工具提取固件中的文件系统,命令如下:

     binwalk -eM 路由器固件.bin

解压后会看到类似 Linux 目录结构的文件夹。

2、静态分析

使用 Ghidra 对固件进行静态分析,Ghidra 是由 NSA 开发的开源逆向工程工具套件。

     apt install openjdk-17-jdk  # java环境安装
     ghidra -p /path/to/httpd

导入 httpd 程序并进行分析,查找可能的缓冲区溢出点,strcpy 函数的使用。

如何有效识别并修复路由器中的安全漏洞?插图3
(图片来源网络,侵删)

3、动态调试

使用 QEMU 模拟路由器固件运行环境。

     sudo apt install qemu-user-static
     qemu-user-static -L . ./bin/httpd

通过 gdb-multiarch 和 pwndbg 插件进行动态调试。

     gdb-multiarch ./bin/httpd
     target remote :9999

4、漏洞利用

构造 POC(Proof of Concept),测试栈溢出或逻辑漏洞。

如何有效识别并修复路由器中的安全漏洞?插图5
(图片来源网络,侵删)

针对 CVE-2023-34644 锐捷路由器漏洞,可以通过异或解密获取 key,然后进行加密还原。

5、提交漏洞

成功复现漏洞后,可以在相关平台提交漏洞,获取 CVE 编号。

示例:CVE-2023-34644 锐捷路由器漏洞复现

1、异或解密

原始未加密版本固件升级到加密版本时,使用解密程序对固件解密。

解密代码示例:

     void realEndeCrypt(void *fileBuf, void *outBuf, int readNum) {
         char k1[4] = "x01";
         char k2[4] = "x01x00x01";
         int foo = 0;
         for (int ct = 0; ct < readNum; ++ct) {
             foo = (int) k1[0] + (int) k2[0] + (int) k2[1] + (int) k2[2];
             for (int i = 0; i < 6; ++i)
                 *((char *)k1 + i) = *((char *)k1 + i + 1);
             k2[3] = foo % 2;
             int key = 0;
             for (int j = 0; j < 8; ++j)
                 key |= *((char *)k1 + j) << j;
             *(char *)(outBuf + ct) = *(char *)(fileBuf + ct) ^ key;
         }
     }

路由器常见漏洞类型及案例

1、路径穿越漏洞

由于配置错误导致的路径穿越,如小米 AIoT 路由器 AX3600 的路径穿越漏洞。

     http://<IP>/backup/log../messages

读取 /tmp/syslogbackup/../test,实际访问 /tmp/test。

2、后台解压逻辑错误

上传包含配置文件的 .tar.gz 压缩包恢复路由器设置时存在逻辑错误。

tenda AC15 V15.03.05.19 固件中存在的解压逻辑错误。

3、栈溢出漏洞

使用危险函数如 strcpy、strcat、sprintf 等导致的栈溢出。

tenda AC15 固件中的 formSetFirewallCfg 函数存在栈溢出漏洞。

路由器漏洞挖掘涉及固件提取、静态分析、动态调试和漏洞利用等多个步骤,常用的工具包括 binwalk、Ghidra、QEMU 和 gdb-multiarch,通过这些步骤和工具,可以有效地发现和复现路由器中的安全漏洞。

以上就是关于“路由找漏洞”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/83561.html

(0)
上一篇 2024年10月24日 02:44
下一篇 2024年10月24日 02:55

相关推荐