内网渗透-Windows域环境的初识与搭建

Posted Tr0e

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网渗透-Windows域环境的初识与搭建相关的知识,希望对你有一定的参考价值。

前言

我们平时使用个人电脑时,默认是处于一个工作组中的。在工作组中,你一切的设置都在本机上进行,包括各种策略,用户登录也是登录在本机的,密码是放在本机的数据库来验证的。工作组只适合小型的网络,因为工作组的每台电脑是独立的,运维人员很难对其进行统一的管理。例如,当运维人员需要给所有电脑安装补丁、软件或者更改配置时,需要一台一台地登录所有电脑,把软件复制到电脑上进行安装。这种情况在只有十几台电脑时还可以接受,但在企业中,一般有几百至上万台电脑,每次安装软件或者更改配置时,如果登录上万台电脑来进行安装和配置,就显得不现实了。

我们需要一种机制,把网络中的所有电脑的资源进行统一管理,当我们需要更改配置、安装软件时,可以在通过一台计算机直接下发到所有的计算机进行配置。要实现这种机制,就需要用到域。Windows 域是计算机网络的一种形式,其中所有用户帐户 ,计算机,打印机和其他安全主体都在位于称为域控制器的一个或多个中央计算机集群上的中央数据库中注册。身份验证在域控制器上进行。在域中使用计算机的每个人都会收到一个唯一的用户帐户,然后可以为该帐户分配对该域内资源的访问权限。

域概念

下面先来认识下 Windows 域环境相关的一些基础知识和概念。

工作组

工作组是最常用最简单最普遍的资源管理模式。简单是因为默认情况下计算机都是采用工作组方式进行资源管理的。默认情况下我们个人所使用的电脑大部分都处在名为 WorkGroup 的工作组中,工作组资源管理模式适合于网络中计算机不多,对管理要求不严格的情况。它的建立步骤简单,使用起来也很好上手。大部分中小公司都采取工作组的方式对资源进行权限分配和目录共享。加入工作组是为了区分用户计算机在网络中的类别,如果用户有工作组的话,在管理上会方便很多,可以共享/使用打印机和协和工作,很多小企业都是用这种方法来管理电脑,共享文件。
在这里插入图片描述

工作组中的登录验证

工作组网络也称为 “对等式” 的网络,因为网络中每台计算机的地位都是平等的,它们的资源以及管理是分散在每台计算机之上,所以工作组环境的特点就是分散管理,工作组环境中的每台计算机都有自己的 “本机安全账户数据库”,称为 SAM 数据库。这个 SAM 数据库是干什么用的呢?其实就是平时我们登录电脑时,当我们输入账户和密码后,此时就会去这个 SAM 数据库验证,如果我们输入的账户存在 SAM 数据库中,同时密码也正确,SAM 数据库就会通知系统让我们登录。而这个 SAM 数据库默认就存储在C:\\WINDOWS\\system32\\config文件夹中。

工作组的优点

在一个网络内,可能有上百台电脑,如果这些电脑不进行分组,都列在“网上邻居”中,电脑无规则的排列为我们访问资源带来不方便。为了解决这一问题,Windows98 操作系统之后就引用了“工作组”这个概念,将不同的电脑按功能分别列入不同的组中,如软件部的电脑都列入“软件部”工作组中,网络部的电脑都列入“网络部”工作组中。你要访问某个部门的资源,就在“网上邻居”里找到那个部门的工作组名,双击就可以看到那个部门的电脑了。计算机通过工作组进行分类,使得我们访问资源更加具有层次化。工作组情况下资源可以相当随机和灵活的分布,更方便资源共享,管理员只需要实施相当低级的维护。
在这里插入图片描述
工作组的缺点

缺乏集中管理与控制的机制,没有集中的统一帐户管理,没有对资源实施更加高效率的集中管理,没有实施工作站的有效配置和安全性严密控制。只适合小规模用户的使用。基于以上缺点,当计算机数量比较多,大型企业中网络规模大,需要统一的管理和集中的身份验证,并且能够给用户提供方便的搜索和使用网络资源的方式,工作组的组织形式就不合适了,于是域就出现了。

域环境

域(Domain)是 Windows 网络中独立运行的单位,域之间相互访问则需要建立信任关系(即 Trust Relation )。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理,以及相互通信和数据传输。

