DDP协议设备的探测与攻击研究
2021-11-21 10:25:00 Author: mp.weixin.qq.com(查看原文) 阅读量:30 收藏

原文来源 :Freebuf

原文链接:

https://mp.weixin.qq.com/s/Y-9du59Vk0ACcSFUbgCuTA

一、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的一种方法,并提出了部分容易受到攻击的方式,由于未在真实场景下验证,所以可行性尚待验证,还希望各位大佬多多指教。

侵权请私聊公众号删文



文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650527262&idx=3&sn=00548059327f571456c441cda1b32288&chksm=83bab3fab4cd3aecca22623c101c3e95fdeaece5d2587c979df6eeba38a9f17066222632ef9b#rd
如有侵权请联系:admin#unsafe.sh