手把手玩转路由器漏洞挖掘系列 – UPNP协议安全风险

IoT 4个月前 admin
53 0 0

1. 基本介绍

1.1 概要

通用即插即用(英语:Universal Plug and Play,简称UPnP)是由“通用即插即用论坛”(UPnP™ Forum)推广的一套网络协议。该协议的目标是使家庭网络(数据共享、通信和娱乐)和公司网络中的各种设备能够相互无缝连接,并简化相关网络的实现。UPnP通过定义和发布基于开放、因特网通讯网协议标准的UPnP设备控制协议来实现这一目标。

1.2 结构组成

  • 设备 – UPNP规范中的最基本单元。代表一个物理设备或包含多个物理设备的逻辑设备。
  • 服务 – UPNP规范中的最小控制单元。代表设备提供的服务及调用API接口。
  • 控制点 – UPNP所在网络的其他网络中UPNP设备。

1.3 协议过程

  • 发现 – 简单发现服务
  • 描述 – 通过远程访问URL,XML文件格式显示服务相关信息
  • 控制 – 控制信息使用SOAP协议,XML文件格式显示。

2. 安全风险

UPnP由于设计上的缺陷而产生的漏洞,这些其中大多数漏洞是由于服务配置错误或实施不当造成的。
  • 路由器设备作为代理,对内网进行渗透测试
  • 开启端口映射,访问内部计算机

3. 威胁分析

3.1 获得服务控制协议文档(SCPD)

(1) 部分开启服务 – 1

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

(2) 部分开启服务 – 2

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

开启服务汇总

<serviceType>urn:schemas-upnp-org:service:Layer3Forwarding:1</serviceType>
<serviceId>urn:upnp-org:serviceId:L3Forwarding1</serviceId>
<SCPDURL>/L3F.xml</SCPDURL>
<controlURL>/ctl/L3F</controlURL>
<eventSubURL>/evt/L3F</eventSubURL>

<serviceType>urn:schemas-upnp-org:service:DeviceProtection:1</serviceType>
<serviceId>urn:upnp-org:serviceId:DeviceProtection1</serviceId>
<SCPDURL>/DP.xml</SCPDURL>
<controlURL>/ctl/DP</controlURL>
<eventSubURL>/evt/DP</eventSubURL>

<serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId>
<SCPDURL>/WANCfg.xml</SCPDURL>
<controlURL>/ctl/CmnIfCfg</controlURL>
<eventSubURL>/evt/CmnIfCfg</eventSubURL>

<serviceType>urn:schemas-upnp-org:service:WANIPConnection:2</serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId>
<SCPDURL>/WANIPCn.xml</SCPDURL>
<controlURL>/ctl/IPConn</controlURL>
<eventSubURL>/evt/IPConn</eventSubURL>

<serviceType>urn:schemas-upnp-org:service:WANIPv6FirewallControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPv6Firewall1</serviceId>
<SCPDURL>/WANIP6FC.xml</SCPDURL>
<controlURL>/ctl/IP6FCtl</controlURL>
<eventSubURL>/evt/IP6FCtl</eventSubURL
ControlURL是与特定服务进行通信的SOAP端点(实质上,该URL的GET / POST将触发操作)。

3.2 服务操作(SOAP)

假若路由器设备SOAP API暴露,我们就可以对设备进行操作,从而绕过防护。
(1) 直接访问控制

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

查看具体服务参数及对应接口

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

(2) 端口映射操作
Miranda是Kali提供的一款基于Python语言的UPNP客户端工具。它可以用来发现、查询和操作UPNP设备,尤其是网关设置。当路由器开启UPNP功能,存在相应的漏洞,就可以通过Miranda进行渗透和控制。
https://github.com/kimocoder/miranda

优势 – 无需认证

  • 将路由器80端口映射在外网端口8443
$ upnp> host send 0 WANConnectionDevice WANIPConnection AddPortMapping

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

  • 获取设备端口映射列表

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

  • 查看后端端口映射是否添加成功

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

  • 查看映射是否成功

手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险

4. 安全风险

①代理跳板:黑客可以利用路由器的某些服务接管路由器的设备权限。
②内网渗透:边界设备开启UPNP没有做好鉴权处理,会导致攻击者通过该服务队内部网络进行内部渗透。

5. UPNP攻击面

  • 通过SCPD获取服务控制协议文档,查看可利用服务。
  • 通过SOAP进行可利用服务操作,获取设备相关敏感信息及相应权限。

总结

UPNP协议通过端口转发和映射等功能,简化网络设备的安全配置,提供更方便的用户体验的同时,也带来不小的安全威胁。这就需要管理者花时间去研究如何调整UPnP的设置,而不是通过部署或优化其他安全组件,来提高其所处网络的整体安全态势。


原文始发于微信公众号(山石网科安全技术研究院):手把手玩转路由器漏洞挖掘系列 – UPNP协议安全风险

版权声明:admin 发表于 2024年1月3日 下午5:47。
转载请注明:手把手玩转路由器漏洞挖掘系列 – UPNP协议安全风险 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...