手把手玩转路由器漏洞挖掘系列 - UPNP协议安全风险
- 设备 - UPNP规范中的最基本单元。代表一个物理设备或包含多个物理设备的逻辑设备。
- 服务 - UPNP规范中的最小控制单元。代表设备提供的服务及调用API接口。
- 控制点 - UPNP所在网络的其他网络中UPNP设备。
- 发现 - 简单发现服务
- 描述 - 通过远程访问URL,XML文件格式显示服务相关信息
- 控制 - 控制信息使用SOAP协议,XML文件格式显示。
- 路由器设备作为代理,对内网进行渗透测试
- 开启端口映射,访问内部计算机
开启服务汇总
<serviceType>urn:schemas-upnp-org:service:Layer3Forwarding:1serviceType><serviceId>urn:upnp-org:serviceId:L3Forwarding1serviceId>
<SCPDURL>/L3F.xmlSCPDURL>
<controlURL>/ctl/L3FcontrolURL>
<eventSubURL>/evt/L3FeventSubURL>
<serviceType>urn:schemas-upnp-org:service:DeviceProtection:1serviceType>
<serviceId>urn:upnp-org:serviceId:DeviceProtection1serviceId>
<SCPDURL>/DP.xmlSCPDURL>
<controlURL>/ctl/DPcontrolURL>
<eventSubURL>/evt/DPeventSubURL>
<serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1serviceType>
<serviceId>urn:upnp-org:serviceId:WANCommonIFC1serviceId>
<SCPDURL>/WANCfg.xmlSCPDURL>
<controlURL>/ctl/CmnIfCfgcontrolURL>
<eventSubURL>/evt/CmnIfCfgeventSubURL>
<serviceType>urn:schemas-upnp-org:service:WANIPConnection:2serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPConn1serviceId>
<SCPDURL>/WANIPCn.xmlSCPDURL>
<controlURL>/ctl/IPConncontrolURL>
<eventSubURL>/evt/IPConneventSubURL>
<serviceType>urn:schemas-upnp-org:service:WANIPv6FirewallControl:1serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPv6Firewall1serviceId>
<SCPDURL>/WANIP6FC.xmlSCPDURL>
<controlURL>/ctl/IP6FCtlcontrolURL>
<eventSubURL>/evt/IP6FCtleventSubURL
ControlURL是与特定服务进行通信的SOAP端点(实质上,该URL的GET / POST将触发操作)。3.2 服务操作(SOAP)假若路由器设备SOAP API暴露,我们就可以对设备进行操作,从而绕过防护。(1) 直接访问控制查看具体服务参数及对应接口(2) 端口映射操作Miranda是Kali提供的一款基于Python语言的UPNP客户端工具。它可以用来发现、查询和操作UPNP设备,尤其是网关设置。当路由器开启UPNP功能,存在相应的漏洞,就可以通过Miranda进行渗透和控制。https://github.com/kimocoder/miranda
优势 - 无需认证
- 将路由器80端口映射在外网端口8443
- 获取设备端口映射列表
- 查看后端端口映射是否添加成功
- 查看映射是否成功
- 通过SCPD获取服务控制协议文档,查看可利用服务。
- 通过SOAP进行可利用服务操作,获取设备相关敏感信息及相应权限。