域既是 Windows 网络操作系统的逻辑组织单元,也是 Internet 的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域,每个域都有自己的安全策略,以及它与其他域的安全信任关系。

可以把域和工作组联系起来理解,在工作组上你一切的设置在本机上进行包括各种策略,用户登录也是登录在本机的,密码是放在本机的数据库来验证的。而如果你的计算机加入域的话,各种策略是域控制器统一设定,用户名和密码也是放到域控制器去验证,也就是说你的账号密码可以在同一域的任何一台计算机登录。登陆到域中的时候,身份验证是采用 Kerberos协 议在域控制器上进行的,登陆到此计算机则是通过 SAM 来进行 NTLM 验证的。 Windows 域中使用 DNS 来管理不同的计算机,每台计算机具有固定的 IP,并且具有一个唯一的域名。

域相关

域控制器

在“域”模式下,至少有一台服务器负责每一台联入网络的电脑和用户的验证工作,相当于一个单位的门卫一样,称为 域控制器(Domain Controller,简写为DC)。 域控制器中包含了由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。当电脑联入网络时,域控制器首先要鉴别这台电脑是否是属于这个域的,用户使用的登录账号是否存在、密码是否正确。如果以上信息有一样不正确,那么域控制器就会拒绝这个用户从这台电脑登录。不能登录,用户就不能访问服务器上有权限保护的资源,他只能以对等网用户的方式访问Windows共享出来的资源,这样就在一定程度上保护了网络上的资源。

域控是活动目录的存储地方,也就是说活动目录存储在域控制器内。安装了活动目录的计算机就称为域控制器,其实在你第一次安装活动目录的时候,你安装活动目录的那台计算机就成为了域控制器。一个域可以有一台或多台域控制器。最经典的做法是做一个主辅域控。

活动目录

活动目录(Active Directory 简称 AD)是微软 Windows Server 中,负责架构中大型网路环境的集中式目录管理服务(Directory Services)。目录服务在微软平台上从Windows Server 2000开始引入,所以我们可以理解为活动目录是目录服务在微软平台的一种实现方式。当然目录服务在非微软平台上都有相应的实现。
在这里插入图片描述

Windows Server 2003 的域环境与工作组环境最大的不同是,域内所有的计算机共享一个集中式的目录数据库(又称为活动目录数据库),它包含着整个域内的对象(用户账户、计算机账户、打印机、共享文件等)和安全信息等等,而活动目录负责目录数据库的添加,修改,更新和删除。所以我们要在 Windows Server 2003 上实现域环境,其实就是要安装活动目录。活动目录为我们实现了目录服务,提供对企业网络环境的集中式管理。比如在域环境中,只需要在活动目录中创建一次 Bob 账户,那么就可以在任意 200 台电脑中的一台上登录 Bob,如果要为 Bob 账户更改密码,只需要在活动目录中更改一次就可以了,也就是说域用户信息保存在活动目录中。

域、域树、域森林和组织单元

活动目录的逻辑结构包括:域(Domain)、域树 (Domain Tree)、域森林(Forest)和组织单元(Organization Unit),如下图:
在这里插入图片描述
域是一种逻辑分组,准确的说是一种环境,域是安全的最小边界。域环境能对网络中的资源集中统一的管理,要想实现域环境,你必须要计算机中安装活动目录。 域树是由一组具有连续命名空间的域组成的,如下图:
在这里插入图片描述
其中最上层的域名为 contoso.com,这个域是这棵域树的根域 (root domain),此根域下面有 2 个子域,分别是 gsd.contoso.com 和 ged.contoso.com。从图中我们可以看出他们的命名空间具有连续性。例如,域 gsd.contoso.com 的后缀名包含着上一层父域的域名 contoso.com。其实子域 gsd.contoso.com 和 ged.contoso.com 还都可以有自己的子域,图中我没有给出而已。

域树内的所有域共享一个 Active Directory(活动目录),这个活动目录内的数据分散地存储在各个域内,且每一个域只存储该域内的数据,如该域内的用户账户,计算机账户等,Windows Server 2003将存储在各个域内的对象总称为 Active Directory。

