美文网首页
UPnP协议利用

UPnP协议利用

作者: 骑猪满天飞 | 来源:发表于2018-05-02 21:03 被阅读0次

1.UPnP介绍


UPnP为即插即用的缩写(Universal Plug and Play)是一套网络协议。适用于家庭网络,用于设备间的发现和连接。希望实现任何设备只要一接入网络就能被网络中的所有其它设备发现,做到完全的即插即用。

2.UPnP工作方式


image

2.1寻址

每台设备通过IP的方式进行寻址,设备首次加入网络时通过DHCP服务获取IP,或者通过静态IP设置获得IP

2.2发现

UPnP通过SSDP(简单服务发现协议)完成设备的发现。

1)当设备加入网路时它向UPnP专用的组播地址(239.255.255.250:1900)发送消息宣告自己的存在。

NOTIFY * HTTP/1.1  
Host:239.255.255.250:1900  
Cache-control:max-age=1800  
Location:http://192.168.0.1:49152/des.xml  
Nt:upnp:rootdevice  
Nts:ssdp:alive  
Usn:uuid:de5d6118-bfcb-918e-0000-00001eccef34::upnp:rootdevice  

Location:设备描述文件的URL。

2)UPnP的控制点(如路由器)为发现设备将向组播发送如下消息:

M-SEARCH* HTTP/1.1  
Host:239.255.255.250:1900  
Man:"ssdp:discover"  
Mx:5  
ST:ssdp:rootdevice 

2.3描述

设备描述文件的URL包含在设备加入网络时发送的消息中

 Location:http://192.168.0.1:49152/des.xml 

这个xml文件可直接通过url访问。其中包含了设备的类型,设备提供的服务。

2.4控制

UPnP通过SOAP协议控制设备,按照XML描述文件中的信息,以Device(设备)+Service(设备的服务)+action(动作)+Variable(值)的形式控制设备。

3.UPnP协议利用


UPnP协议无任何身份验证机制,并且现在大部分路由器都默认开启了UPnP服务。大量的设备可利用UPnP进行配置修改。
通过UPnP协议在内网可以干很多事情如:端口转换,动态DNS,查看设备状态等。

3.1UPnP利用工具:miranda

Miranda是Kali提供的一款基于Python语言的UPNP客户端工具。它可以用来发现、查询和操作UPNP设备,尤其是网关设置。

miranda

miranda拥有独立的命令行界面可使用Tab键补齐命令。
通过help可列出miranda的命令。


3.2设备发现

  • pcap:被动发现设备通过嗅探设备接入网络时发送的NOTIFY消息获取设备信息。
  • msearch:通过主动发送M-serach消息来发现设备。(一般使用msearch比较快)
设备发现

发现设备后可用host命令来查看详细信息。

  • host list:查看发现的设备列表
  • host get <n>:获取信息(查询summary之前需执行)
  • host info <n>:显示查询到的信息
  • host summary 0 :显示xml文件的摘要信息
    (n为设备在列表中的编号)
host命令

3.3利用

获取设备列表
host info 0 deviceList
获取设备支持的命令/服务信息(命令很长使用Tab键补齐很方便 )
host info 0 deviceList WANConnectionDevice services WANIPConnection actions

获取服务信息

已添加端口映射为例:
使用host send 0 <device name> <service name> <action name>命令对设备进行控制

控制

分别填入端口映射描述、持续时间、需要做端口映射的内网计算机IP、
是否启用、外网端口、外网主机范围、协议、内网的端口

端口转发1 端口转发2

打开路由器可以发现这条规则已经添加


结果

参考文章:


https://blog.csdn.net/braddoris/article/details/41646789
https://tools.kali.org/information-gathering/miranda
https://dangfan.me/zh-Hans/posts/upnp-intro

相关文章

  • UPnP协议利用

    1.UPnP介绍 UPnP为即插即用的缩写(Universal Plug and Play)是一套网络协议。适用于...

  • 理解UPnP协议

    简介 UPnP 是针对智能家电、 无线设备以及各种外观尺寸的个人电脑的普遍对等(peer-to-peer)网络连接...

  • UPnP协议学习(一)

    概述 UPnP是通用即插即用(Universal Plug and Play)的缩写,它主要用于实现设备的智能互联...

  • 投屏协议 DLNA ---UPnP

    投屏协议 DLNA ---UPnP 投屏的应用场景视频投屏 AirPlay(苹果私有的协议) 无线投屏DLNA(...

  • 关于SSDP

    SSDP(简单服务发现协议)是应用层协议,是构成UPnP(通用即插即用)技术的核心协议之一。它为网络客户端(net...

  • 初识Upnp😴

    1Upnp简介 ? 由通用即插即用论坛推广的一套网络协议。该协议的目标是使得家庭网络和公司网络中的各种设备...

  • 路由器之UPnP协议

    前言 通用即插即用(英语:Universal Plug and Play,简称UPnP)是由“通用即插即用论坛”(...

  • P2P 网络核心技术:UPnP 和 SSDP 协议

    背景知识 UPnP, Universal Plug and Play,中文是 “通用即插即用”。在理解 UPnP ...

  • 【Swift】协议式编程使用(利用协议 给系统类扩展功能)

    Swift协议式编程使用 利用协议 给系统类扩展功能 Base:协议 Base:类 利用协议,实现类型判断

  • 使用Cling库实现AndroidDLNA功能

    DLNA是2003年左右诞生的一个局域网媒体内容共享解决方案,基于 UPnP 协议。现在应用比较多的地方就是通过手...

网友评论

      本文标题:UPnP协议利用

      本文链接:https://www.haomeiwen.com/subject/fkacrftx.html