windows协议详解之-RPC/SMB/LDAP/LSA/SAM域控协议关系

如果你在windows域控环境中,例如企业的网络中开启wireshark抓包,你一定会遇到一大堆各种各样的协议。不同于互联网服务(大多基于HTTP),为了实现域控中各种各样的服务,windows的域控环境中采用了非常多的协议,例如LDAP,LSA,SAM等,因此有必要对域控中的协议做一个整体的介绍。 本文通过对域控协议之间关系的梳理,从整体上了解各个协议之间的关系,作为专栏《计算机网络协议快速入门教程》中的一篇。

windows有多少协议

在windows巨大的生态系统中,为了各种终端,用户,服务之间的互操作性,创建了大量的协议,那么windows究竟有多少种网络协议呢。在windows的说明文档,这里,列举介绍了大量的协议。其中有的协议比较罕见,有的协议则比较常见。本专栏无意去介绍所有的协议,但是对于域控环境中经常遇到的协议,会在后续的文章中议通过数据包的分析逐个介绍,windows对诸多的协议进行了分类,如下的分类是域控环境中常见的协议:

  • 活动目录协议:活动目录相关协议提供目录服务,为域控服务器的主要功能,这是域控环境的基础,常见的活动目录协议相关包括LDAP,SAM,LSA等。
  • 认证服务协议:认证服务协议用以鉴定用户,设备以及服务权限,域控环境中常见的认证服务协议包括,kerberos,NTLM,SPNG等。
  • 文件访问协议:针对网络中文件的增删改查,windows常见的文件访问协议包括CIFS,SMB,SMB2,DFS等。
  • windows管理协议:为不同系统之间的查询和操作提供可能,WMI的功能是最为常见的,相关协议包括基于DCOM的WMI,PSRP等。

关于域控服务

windows域环境是由域控服务器和众多终端和应用服务器组成的一套网络环境,windows提供的很多协议都和域控服务器相关。域控服务器提供目录服务,即中央集权式的用户认证,权限管理,证书管理,组策略等,域控服务器提供相关的服务功能如下图1:

图1

为了实现上图1的各种服务,windows采用通用协议和重新设计专有协议满足服务间通信的需求。如下:

  • 通用协议,例如DNS,kerberos,LDAP,TCP/IP,DCE/RPC等,这些协议不仅可以使用在windows的域环境中,在其他非windows域环境中也被大量的使用。例如DNS在互联网中被用来进行域名的解析,kerberos被各种应用用来进行身份的认证。其中DNS的介绍见这里,kerberos介绍见这里,DCE/RPC介绍见这里。但是其中一些协议针对windows特有环境做了扩展,例如kerberos,DCE/RPC等。
  • 专有协议,例如LSA,SAM,SMB,DCOM等,这些协议基本是微软开发针对windows域环境所应用的协议,用于域环境中各个主机之间交互。例如SAM协议就是用来实现用户和组的增删改查等服务。

域环境协议间关系

那么这些通用协议和专用协议之间如何配合完成图1中的服务呢。在前面SMB文章的介绍中可知SMB协议既可以独立作为文件共享协议完成文件的增删改查功能,也可以作为传输协议,承载更高层应用,在之前的SMB中说明了其和RPC以及TCP等协议的关系,这里,如下图2:

图2

可以看到SMB可以基于QUIC,NETBIOS,TCP,认证阶段可以借助SPNG调用Kerberos或者NTLM,也可以承载DCE/RPC等其他协议。当然RPC不仅可以基于SMB还可以直接使用TCP作为传输层协议,在前面的文章中有所提及,这里,如下图3:

图3

图2,图3的其中一个数据包示例如下图4:

图4

而对于windows域控服务器上的目录服务所设计的专有协议,很多都是基于RPC来实现服务的调用,如下图5:

图5

需要注意的是图5中的Network Transports既可以是常见的TCP/UDP等协议,也可以是SMB,Netbios等,即图3中的面向连接和非连接所示。图5中RPC承载的上层协议即为活动目录相关协议,活动目录相关协议包含如下图6几类:

图6

  • LDAP全称是Lightweight Directory Access Protocol,,该协议用于实现对于活动目录树中对象的读写。DSSP全称Directory Services Setup Remote Protocol用来检索域中或者非域控工作组中机器的状态。
  • LSA全称是Local Security Authority,用于实现客户端查询域控策略信息和将安全标识符SID转换成为可读的内容。LSAD,即用于查询域控策略,LSAT即用于SID和对应解释之间的映射转换等。
  • SAM的全称是Security Account Manager ,该协议是实现用户和组的增删改查等服务,其中SAMR协议用于终端和SAM服务之间的通信,SAMS用户不同SAM服务之间的数据交互(即不同域控服务器之间的SAM服务)。

上述的LSA以及SAM相关的功能在客户端都是一个叫做lsass.exe的进程实现的,对应的程序路径为%SystemRoot%\System32\Lsass.exe,lsass是windows系统组件,管理着windows所有的安全相关的策略,例如用户的登录认证,权限验证等,通常工作在用户态,lsass包含下图7的功能:

图7

图7可知通常LSA和SAM功能模块会优先本地的数据库进行查询实现,如果本地的数据库中没有对应的信息,则会使用LSA以及SAM相关的协议到域控服务器中进行查询。

至此域环境中的协议之间的总体关系介绍就完成了,后在后续的文章会针对每一个协议的功能交互进行讲述。

本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里

相关推荐
西电研梦4 小时前
考研倒计时30天丨和西电一起向前!再向前!
人工智能·考研·1024程序员节·西电·西安电子科技大学
惜.己4 小时前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
·云扬·12 小时前
Java IO 与 BIO、NIO、AIO 详解
java·开发语言·笔记·学习·nio·1024程序员节
网安_秋刀鱼15 小时前
PHP代码审计 --MVC模型开发框架&rce示例
开发语言·web安全·网络安全·php·mvc·1024程序员节
HUODUNYUN1 天前
小程序免备案:快速部署与优化的全攻略
服务器·网络·web安全·小程序·1024程序员节
惜.己1 天前
Jmeter的后置处理器(二)
测试工具·github·1024程序员节
惜.己1 天前
Jmeter中的断言(一)
测试工具·jmeter·1024程序员节
cainiao0806052 天前
《物理学进展》
1024程序员节·核心期刊·知网期刊·职称评审
FFDUST2 天前
C++ —— string类(上)
c语言·开发语言·数据结构·c++·stl·1024程序员节
惜.己2 天前
Jmeter中的断言(三)
测试工具·jmeter·1024程序员节