域安全之LDAP读取控制

域安全之LDAP读取控制
Luis
AD 活动目录设计公平 开放,任何用户都能读取其他用户信息
微软建议单独建一个域管理特权账号,委派控制另一个域,其实还有更方便的办法

0x01 存在的风险

不知道大家有没有使用过AD Explorer和dsquery这两个工具?
当Red Team(后面简称RT)成功突破外网服务器并进入到内网后,这时候的主要目标就从外网突破转变为了内网的横向扩展。
如果内网存在域,并且RT在已经***成功的服务器上获取到了域内的一个普通账号,这时候,RT就可以使用dsquery命令和AD Explorer这两个工具,获取到域内所有服务器列表、用户列表、组织架构等敏感信息。

图一 AD Explorer

图二 dsquery computer

图三 dsquery user

图一、图二、图三分别展现了利用域内普通账号,通过AD Explorer和dsquery获取到的域内计算机和用户等信息。
有时候域管理员可能觉得,泄露了这些信息有什么关系呢?有了这些信息,RT相当于得到了一张完整的域内地图,需要关注哪个管理员、那个业务,靠着这张地图就可以很容易的找到。这些敏感信息极大的提高了RT的***效率,可以称为***测试中的“寻宝图”。
0x02 如何防御
在域的默认配置下,所有域内的用户都拥有LDAP服务的读取权限!不得不说,这个默认配置在域安全中是一个巨大的坑。并且绝大部分的域管理员并不会注意到这个问题的存在。但是这种***方法,又是RT所钟爱的方法之一。
那么我们如何对这种域内信息获取的方式进行防御呢?
其实,大部分的用户在域内是不需要LDAP读取权限的。我们可以通过在AD上,禁用普通用户的read和list权限,达到安全配置的目的。
0x03 具体设置
下面就以Windows Server 2012 R2为例,详细介绍一下安全配置的步骤。
一、 Ctrl+R,输入dsa.msc并运行。

二、 点击View,选择Advanced Features。

