UPnP协议利用

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,694评论 2 56
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,739评论 19 139
  • LT-0807,2018.03.11翻译,@成都 声明 本文是一篇关于TCP/IP协议组件的RFC,聚焦于一个IP...
    摩诃婆罗多阅读 9,627评论 1 5
  • 简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者...
    保川阅读 11,177评论 1 13
  • 今天原本是要开始工作的,娃起床太晚,送走他们爷俩去了儿童乐园,已经快十二点,吃完午饭,又拾掇拾掇,睡午觉起来...
    秋水长天碧阅读 780评论 1 0