域森林(Forest)是有一棵或多棵域树组成的,每棵域树独享连续的命名空间,不同域树之间没有命名空间的连续性。林中第一棵域树的根域也整个林的根域,同时也是林的名称。

组织单元(OU)是一种容器,它里面可以包含对象(用户账户,计算机账户等),也可以包含其他的组织单元(OU)。

域搭建

下面演示如何基于 VMware 本地搭建虚拟机中的域环境,我们将域名称定义为 test.local ,域名是用来区分不同域的,而域中的子域名则代表子域或者域里面的计算机成员。
在这里插入图片描述

在 test.local 域中,有三台计算机,分别为:

主机操作系统IP
dc.test.local,域控制器Windows_Server 2012 系统192.168.1.1
john.test.local,域成员Windows7 系统192.168.1.2
bob.test.local,域成员Windows10 系统192.168.1.3

dc.test.local 是域控制器(DC),它上面运行着一个 DNS 服务器,所有计算机的 DNS 服务器都指向 DC ,也就是 192.168.1.1。

  1. 当 john.test.local 要和 bob.test.local 通信时,会询问 DC,bob.test.local 的 IP 是多少?
  2. 然后 DC 会返回 bob.test.local 的 IP 是 192.168.1.3;
  3. 接着 john.test.local 就可以和 bob.test.local 进行通信了。

在这里插入图片描述

虚拟机安装

虚拟机镜像可以到 MSDN站点 下载,找到对应想要的操作系统镜像,复制如下图所示连接到迅雷即可下载(注意 Win7 镜像需要选择旗舰版或专业版否则无法设置域,同时导入虚拟机时选择好对应版本):
在这里插入图片描述
1、以域控主机安装为例:
在这里插入图片描述
2、输入本地的账号密码,这里设置一个易记的密码即可,产品密钥留空,直接下一步:
在这里插入图片描述
3、接下来进入自动安装:
在这里插入图片描述4、安装完成后注销默认登陆的账户,按 Control + Alt + Insert 键重新登录,点击 Administrator 账号设置一个密码:
在这里插入图片描述然后使用 Administrator 账号登录系统:
在这里插入图片描述Win7 和 Win10 虚拟机的安装过程同上,此处不再复述,安装成功后虚拟机列表:
在这里插入图片描述

设置静态IP

1、先看域控主机的 IP 地址:
在这里插入图片描述2、配置 Windows Server 2012 域控主机的 IP 地址和网关信息(此处如果不设置网关,就不能连接外网,可模拟不能上网的内网),同时将 DNS 服务器设置为空:
在这里插入图片描述3、在 Windows 7 和 Windows 10 两台主机上按照同样的方式,查看 IP 和设置 IP 地址,需要注意的是,由于 Windows 7 和 Windows 10 是作为域中的成员主机,所以要设置首选 DNS 服务器为 Windows Server 2012 的 IP 地址 192.168.0.105,也就是域控的地址:
在这里插入图片描述
在这里插入图片描述

安装域

1、接下来在 Windows Server 2012 虚拟机上安装域,在安装前,先给该计算机重命名为 DC。在我的电脑上右键属性,更改计算机名称,然后重启:
在这里插入图片描述2、重启在 “服务器管理器” 中后点击添加角色和功能:
在这里插入图片描述3、下面几个步骤都选择默认,直接下一步即可:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
4、勾选 Active Directory 域服务,下一步:
在这里插入图片描述在这里插入图片描述5、选择默认,直接下一步:
在这里插入图片描述在这里插入图片描述
6、点击安装:
在这里插入图片描述
7、安装完后,点击将此服务器提升为域控制器:
在这里插入图片描述
8、选择添加新林,设置根域名为 test.local ,这里最好不要填外网有的域名,不然很容易出错。然后点击下一步:
在这里插入图片描述

9、输入还原模式密码,这个密码可以与 Administrator 账号密码不一致:
在这里插入图片描述
10、接下来的步骤都选择默认,都直接下一步即可:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
11、最后点击安装:
在这里插入图片描述
12、安装完后会重启,重启后,在输入账号处,可以看到账号名称发生了变化,变成了 TEST\\Administrator ,这是域账号的登录模式,要登录一个域,需要在账号前面加上域名称和斜杠,输入密码登录系统(如果要登录本地账号,则需要输入.\\administrator 来登录):
在这里插入图片描述
13、登录后我们可以看到多了个 AD DS 和 DNS 服务:
在这里插入图片描述