三、 添加一个用户组,如DisabelLDAPGroup。(https://s1.51cto.com/images/blog/201905/27/6da51318aba7d655b623c538d99a1f78.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

四、 在域的用户OU点击右键,选择Properties。
注意这里不能从根OU拒绝,因为组策略需要对用户和计算机下发,全部拒绝则代表用户、计算机名均无法识别,导致组策略下发失败

选择人员OU

五、 选择Security,并点击Advanced。

六、 在弹出的窗口中,点击Add。

七、 在弹出的窗口中,点击Select a principal,并在弹出的窗口中输入DisableDLAPGroup,点击ok。

八、 将滚动条拉到底部,选择Clear all,然后再拉到最顶部,在Permissions区选择List contents和Read all properties,在Type处选择Deny。

九、 点击所有对话框的OK按钮。
十、 把所有不需要LDAP读取权限的用户,添加到DisableLDAPGroup组当中。
在进行完以上操作,我们再使用dsquery和AD Explorer来读取信息试试。


可以看到,LDAP的读取操作被成功阻止了!
0x04 对业务的影响
很多管理员会问,这样做是可以防止RT非法读取LDAP信息,但是会对业务产生影响吗?
经过测试,禁用LDAP权限对域内计算机正常登陆、LDAP认证是不会产生任何影响的。
对于无LDAP读取权限的用户,要进行域用户、计算机、组的选择操作时,会出现错误。解决办法是,使用有权限的用户进行操作。由于此场景对于普通用户来说出现的并不多,所以影响处于可接受的范围内。
如果有业务确实要使用到LDAP来读取域内信息,可以创建专用账户,不添加到DisableLDAPGroup当中,即可满足相关的业务需要。
0x05 总结
LDAP任意用户读取权限的问题往往被很多管理员所忽略,却被很多Red Team所青睐。禁用普通用户的LDAP权限,可以有效防止域内信息的泄露,提高AD的安全性。

原文地址:https://blog.51cto.com/12197525/2401018

时间: 2024-10-08 16:14:31

域安全之LDAP读取控制的相关文章

APP-FND-00676: 弹性域例程 FDFGDC 无法读取为此说明性弹性域指定的默认引用字段

路径: AR: 设置- 财务系统 - 弹性域- 说明性 -注册 手工增加: RECEIPT_METHOD_ID 路径: AR: 设置- 财务系统 - 弹性域- 说明性 -段 路径:收款 - 收款 点 "冲销 " 按钮 报错信息 APP-FND-00676: 弹性域例程 FDFGDC 无法读取为此说明性弹性域指定的默认引用字段.开发员指定的上下文字段(通过 " 注册说明性弹性域 "表单)不在该表单的此块中. 措施:请与您的系统管理员联系,并为此说明性弹性域选择另一个默

跨域验证cookie与缓存控制

1. 是否能跨域完全取决于浏览器控制,浏览器可以直接拒绝发送跨域请求(服务器根本收不到),也可以发送给服务器等接收到返回信息后决定是否让它被读取. 2. 服务器并不能辨别请求是从哪个源发过来的,只有在客户端能够知道,因此浏览器承担起了这个责任,对于跨域ajax请求会自动添加origin头部,让服务器能够知道请求来自一个陌生的源.如果服务器觉得该源可信任,需要在response-header中增加字段Access-Control-Allow-Origin,告诉浏览器可以让请求源读取返回的报文.(也

关于AD域在通过LDAP认证登录时密码修改后还可使用旧密码正常登录问题解决方法

最近一直在做一个LDAP的管理认证登录平台,但是发现在Active Directory中修改用户账号密码后,LDAP认证还可以正常通过认证,并登录系统,这是什么原因了? 在查看相关资料后发现,系Active Directory原因造成:那么应该如何解决这个问题了,可以通过修改旧密码的生命周期时间可以解决此问题: 具体原因: ?域用户成功更改密码使用 NTLM 后,旧密码仍然可用于网络访问用户可定义的时间段.此行为允许帐户,如服务帐户,登录到多台计算机来访问网络,而密码更改会传播. ?密码的扩展寿

利用跨域请求来隐藏firbug控制台中的Ajax请求

普通jquery的Ajax请求在控制台中是可见的,如下: 而在利用jsonp(json with padding)进行Ajax跨域时,发现Ajax请求不会在控制台显示. 跨域代码如下: 前端代码: $.ajax({ type : "get", //jquey不支持post方式跨域 async:false, url : "http://www.cnblog.com", //跨域请求的URL dataType : "jsonp", //传递给后端,用

ASP.NET站点Windows身份验证集成AD域,非LDAP

.h2cls { background: #6fa833 none repeat scroll 0 0 !important; color: #fff; font-family: "微软雅黑", "宋体", "黑体", Arial; margin-bottom: 5px; padding-left: 15px } h3 { background-color: #f5f5f5; border-left: 13px solid #6fa833; co

乾颐盾之深信服防火墙 -----AD域集成

乾颐盾之深信服防火墙 -----AD域集成 在生活的环境中,或者是企业环境中,都会有一个微软的AD域的环境,那么我们深信服的下一代防火墙也有认证系统,要是为这个设备单独的做认证用户的话就比较的麻烦,对于用户来说有可能会有不同的密码,就会产生很多的麻烦.深信服可以集成系统的域环境,这样就可以让用户直接的使用自己原先在域中的用户名和密码. 下面我们简单的看下试验环境 实验环境也比较的简单,让设备能够连接到AD域,并且DNS也做好,指向域服务器.我们来看下简单实际的操作. 一:添加角色(AD域) 二:

centos7.2 LDAP(TLS)+autofs+ssh

写前先祝福下勒布朗·詹姆斯 网上搜了很多关于centos7.2部署ldap的文章,这里也写一下自己的 实验环境系统:CentOS Linux release 7.2.1511 (Core)内核:3.10.0-327.el7.x86_64服务端IP:192.168.10.16客户端IP:192.168.10.17 第一步 selinux和firewalld [[email protected] opt]# getenforce Permissive [[email protected] opt]#

前后端分离开发与跨域问题

前后端分离 传统开发方式 曾几何时,JSP和Servlet为Java带来了无限风光,一时间大红大紫,但随着互联网的不断发展,这样的开发方式逐渐显露其弊端,在移动互联网炙手可热的今天,应用程序对于后台服务的要求发生了巨大的变化; 传统的项目开发与交互流程: 在传统的web开发中,页面展示的内容以及页面之间的跳转逻辑,全都由后台来控制,这导致了前后端耦合度非常高,耦合度高则意味着,扩展性差,维护性差,等等问题 传统开发的问题如下: 耦合度高 调试麻烦,出现问题时往往需要前后台一起检查 开发效率低,前

域信任关系在企业管理中的应用

1 Windows 域信任关系概述 ? 信任关系是在Windows的域(或林)之间建立的关系,它可以使一个域(或林)中的用户由另一个域(或林)中的域控制器来进行 验证,实现同一个林中的跨域访问和不同林之间的跨域访问,从而为企业不同部门之间的资源互访提供便利. ? Windows域信任关系分为林中的信任关系和林之间的信任关系两种类型. 1.1 林中的信任关系 ? 林中的信任关系是指在同一个林内部自动创建的信任关系,并且具备可传递.双向的特征,当在一个林中添加域树或子域后, 林中所有域之间的信任关系