IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    烽火(Fiberhome)HG-110 设备目录穿越漏洞考察

    明冉 刘发表于 2015-04-03 07:31:34
    love 0

    烽火(Fiberhome)HG-110设备目录穿越漏洞考_微信封面图_黄色波形

    知道创宇安全研究团队 2015 . 03 . 31          本文 PDF 下载:烽火HG-110设备录穿越漏洞考察


    1.更新情况

    版本:第一版

    时间:2015 / 3 / 31

    描述:第一版完成

    2.漏洞概要

    近期,国外安全研究员发布了针对全球 ADSL 设备存在目录穿越漏洞的研究<网页链接1>,这个漏洞早在 2011 年就被提出了,影响烽火(Fiberhome)HG-110 型号设备<网页链接2>,本着学习的态度,笔者对该漏洞进行了一番考证,写在这里。

    a)漏洞描述

    烽火(Fiberhome)HG-110 型号设备目录穿越漏洞<网页链接3>,是由于 webproc 文件在处理参数 getpage 传递过来的文件访问时没有合适过滤,导致用户可以利用 ../../ 跳转访问 web 目录之外的系统文件。

    b)漏洞分析

    烽火(Fiberhome)HG-110 型号设备目录穿越漏洞在 exploit-db 上被提交了两次<网页链接4>,其中 poc 35597 需要登录授权才能触发漏洞,poc 28450 的 poc 可以绕过权限认证;笔者在 ZoomEye 上检索 HG-110,可惜找不到任何实例,但是检索到了另外一款存在漏洞的设备,由于无法得知其设备名称,简称为 PLC 设备吧(管理页面内有 PLC 字样),本文漏洞分析就以它为例。

    在跟踪烽火(Fiberhome)HG-110 设备时,发现其实 netgear 竟然也存在这个漏洞,该漏洞被提交在 exploit-db 上<网页链接5>,影响 NETGEAR WNR500 设备(固件1.0.7.2),WNR500 设备固件是开源的,可以从这里下载:<网页链接6>,

    在 WNR500 最新固件 1.0.8.1 的源码中,我们发现,代码的版权属于 T&W; 公司,经过检索,T&W; 属于一家国内的 IT 公司<网页链接7>,代码截图:

    image002

    由此可以推测,烽火公司和 NETGEAR 公司均使用了 T&W; 公司的固件,才导致出现相同的漏洞。同时,难道仅此两家吗?不,PLC 也存在同样问题,或许有更多使用该固件的设备,只是未发掘出来。

    PLC 在登录后存在同样问题,可以读取系统配置文件 config.xml:<网页链接8>

    结果如图:

    image003_1

    可以读取内存信息:<网页链接9>

    结果如图:

    image004_1

    可以读取系统帐号信息:<网页链接10>

    结果如图:

    image005_1

    PLC 的问题是有趣的。PLC 从 80 端口访问是需要登录的,然而 80 端口是不可以从外网访问的,而 8080 端口可以从外网访问,并且提供同样的 Web 服务,更重要的是,他可以直接登录设备 Web 管理后台,不需要验证!不知道 PLC 设备的开发者是怎么想的,笔者想知道的是为什么 8080 端口就可以直接登录了,下载 Web 服务进程 mini_http 文件,载入 IDA 分析。

    mini_http 进程启动后会监听 4 个端口,分别是 80,808,1050,8080:

    image006

    mini_http 通过 getsockname() 函数区分哪个端口来的访问做什么响应:

    image007

    如果是 8080 端口来的访问,那就直接重定向到一个 URL:<网页链接11>

    如图:

    image008

    注意到这个 Location 的重定向跳转中带有一个 retag=1 的参数,经过测试,如果有这个参数就可以不需要口令认证直接登录 PLC 设备 Web 管理后台,看来问题在 retag 这个参数。

    跳转到/cgi-bin/webproc 就交给 CGI 文件 webproc 处理了,把 webproc 下载并放入 IDA 分析,我们发现,webproc 文件会判断提交的参数中是否有 retag 参数:

    image009

    如果有的话,把 sessionid 内容写入/var/redsessiond 文件:

    image010

    在这里,把外部传递过来的 session 提交给 system() 函数,是可以造成命令注入漏洞的,重点不在此,不表。

    那么为什么 retag=1 就可以登录了呢,笔者分析了 webproc 的上下文,始终没有找到原因(也可能是能力问题),纠结几天后,笔者决定把 PLC 设备中所有的进程都分析一遍,终于发现了问题所在,问题在于 logic 进程文件,下载 logic 文件,载入 IDA 分析。

    logic 接收消息,如果收到消息中是“check”则读取/var/redsession 文件中的数据:

    image011

    接下来把 session 增加到授权 session 列表内,并删除/var/redsession 文件:

    image012

    那 logic 进程是谁发给他的 check 消息呢,代码在 webproc 文件中。

    在对 sessionid 的验证中会调用 CheckAuth() 函数:

    image013

    CheckAuth() 函数就会发送 check 消息:

    image014

    到此,PLC 设备的登录绕过漏洞分析完毕。

    笔者在研究中发现,PLC 设备的 webproc 文件和 NETGEAR 的 webproc 文件是不完全一样的,NETGEAR 没有针对 retag 参数的判断,由此可以推断 PLC 设备固件是对 T&W; 固件的二次开发。

    c)漏洞修复

    PLC 设备笔者无法查找其生产商,所以在漏洞修复升级固件更是无从谈起,如果你恰好用的这款设备,那么建议你从内网 telnet 登录该设备,用户名和密码都是 root,然后在/var/目录下创建 redsession 文件夹:mkdir /var/redsession

    这样就可以修复 8080 端口的登录绕过漏洞了。

    至于目录穿越漏洞,笔者无能为力,不过至少利用该漏洞需要授权登录,危害较小。

    3.ZoomEye 检测报告

    在 ZoomEye 中搜索 webproc 字样:

    ze_3178

    我们找到 3178 条记录,这仅仅是暴漏在外网的 PLC 设备漏洞,其他使用 T&W; 公司固件的设备恐怕更多!

    4.相关资源链接

    1.来源于 CSOONLINE

    2.来源于 FreeBuf

    3.来源于 Exploit-db

    4.来源于 Seclists


    注:封面图元素来源于网络



沪ICP备19023445号-2号
友情链接