内网渗透知识 ——(一)、工作组、域、域控、活动目录
工作组、域、域控、活动目录
工作组
在大型局域网中,可能会有很多台工作电脑。为了方便这些计算机进行管理,从 Windows 9x/NT/2000 开始便引入了工作组这一概念。有了工作组,就可以将人事部的电脑划分到名为人事组的工作组中,将技术部的电脑划分到名为技术部的工作组中。
工作组的设置可以在此处设置(设置完成之后需要重启电脑)
查看工作组中的其他电脑可以在 “网上邻居” 或者 "网络" 中查看
缺点
当一个超级大的局域网中有非常多的电脑时,工作组只能提供对计算机进行分类的功能。并不能对计算机进行管控
所以大型局域网需要的是对计算机的统一管控、身份验证。所以 “域” 被发明出来了
域
在域中,所有的计算机账户以及计算机本身(用户账号、计算机、打印机等)的信息都在域控的数据库。
而域中的计算机在对域中资源进行访问的时候,必须经过域控的身份验证。也就是说域控决定了域中的域成员能访问xx资源和不能访问xx资源。
域管理员是域中最powerful的计算机,相当于管理员。他拥有最高的访问控制权限和管理权限,并且域管理员可以控制域中的其他计算机,所以内网渗透的终极目标就是拿到被设置为域管理员的PC,并获得域控。
在设置好了域的计算机中,使用 ipconfig /all 命令查看是会回显域名的
单域
顾名思义,单域就是指一个局域网中只设置了一个域
父域 & 子域
就像WEB中的根域名的子域名一样,局域网的域也有父域和子域,并且命名空间连续。子域可以有自己的安全策略,同时也受父域的管理
域树
同样的和WEB中的根域名、二级域名、三级域名一样,局域网中的域也有多层关系(并且命名空间连续)。而命名规则也和WEB中的域名一样。多级子域也可以有自己的安全策略,同时也受父域的管理
域森林
域森林可以看作是多个域集合在一块了,其中各个域之间的命名空间是不连续的(见下图)。
虽然直观上看是存在了多个域,但是为了方便统一管理,微软便设置第一个创建的域中的域控PC为根域,也就是权限最高的、最牛逼的那台PC
域控
域控顾名思义就是域的控制器,是域中最高权限、最牛逼的PC。其主要作用是域中的身份验证、安全策略、存储域中PC的用户账户信息
域控有一个活动目录(Active Directory)(数据库),数据库中存储着整个域的账号密码等各种信息
一个域环境可以有很多台域控,每台域控都有一个活动目录。在其中一台域控上对活动目录的修改都可以同步到剩余的域控中,这样保证了坏了一个还有别的可以用
活动目录(Active Directory)
活动目录就是安装在域控上的数据库,其中存储着域中各种对象的信息,包括用户账户、计算机账号、组策略等。
活动目录的功能主要是:域用户账号的集中管理、域计算机的集中管理、资源访问控制、域内网络管理、域中计算机的应用程序设置管理等
Ntds.dit
Ntds.dit 文件是活动目录数据库的数据存储文件,其中包含 域用户 、 用户密码的哈希值、用户策略信息
既然 Ntds.dit 是域环境中的账密文件,那么在其他的计算机环境中,SAM文件存储着PC的当前账密信息,类似于 passwd 文件
想要对 Ntds.dit 和SAM 文件进行破解,都需要system 文件
C:\Windows\NTDS\NTDS.dit
C:\Windows\System32\config\SYSTEM
C:\Windows\System32\config\SAM
目录服务 & LDAP
LDAP 全称 Lightweight Directory Access Protocol(轻量目录访问协议),顾名思义LDAP就是用来访问目录数据库的。
- DC:domain component(域组件)
- OU: Organizational Unit(组织单元)
- CN:Common Name(通用名称)
-
目录树
在一个目录数据库中,整个目录中的信息可以表示为一个目录树
-
条目
上图中的每一个圆圈就是一个条目
-
DN & RDN(就像绝对路径和相对路径一样)
DN:Distinguished Name(绝对可辨识名称)。类似于文件系统中的绝对路径,例如上图中 uid=bob 的单元,其DN就是 uid=bob,ou=people,dc=acme,dc=org
RDN:Relative Distinguished Name(相对可辨识路径)。例如上图中 uid=bob 的单元。其 RDN 就是 uid=bob
AD Explorer 访问域目录
https://download.sysinternals.com/files/AdExplorer.zip
AD Explorer 是一个独立的可执行文件,在域内任何一台机器上打开都能连接域目录数据库。并查看域内信息
活动目录分区
活动目录存储的信息太多了,所以微软将数据按照分区存储
- 域分区
- 配置分区
- 架构分区
域分区
域分区存储与该域有关的对象信息。
如果是在域林中,那么每个域都各自拥有一份属于自己的域分区。并且该域分区的数据只会被同步到本地域环境中的所有域控中
hack-my.com的域分区
配置分区
配置分区存储整个域林的配置信息。与域分区不同,域分区的内容每个域都不一样,并且不同域之间的域分区内容不共享,而配置分区的内容会被整个域林使用,并且会被复制到域林中所有的域控上
配置分区 CN=Configuration
架构分区
存储着整个域林的架构信息(活动目录的所有类、对象、属性的定义数据)。与配置分区相同,整个域林使用和共享同一份架构分区,并且能被复制到域林中的所有域控上
架构分区(CN=Schema、CN=Confident、DC=hack-my、DC=com)
活动目录的查询 -- Adfind
经过实测发现,Adfind 不做任何处理的话很容易被杀毒软件杀掉。
下载地址
https://www.softpedia.com/get/Programming/Other-Programming-Files/AdFind.shtml
-
查询域控
AdFind -sc dclist
-
查询域控版本
AdFind -schema -s base objectversion
-
查询域中在线的计算机
AdFind -sc computers_active AdFind -sc computers_active name operatingSystem (只显示name和操作系统)
-
查询域中所有计算机
AdFind -f "objectcategory=computer"
-
查询域内用户
AdFind -users name
-
查询aaa.com域中所有计算机
Adfind.exe -b dc=aaa,dc=com -f "objectcategory=computer"
-
查询GPO信息
AdFind -sc gpodmp
-
查询受保护的域账户
Adfind -f "&(objectcategory=person)(samaccountname=*)(admincount=1)" -dn
-
查询域管账户
AdFind -default -f "(&(|(&(objectCategory=person)(objectClass=user))(objectCategory=group))(adminCount=1))" -dn