域渗透系列-基础知识篇

一、基本协议

Kerberos 认证协议

Kerberos 基于票据的身份认证方式,并非密码认证。客户端想要访问服务端的某个应用必须通过 Kerberos 进行票据身份认证。其主要由客户端(Client)、服务端(Server)、提供认证服务的KDC(Key Distribution Center)三部分组成

LDAP 协议

LDAP 的全称是 Lightweight Directory Access Protocol,轻量目录访问协议。 LDAP 约定了 Client 与 Server 之间的信息交互格式、使用的端口号、认证方式等内,通常将信息以树形方式存储,一个对象可以有多个子对象,这样的结构叫作 DIT(目录信息树),大多数WEB应用使用统一身份认证时,通常使用LDAP作为支撑,保证了用户身份认证存储。

NTLM 认证协议

NTLM 协议为微软用于Windows身份认证的主要协议之一,NTML 既可以用于工作组中的机器身份验证,也可用于域环境的身份认证。

NTLM Hash 加密算法,是微软为提高安全性的同时保证兼容性而设计的散列加密算法,基于MD4加密算法进行加密。Windows Vista 和 Windows Server 2008开始,只存储 NTLM Hash。

NTLM Hash 加密流程为,用户密码-》十六进制-》Unicode编码-》MD4单向Hash加密

NTLM Hash 存储位置,用户密码经 NTLM Hash 加密后存储在:C:\Windwos\system32\config\SAM,用户输入密码进行认证过程:用户输入密码-》系统将密码转换为NTLM Hash 与 SAM 文件中的 NTLM Hash 进行比较。当用户注销、重启、锁屏后,winlogon.exe 显示登录界面(输入框),当winlogon.exe 接收输入后会将密码交给 lsass.exe 进程,lsass.exe 进程会存一份明文密码,然后将明文密码加密成NTLM Hash 与 SAM 文件进行比较认证。这也是我们常听到的利用 mmikatz 从 lsass.exe 进程抓取明文密码或Hash 密码。

二、域初识

AD(Active Directory,活动目录)

AD(Active Directory,活动目录)为微软对通用目录服务器数据库的实现。活动目录使用 LDAP 作为其主要访问协议,存储着有关网络中各种对象的信息,如用户账号、计算机账号、组、Kerberos使用的所以有关凭据等,以便管理员和用户查找和使用这些信息。

ADDS(Active Directory Domain Service,活动目录域服务)

ADDS(Active Directory Domain Service,活动目录域服务),活动目录可以作为活动目录域服务或活动目录轻型目录服务(ADDS)部署。

DC(域控制器,Domain Controller)

域控制器中包含了由这个域的账户、密码、属于这个域的计算机等信息构成的数据库。当电脑联入网络时,域控制器首先要鉴别这台电脑是否是属于这个域的,用户使用的登录账号是否存在、密码是否正确。如果以上信息有一样不正确,那么域控制器就会拒绝这个用户从这台电脑登录。不能登录,用户就不能访问服务器上有权限保护的资源,他只能以对等网用户的方式访问Windows共享出来的资源,这样就在一定程度上保护了网络上的资源。

三、工作组和域

工作组(work group)

工作组(Work Group),将同一网络下的计算机分成不同的组,如:技术部、财务部、会计部。大部分中小企业会采取工作组的方式对资源进行权限分配和目录共享。优点就是资源可随机和灵活地分布,便于资源共享,缺点就是缺乏集中管理控制的机制,没有集中的统一账号管理,只适合小规模使用。

域(domain)

域(Domain)微软为集中管理计算机推出的一种方式,其中域中的所有用户账号、计算机、打印机和其他安全主体都在域控的中央数据库中注册。在域内使用的计算器中,每个用户有一个唯一的用户账号,管理员可以为这些账号分配访问域内资源的权限。可以理解为升级版的工作组。

单域:所有计算机加入一个域中

域树:多个域通过建立信任关系组成的集合。一个域管理员只能管理本域的内部,不能访问或者管理其他的域,两个域之间访问需要建立信任关系。域树内父域与子域之间可按需相互进行管理,还可以跨网分配文件,使不同域之间实现网络资源共享与管理。

域林:域林是指由一个或多个没有形成连续名字空间的域树组成,它与域树最明显的区别就在于域林之间没有形成连续的名字空间,而域树则是由一些具有连续名字空间的域组成。但域林中的所有域树仍共享同一个表结构、配置和全局目录。域林中的所有域树通过 Kerberos 信任关系建立起来,所以每个域树都知道Kerberos信任关系,不同域树可以交叉引用其他域树中的对象。域林都有根域,域林的根域是域林中创建的第一个域,域林中所有域树的根域与域林的根域建立可传递的信任关系。

四、域信任

域信任(Domain Trust)是为了解决多域环境下的跨域资源共享问题而诞生的。一个域之间必须拥有信任关系才可以互相访问到对方域内的资源。因此信任工作是通过 Kerberos 协议来完成的,因此也被称为 Kerberos Trust。

五、本地账号和活动目录账号

本地账户(Local Acount)存储在本地的服务器上。这些账户可以在本地服务器上分配权限,但只能在该服务器上进行分配。默认的本地账户是内置账户(如Administrator、Guest),在安装Windows时自动创建,无法进行删除。默认的本地账户不提供对网络资源的访问,根据分配给该账户的权限来管理对本地服务器资源的访问。默认的本地账户和后期创建的本地账户都位于“用户”文件夹中。

image-20230118124720467

Administrator

Windows 安装时自动创建 Administrator 账户,该账户为默认的本地管理员账号,在本地管理员组 Administrators 中,该账户可以完全控制服务器,并根据需要向用户分配用户权限和访问控制权限,每台 Windows 计算机都有该账户,不能作删除或锁定默认的 Administrator 账户,但可重名或禁用它。在更高的 Windows 系统中,Windows默认禁用内置的管理员账户Administrator,并创建管理员组 Administrators 成员的另一本地账户。若想激活 Administrator 账户可以通过管理员权限执行命令:net user Administrator /active:yes

Guest

Windows安装过程中创建 Guest 账户,默认禁用。Guest 账户允许在计算机上没有账户的用户临时登录本地服务器或客户端计算机,Guest账户密码默认为空。

DefaultAcount

DefaultAcount 称为默认系统管理账户DSMA,该账户在 Windows 10 版本1607和 Windwos Server 2016中引入的内置账户,是一个用户中立账户,可以运行多用户感知或与用户无关的进程,默认禁用。

WDAGUtilityAccount

WDAGUtilityAccount 账户为 Windows Defender 应用程序防护方案管理和使用的用户账户,该账户是在 Windows 10 版本 1709 和 Windows Server 2019 中引入的内置账号,默认禁用。

六、本地组和域组

本地组

当计算机安装完成后,自动默认创建本地组,CMD 执行命令 net localgroup 可查询本机上的本地组情况。属于本地组的用户具有本地计算机上执行的各种任务的权限和能力。

image-20230118125139516

域组

域组用于将用户账户、计算机账户和其他组收集到可管理的单元中,对组进行管理。

七、域中的访问控制列表(ACL)

访问控制列表(ACL)由一系列访问控制条目组成,用于定义安全对象的访问策略。

八、参考

1
书籍《域渗透攻防指南》