前言
本文通过搬运各个博客资料,总结一下域渗透基础中—域环境的配置及基础知识
域基本知识
经常听到域中有AD.DC这样的名词,他们都是什么意思呢?
Active Directory,活动目录简称AD,是一个基于DNS并以树状的数据结构来组成网络服务存储了有关网络对象的信息,并以此作为基础对目录信息进行合乎逻辑的分层组织,让管理员和用户能够轻松地查找和使用这些信息。常网域都只有一个,在中型或大型的网络中,网域可能会有很多个,或是和其他公司或组织的AD相互链接
DC 就是域服务器,在当中的域服务器保存了相同的AD
windows下域环境的配置
首先你需要一天windows server服务器,从MSDN下载即可。
首先需要给域设置固定的IP地址,需要注意的是,每个网卡都需要设置固定的IP
在服务器管理面板中,选择添加角色或功能
选择
然后按照提示设置一步一步直到安装完成即可
需要注意的是:域控administrator密码需要提前设置且含有大小写字母,数字,符号
如何加入域
这里以windows7演示
同样的,在加入域之前,需要设置固定的IP地址
在系统信息中更改用户名项目中按照如图所示步骤,
即可加入域
需要注意的是,加入域不等于现在的账户就是域内账户,现在仍然是本地用户
如何添加域用户
在域控机器中的Active Directory 用户和计算机中,在users目录中选择添加即可
然后就可以在任意加入域的windows系统中登录该账户了
Kerberos
Kerberos是一种网络认证协议,对个人通信以安全的手段进行身份认证。其设计目标是通过密钥系统为客户机/服务器应用程序提供强大的认证服务。 它允许某实体在非安全网络环境下通信,向另一个实体以一种安全的方式证明自己的身份。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一 种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。
协议内容
- AS:认证服务器
- KDC:密钥分发中心
- TGT:票据授权票据,票据的票据
- TGS:票据授权服务器
认证流程
认证流程包含三种角色:
1.Client(客户端)
2.Server(服务端)
3.KDC(也就是参与认证的域控制器)
4.AD(存储所有 client的白名单,只有存在于白名单的Client才能顺利申请到TGT)
5.AS(为Client生成TGT的服务)
6.TGS(为Client生成某个服务的 ticket)
7.Session Key(会话密钥,只有Client和TGS知道,在Kerberos认证中至关重要)
一、Client向KDC申请TGT
1.Client以明文方式将用户名、IP地址发送给AS请求TGT
2.KDC在ntds.dit中查找该账户
3.如果找到,KDC随机生成一个Session Key,此时AS向Client发送两条消息
(1)TGT(使用krbtgt NTLM Hash加密),内容包含:
User Name
Domain Name
组成员资格
TGS Name
时间戳
IP地址
TGT的生命周期
Session Key
(2)另一条消息(使用Client申请TGT时使用的用户名对应的NTLM Hash加密),内容包含:
TGS Name
时间戳
TGT的生命周期
Session Key
二.Client通过获得TGT向KDC申请用于访问Server的Ticket
1.Client向TGS发送三条消息
(1)Authenticator(使用Session Key加密),内容包含:
User Name
时间戳
需要访问的服务名称
(2)TGT
KDC使用Ktbtgt NTLM Hash对TGT解密,获取Client信息和Session Key
使用Session Key对Client发来对Authenticator信息解密,对比Client信息,相同则认证通过
TGS向Client发送两条消息
(1)TGS生成Client需要访问服务的Ticket发送给Client,Ticket使用目标服务帐户的NTLM Hash加密。
(2)使用Session Key加密的Server Session Key,内容包含:
Server Name
时间戳
Server Session Key
Client收到消息后,使用Session Key解密获得Server Session Key
三.Client最终向为了Server对自己的认证向其提交Ticket
1.使用Server Session Key加密向Server发送Authenticator信息和TGS颁发的Server Ticket,内容包含:
User Name
时间戳
2.Server使用密钥解密Ticket,获得Server Session Key,使用Server Session Key解密Authenticator信息,对比Authenticator信息中的Client信息和Ticket中的Client信息对比,将Authenticator信息的时间戳和Ticket的时间戳是否相同(误差2min)
3.Server使用Server Session Key加密Authenticator信息,内容包含:
ID
时间戳
4.Client使用缓存中的用Server Session Key解密Authenticator信息,得到访问该访问需要携带的ID和时间戳。
5.认证完成,只需要使用申请的Service Ticket就可以正常访问服务。
[…] 域渗透基础 – 域环境的配置及基础知识 […]