知己知彼,百战不殆-孙子

前言

一直以来在网上域渗透的资料,几乎专注的都是一些命令,以及一些工具的使用,但是缺乏对活动目录以及与域本身的安全的研究思考。

所以我自己找资料以及书本内容对活动目录的与域安全进行了学习与记录,可能会写一个系列的域安全文章,挖个坑。

导语

当我们进入了内网,可能我们仅仅想要获取某台机器上的资料,如果能获取那台机器所在域的域控权限固然是最好不过的事情,但有时候并不能得偿所愿。

当我们必须了解了活动目录的运转机制以及安全机制的情况下,才能更好的进行渗透的工作。

基础知识

名词:

域控(Domain Controller),DC

活动目录目录服务(Active Directory Directory Services),ADDS

组织单位(Organizational Unit )

域(Domain)

域树(Tree)

域林(Forest)

1.什么是活动目录?

活动目录是Windows Server在网络环境中提供的“资源目录”。活动目录是储存着域中相关资源信息的目录,例如计算机,用户组,数据库,服务器,打印机,用户属性(权限等),就像一个数据库。

DA67951C-17D7-45D1-907B-504CBE265682.png 图【1】:

2.什么是活动目录目录服务?

“The Active Directory directory service is a distributed database that stores and manages information about network resources, as well as application-specific data from directory-enabled applications. Active Directory allows administrators to organize objects of a network (such as users, computers, and devices) into a hierarchical collection of containers known as the logical structure. The top-level logical container in this hierarchy is the forest. Within a forest are domain containers, and within domains are organizational units.”

首先大家都知道目录,目录提供了文档内容的概览,可以使我们迅速找到一本书,字典中特定的章节。那么将这个概念应用于网络管理员管理服务器中。假设一个公司中有一千台服务器,管理员想要找到特定的服务器的话,一台一台的登陆,显然是极其低效率的方法。所以目录的理念同样适用在解决这种情况。

ADDS提供给域管理一个集中管理的机制和架构。假设一个公司中有一千台服务器,管理员想要找到特定的服务器的话,一台一台的登陆,显然是极其低效率的方法。ADDS可以让域管理员对网络中的所有资源进行访问(登陆,读写等操作)我们可以将其理解为单点登录。

活动目录目录服务提供的功能

(1)提供单点登录访问服务器、服务器上指定的资源与应用程序。
(2)多播复制(Replicatiion)//暂时不关心
(3)基于属性搜索 eg:基于文件名搜索
(4)基于分类搜索 eg:基于分类搜索

3.什么是域?

域是Windows Server 2008的核心单位

我们来梳理一下 活动目录和域的关系:

1.域是逻辑上的服务器以及PC的逻辑分组,在一个域里面的用户都使用公共的安全机制和账户信息。

2.活动目录将域中的资源组织在一起,存放这些资源的各种信息。

4.什么是树(域树)?

“A domain tree is made up of several domains that share a common schema and configuration, forming a contiguous namespace. Domains in a tree are also linked together by trust relationships. Active Directory is a set of one or more trees.”

根据上一条活动目录的作用,很容易理解树,活动目录拥有所有的域中机器账户以及配置。域树由多个域组成,这些域同时由根域DC管理,共享同一表结构和配置,形成一个连续的命名空间。

举个例子,就像如果以it.lonelyrain.me为例,lonelyrain.me就是根域,it就是子域。因为是“父-子”关系,lonelyrain.me

拥有it这个域的所有权限。

5.信任关系

“A trust is a relationship, which you establish between domains, that makes it possible for users in one domain to be authenticated by a domain controller in the other domain.”

信任关系这个字面意思很好理解,我就不多做解释了。

关于域的信任关系,暂时我们只关心信任关系的方向问题。

信任分为双向信任以及单向信任,两种信任关系字面上也很好理解。

我们要重点关心的是活动目录中域树的默认信任关系,默认任何新加入域树中的域它的信任关系都是双向并且可传递的。

情景模拟

举个例子:

当我们的根域(lonelyrain.me)中有

  • 子域 it

  • 子域 workgroup

由域林中默认的信任关系可知,it域与根域lonelyrain.me相互信任,workgroup域与根域lonelyrain.me相互信任。

8F8F7558-B362-405C-AA8A-7DEBD2D16020.png

所以通过信任关系的可传递性,it域默认信任workgroup域。

那么我们考虑这么一种情况,IT域本身的各种对外服务(例如:web)默认它为非常安全,我们并没有办法拿下它的权限。

it域的管理员为了方便,在他管理的it域中,将其中一台(10.11.47.70)开启web服务的wwwroot文件目录权限设置为了

everyone,在其it域的用户都可以看见这个文件目录。这个做法讲道理是没有问题的,因为我们假设it域本身很安全,它对dmz内的机器以及账户共享这些资料。

8B490D0D-85B4-40F2-A7DE-9E9E8C9D2BDD.png

假设我们拿下了workgroup域中的一台服务器(192.168.2.3)的一个普通用户的账号commonuser,而且并没有拿到workgroup域控(DC)。

其实我们是可以通过这个普通权限的workgroup的域普通账号commonuser去访问it域中10.11.47.70这台的wwwroot的文件(默认只有读取权限),从而可以做代码审计之类的工作去突破it域的防护。

81D0833C-3CBB-4793-B71B-B868E2D1D99E.png

“by the way:为什么我觉得管理员会用everyone呢?因为你们可以观察前一副图,微软把everyone默认设为第一个选项,直接选的确很方便”

Reference:
《Windwos Server 2008安全技术详解》
微软技术参考网站:https://support.microsoft.com