基于bro的安全场景研究测试-RDP

前言

       最近突然有些想法,想要通过流量分析平台来查看一些安全行为的记录。想了一下就干脆开启一个专题课程,每一课对一种协议提出问题并操作,查看产生的记录,分析并解答疑惑,让自己的技术和对攻防检测的理解更加扎实和深入。本次我们对RDP协议提出一些问题并验证结

准备工作

通过搭建Bro+ELK的平台,来分析网络中的流量,环境搭建可以参考:https://logz.io/blog/bro-elk-part-1/

问题1:RDP端口未开放的连接,网络数据什么样?

正常的mstsc一般会发送3次请求,应用层发送数据和接受数据均为0,原始发送数据包长度为52bytes,原始接受数据包长度为40bytes。
image
偶尔会出现两个连接记录到一条日志的情况
image

问题2:RDP端口开启,但认证失败或没有进行认证,数据包什么样

rdp端口开启连接成功,但没有进行认证server端会返回2次5-6个包,这时应用层发送数据和接受数据已不为0
image

问题3:RDP连接成功,数据包是什么样

大小看操作时间、画面传输量等
image

问题4:通过RDP远程桌面复制文件到目标主机,是否记录在一条网络连接中

以传输一个150M的视频文件为例
image
经过确认,rdp远程桌面传输数据包会记录在一条网络连接的流量中
image
image

问题5:遭受暴力破解的情况下会生成什么样的流量

我是用nrcack进行了10次密码尝试得到的所有网络连接如下:
其中有数据传输的记录为10条、第一条为成功登陆的记录,从数据包中可以看出失败记录数据包固定为1604成功的数据包记录为2363,差距较小,上图中其他的数据包判断为破解程序线程太高被服务器丢弃导致
image
image
再使用hydra尝试10次登陆,同样有10条有数据包通讯的记录但是hydra的数据包大小与nrcack不同,可见数据包大小作为暴力破解的判断不能准确得出结论。而且hydra并没有暴力破解成功(字典存在的情况下,hydra真的没nrcack好用)记录的网络连接如下:
image

问题6:从数据包中得到远程登录用户名

cookie字段代表的是登录的用户名,不过在数据包中存在截断问题
image
image
cookie字段可以被工具伪造~
image

实验结论

1.可通过返回包的大小和个数判断主机是否开启3389端口,若没有开启那频繁连接多个主机的3389端口则存在扫描嫌疑
2.如果一个主机频繁针对3389端口发送较小的数据包可能存在暴力破解的嫌疑,该阈值我觉得5000以下
3.如果一个主机对多个主机的3389端口产生较大的连接,那可能在通过rdp协议传播蠕虫病毒文件。(PS由于蠕虫病毒文件大小不一且大部分情况下较小,通过阈值来判断可行性有待研究)
4.根据一些特殊的cookie来检测是否存在异常登录行为