AD

WiMAX漏洞一箩筐

       安全研究人员在ZyXEL 官网上获取到一个WiMAX 设备固件,分析固件文件系统结构,发现 在/var/www 目录下,是HTML 视图模板文件。随后发现web server的执行路径为:/bin/mini_httpd.elf,然后发现有一个函数通过dlopen()库函数从/lib/web_plugin 目录加载库文件。然后在/lib/web_plugin目录下,研究人员发现了名为libmtk_httpd_plugin.so的动态链接库文件, 在mime_handlers 符号连接处, 有一个用于描述针对不同的MIME 如何处理的结构数组。libmtk_httpd_plugin.so 库中包含了对于http请求的处理函数。
       对于每一个接收到的HTTP请求,web server 都会根据上述提到的MIME结构数组找到匹配项,如果匹配ok,则从这个匹配结果中找到相应的请求处理函数并调用之。
       根据上述提到的MIME结构数组的特征,研究人员找到了mime_handlers 符号列表中的入口项。
        在上图的mime_handlers 符号列表中的入口项的结构中,有一个枚举类型,这个枚举类型标识是否当前用户的请求应该被认证或者不认证(AUTH_REQUIRED/UNAUTHENTICATED),其中很多的URIs是不需要任何认证的,研究人员发现cgi接口:commit2.cgi ,这个URL的处理函数将POST请求的参数和值都存在在内置数据库中(key-value 存储形式,也可能存在NVRAM中)。
       利用方式:通过提交POST请求,参数为ADMIN_PASSWORD=xxxx (xxx为你要修改后的管理员密码)到commit2.cgi,即可修改管理员的密码,从而可以通过web 界面成功登录
OEM后面密码:
      可以通过web控制台开启SSH和Telnet 远程登录功能,发现了若干硬编码的类似 Unix形式的密码hash串。
     位于minihttpd.trans中的hash,在minihttpd.trans中,这个脚本会在系统启动的时修改/etc/passwd 和/etc/shadow 两个文件的内容,从而添加后门用户。
     后门用户 mfgroot 的密码hash一直没变,都是h$1$.3r0/KnH$eR.mFSJKIiY.y2QsJVsYK. (明文为: %TGBnhy6m), root 密码hash根据系统变量ZY_CUSTOMER的不同而不一样,在不同的设备商的固件中root密码hash也不一样。
       hash list:
       Greenpacket:
       $1$38HlpaTA$bVNplU36JnUr.Xt1IHDCV/

       华为:
      $1$k2I9hJe4$Vg4Qw0w5IwMWb8GlfYhoi1
      $1$7cHnPpHF$GbYUst3uAh0sFix3fz7B21
     
      Mitrastar:
      $1$k2I9hJe4$VibREr.QRvL4HUkaUAyDr1

      ZyXEL:
      $1$T6ecjm0M$EzKDcv0pezh9OItLRG8hY/

      ZTE:
      $1$k2I9hJe4$VibREr.QRvL4HUkaUAyDr1



评论

此博客中的热门博文

简单粗暴导出小米便签

我——终于一个人了

Ubiquiti_Networks_UniFi_Cloud_Key_authed_rce