Netgear路由器信息泄露

2018-01-22T00:00:00
ID SSV:97089
Type seebug
Reporter Root
Modified 2018-01-22T00:00:00

Description

NETGEAR美国网件(NASDAQ: NTGR),致力于为全球商用企业用户和家庭个人用户提供创新的产品、卓越的智能家庭无线解决方案。

关于路由器漏洞挖掘历来都是是围绕着两个攻击面开展:

  • 脚本语言(htm/js/php/lua/sh/asp);
  • 编译语言(elf/mips/armv7/arm/)。

本文介绍一个最简单也最容易发现的一种漏洞,暂归类为信息泄露吧,造成的危害则是权限绕过但不局限于只拿到用户登录凭证。

所有的美国网件系列路由器都有这样一个页面‘currentsetting.htm’ 可以查看型号和固件版本的特权页面,即不需登陆便可访问该页面。

下载V1.0.0.28_1.0.28 RegionTag版本的固件binwalk解包分析

http://www.downloads.netgear.com/files/GDC/DGND3700/DGND3700v1-V1.0.0.28_1.0.28.zip

本文的例子则是通过访问个别页面拿到路由器的登录凭证,既然是访问一个页面就能获得密码,先看一下www下目录的这个页面:文件搜索password

ppoe界面中的密码,还有修改密码界面,字符串的略过,主要是htm含有password和变量同时存在 这样在某些特殊时候访问这个界面他会加载某些文件将配置信息或者其他本地信息通过html变量元素显示出来,比如:

对于这种信息泄露的挖掘方法,在没有实物的前提下可以去解固件,不影响设备正常运行的情况下,可以去访问公网存在的设备,主要区分就是需要登陆访问的页面和不需要登陆就能访问的页面,挖掘肯定是先去研究不需要登陆的就能访问的页面。

可以写个脚本这样方便我们去进一步研究,接下来从固件层面去看一下,既然是http请求所以分析的程序则是usr/sbin/httpd 。

根据文末我参考之前的类似的漏洞,所以也试着查找未授权访问的页面处理逻辑 搜索字符串BSW

其中下面这部分是处理不需登陆可访问页面的函数:

像不需要登陆就可以访问的页面。如果可以修改密码,当然也属于越权操作了。

像这种不需要登陆就可以访问并还可用户输入的页面,可以着重分析固件中数据的处理流程。通常关于服务(ntp/tftp/soap/ppoe等)或者涉及到系统配置,更改后重启的功能,是命令注入比较容易出现的地方。

通过下面两个请求的uri可以泄露账号和密码,美国网件系列默认用户名 admin。

第一处密码泄露在 blkCgi_wsw_summary 这个函数中,功能猜测应该是第一次配置完有线路由器连接后所的操作,根据页面提示你下一步你配置无线络,acosNvramConfig_set 正是设置路由的一些基本配置包括广域网网络状态,也包含路由器的登陆密码,BSW_cxttongr.htm去读取Nvram配置信息中就含有密码,关于什么是Nvram

第二处泄露在blkCgi_wsw_passwd_edit这个函数中,猜测是修改密码后成功后返回的页面,然而这个页面在不修改账号密码时也可以访问,账号密码是在response的注释中,显然这是开发的失误。

公网抽取100个DGN2200型号设备 受影响45个 版本号如下: ``` ['V1.0.0.36_7.0.36\r\n']

['V1.0.0.55_7.0.55\r\n']

['V1.0.0.20_4.0.20\r\n']

['V1.0.0.50_7.0.50NA\r\n']

['V1.0.0.36_7.0.36\r\n']

['V1.0.0.50_7.0.50\r\n']

['V1.0.0.46_7.0.44\r\n']

['V1.0.0.20_5.0.34\r\n'] ```

公网抽取100个DGND3700型号设备 受影响29个 版本号如下 ``` ['V1.0.0.12_1.0.12\r\n']

['V1.0.0.28_1.0.28\r\n']

['V1.0.0.17_1.0.17\r\n']

```

思路可参考:

  • https://www.compass-security.com/fileadmin/Datein/Research/Advisories/CSNC-2015-007_Netgear_WNR1000v4_AuthBypass.txt

  • https://shadow-file.blogspot.ro/2013/10/complete-persistent-compromise-of.html

关于参考例子的漏洞复现