前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DDP协议设备的探测与攻击研究

DDP协议设备的探测与攻击研究

作者头像
FB客服
发布2020-07-22 15:41:58
2.3K0
发布2020-07-22 15:41:58
举报
文章被收录于专栏:FreeBufFreeBuf

一、DDP协议简介

DDP协议是数据终端单元(DTU)与数据服务中心(DSC)之间的通讯协议,用于数据的传输和DTU管理。本文主要针对DDP协议基于tcp/ip的数据传输方式进行的分析研究。

二、环境搭建

这里环境搭建比较简单,在网上找到了DTU与DSC的工具,直接运行,然后将DTU注册到DSC上即可,如下图所示:

其中DSC设置的端口为宏电默认端口5002,DTU配置的端口为5001,验证手机号为22222222222,传输协议为UDP

三、DSC探测

对于DSC的探测,DDP协议本身对于一些关键字段如手机号,ip地址,端口号等没有进行有效的效验,所以我们可以通过构造注册包的方式来进行探测DSC设备,注册包构造如下:

起始标志:7b(1B)

数据包类型:01(1B)(终端请求注册)

数据包长度:0016(2B)

DTU身份识别:

3133393131313131313132(11B)(对于身份识别ddp协议并未验证有效性,因此设置任意11位数字即可)

ip地址:c0a80101(4B)(ip地址也未进行校验,可以设置任意合法的ip地址,这里我们设置的是192.168.1.1)

端口号:1390(2B)(端口号同样未校验,可以设置任意合法端口,这里我们设置的为5008)

结束标志:7b(1B)

将上述注册包发送给DSC后可以看到已经注册成功:

wireshark抓包如下:

判断方法为响应包的起始两位为7b81,结束为7b,只要符合该数据格式,我们就可以认定我们探测的目标为DSC了。

为了不对DSC造成任何影响,当我们探测成功后最好发送一个注销包,格式如下: 起始位:7b(1B)

数据包类型:02(1B)

数据包长度:0010(2B)

DTU身份识别:

3133393131313131313132(11B)(与注册包的一致)

结束位:7b(1B)

发送注销包之后,我们之前的注册信息将不会在DSC上存留。

四、DSC攻击

由于DDP协议缺少有效的验证,所以导致DSC容易受到如下几种方式的攻击:

恶意注册大量非法DTU,在同一时间内发送大量的注册包到DSC上,消耗DSC的大量资源甚至导致系统崩溃

恶意注销已经注册的正常DTU,因为DSC在注销DTU的时候仅将DTU身份识别号作为唯一特征,所以我们在构造注销包的时候可以将身份识别号任意改变,这样可以通过爆破的方式对DSC不断发送注销包,导致已经注册的DTU非正常下线。以上述工具的DSC,DTU为例,身份识别号为22222222222的DTU已经注册到DSC上,这时候我们发送一个携带该身份识别号的注销包发送到DSC上,其结果如图所示:

可以看到DSC上已经显示22222222222的DTU已经下线了,但是该DTU端却依然是登录状态

wireshark抓到我们恶意注销包的响应包如下:

起始和结束为均为7b,第二位82代表注销成功,5-15表示成功注册掉的DTU的身份识别号。

五、DTU探测

由于DTU是客户端,所以仅支持UDP传输方式的DTU探测,经过研究发现,针对已经注册成功的DTU,我们构造如下数据包: 起始位:7b(1B)

数据包类型:81(1B)

数据包长度:0010(2B)

任意11位数字:

3131313131313131313131(11B)

结束位:7b(1B)

对于DTU设备,收到上述数据包后,会返回一个携带自己身份识别号的数据包,这样我们不仅可以探测到该设备为DTU,甚至可以获得DTU的身份识别号,整个过程wireshark抓包如下:

其中第一个包为真实DTU向DSC的注册包,第二个为DSC响应的注册成功包,图中展示的第三个包就是我们构造想DTU发送的数据包,DTU的响应包如下:

可以看到响应包中携带了DTU的**识别号,因此我们探测DTU的方法为发送构造的数据包,判断响应包的特征位,如果符合,则进一步提取DTU的身份识别号。

六、DTU攻击

由于在探测过程中我们可以获取DTU的**识别号,所以我们可以利用该身份识别号绕过DSC直接强制DTU下载,我们接着第五步介绍的继续进行操作,此时我们已经获取了DTU的身份识别号为222222222222,然后我们利用该识别号构造如下数据包:

起始位:7b(1B)

数据包类型:82(1B)

数据包长度:0010(2B)

DTU的身份识别号:3232323232323232323232(11B)

结束为:7b(1B)

正常状态如图所示:

然后我们发送上述构造的数据包后,状态如图所示:

可以看到DTU端已经下线,但是DSC依然显示DTU在线。

七、总结

本文主要针对DDP协议的TCP/IP传输方式,提供了探测DSC以及DTU的一种方法,并提出了部分容易受到攻击的方式,由于未在真实场景下验证,所以可行性尚待验证,还希望各位大佬多多指教。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、环境搭建
  • 三、DSC探测
  • 四、DSC攻击
  • 五、DTU探测
  • 六、DTU攻击
  • 七、总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档