14、我们再次查看下IP,可以看到首选 DNS 服务器已经设置成 127.0.0.1 ,也就是域控制器自己,如果需要上网,可以把备用DNS服务器设置成之前的值:
在这里插入图片描述到这里,我们成功安装了 test.local 域。

加入域

1、创建好域后,需要将其它两台主机加入域,在 Windows 10 主机上,右键计算机属性,计算机名填 Bob, 隶属于 test.local 域:
在这里插入图片描述2、此时会要求输入 test.local 域的域管理员密码,也就是 Windows Server 2012 上的 Administrator 账号的密码:
在这里插入图片描述3、成功加入域,点击确定重启:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
4、使用同样的方式把 Windows 7 主机加入域,计算机名是 John, 隶属于 test.local 域:
在这里插入图片描述在这里插入图片描述
5、接下来在 DC 域控主机上查看新加入的计算机,访问管理工具,双击 Active Directory 用户和计算机:
在这里插入图片描述展开 test.local ,点击 Computers ,可以查看到域中新添加了两台计算机,分别是 BOB 和 JOHN,如图:
在这里插入图片描述
6、加入域后,还需要有域账号才能登录域,我们先创建两个部门,分别是运维部和开发部,在 test.local 上右键-新建-组织单元,如下所示:
在这里插入图片描述
7、然后在运维部、开发部依次新建用户 John 和 Bob,如下所示:
在这里插入图片描述在这里插入图片描述
需要给域用户设置密码,默认是“用户下次登录时需要修改密码”,为了方便,这里选择“密码永不过期”,如下图:
在这里插入图片描述
8、创建完账户以后如下:
在这里插入图片描述在这里插入图片描述
至此所有域环境搭建完毕!

域体验

搭建完域环境,下面就来感受下域环境的使用吧!

登录域账户

1、创建完用户后,返回到 John.test.local 计算机(也就是 windows 7 域成员主机),此时登录的账户是本地账户 True,如下图所示:
在这里插入图片描述2、点击切换用户:
在这里插入图片描述3、输入在域控主机刚才新建的域账户 test\\John 及其密码:
在这里插入图片描述成功登录到 test.local 域中:
在这里插入图片描述
4、同样的到 Bob.test.local 计算机(Win10 域成员主机),切换用户:
在这里插入图片描述在这里插入图片描述5、也可成功登录到 test.local 域中:
在这里插入图片描述

域基础命令

进入域环境后有一些域命令可用于域信息的收集,常用于域渗透,下面简单了解一下。

1、看域内用户——net user /domain,在 Win7 中执行,如下所示:
在这里插入图片描述

【注意】这里有一个特殊用户叫做 krbtgt,该用户是用于 Kerberos 身份验证的帐户,获得了该用户的 hash,就可以伪造票据进行票据传递攻击了(后面再单独介绍票据传递攻击)。

2、查看域管理员——net group "domain admins" /domain,在 Win10 中执行,如下所示:
在这里插入图片描述
3、查询域控制器主机名——net group "domain controllers" /domain,执行结果如下(注意通过该指令得到的机器名后面会多一个 $ 符号):
在这里插入图片描述4、查询当前登陆域——net config workstation,如下所示:
在这里插入图片描述
5、查询域密码策略——net accounts /domain,如下图所示:
在这里插入图片描述

6、查看补丁信息——wmic qfe
在这里插入图片描述
7、查看操作系统类型——wmic os
在这里插入图片描述

总结

本文介绍了 Windows 域的基本概念、域环境的搭建和域环境的体验、域基础命令等,内网渗透中域渗透举足轻重!水很深还需要很对积累,后面还会继续补充介绍域环境相关知识,并学习记录域渗透!

以上是关于内网渗透-Windows域环境的初识与搭建的主要内容,如果未能解决你的问题,请参考以下文章

内网渗透之http隧道

纯干货-内网渗透系列教程——NTLM 与 NTLM 身份认证

内网渗透-完整的域渗透

内网渗透之ms17-010

内网渗透之vulnstack靶场系列

域环境搭建