萌新向域渗透基础

萌新向域渗透基础
0x01前言
Active Directory最常用于企业基础结构,通过称为域控的一个节点来管理组织中的大量计算机。针对Active Directory的渗透测试非常好玩,并且有许多APT组织针对AD环境的攻防研发出大量黑科技。本文重点介绍Active Director的基础知识,使得我们在攻击之前对相应组件有尽可能全面的掌握。

0x02AD及其组件:
Directory Service:
Directory Service是一种分层结构,它将网络中所有资源的名称映射到其网络地址。它允许存储,组织和管理所有网络资源并定义命名结构,这使得在单个系统上管理所有设备变得更加容易。
在这里插入图片描述
Active Directory:
Active Directory是微软实现的目录服务的。 它遵循x.500规范,运行在OSI模型的应用层。 它允许管理员从单个服务器控制网络中的所有用户和资源。它将有关网络中所有用户和资源的信息存储在单个数据库目录服务数据库中。 Active Directory使用“Kerberos”进行用户身份验证,使用LDAP进行检索目录信息。
在这里插入图片描述
Domain Controller(DC):
DC就是大佬们口中经常说的域控了,它是在域中运行Active Directory目录服务的Windows Server。所有用户,用户信息,计算机及其策略均由域控控制。每个用户都必须通过域控进行身份验证才能访问域中的任何资源或服务。它为所有用户定义了可以执行哪些操作以及授予用户权限级别等策略。它让管理员更加方便地管理用户和网络中的计算机。
在这里插入图片描述
0x03AD中的命名约定:
Object:域对象,可以是AD域中的任何网络资源,可以是计算机,用户,打印机等。
Domain: 域,是组织中Object的逻辑分组。它定义了安全边界,并允许边界内的对象彼此共享数据。它存储域控中域内所有对象的信息。
Tree : 域树,是一个或多个域的集合。单个树中的所有域共享一个公共模式和全局目录,它是关于所有对象的信息的中央存储库。
Forest: 域森林,是一个或多个树的集合,它们在整个组织中共享公共目录,全局目录及配置
在这里插入图片描述

0x04Kerberos 认证
Kerberos是一种身份验证协议,用于单点登录(SSO),SSO的意思是进行一次身份验证,完成验证后我们就可以使用令牌访问有权使用的任何服务。
在这里插入图片描述
Kerberos认证过程:

用户使用用户名和密码登录

1A.密码转换为NTLM哈希且时间戳用哈希加密,并把它作为身份验证票证(TGT)请求(AS-REQ)的身份验证者发送到KDC(密钥分配中心)

1B.域控制器(KDC)检查用户信息(登录限制,组成员等)并创建票据授予票证(TGT)

  1. TGT经过加密和签名并发送给用户(AS-REP)。只有域中的Kerberos服务(KRBTGT)才能打开和读取TGT数据

3.当请求票证授予服务(TGS)票证(TGS-REQ)时,用户将TGT发送给DC。DC打开TGT并验证PAC校验----如果DC可以打开票证并校验和检出,则TGT 是有效的,TGT中的数据被有效地复制来创建TGS票证

4.使用目标服务帐户的NTLM密码哈希对TGS进行加密并发送给用户(TGS-REP)

  1. 用户连接到服务器托管服务的适当的端口并发送给TGS(AP-REQ)。 该服务使用其NTLM密码哈希打开TGS票证。
    这是在Active Directory中实现的Kerberos身份验证的总过程。

0x05:针对Kerberos的攻击

白银票据(Silver Tickets)是伪造Kerberos票证授予服务(TGS)的票也称为服务票据。如下图所示,与域控制器没有AS-REQ 和 AS-REP(步骤1和2),也没有TGS-REQ / TGS-REP(步骤3和4)通信。由于银票是伪造的TGS,所以没有与域控制器通信。
在这里插入图片描述
黄金票据是伪造票据授予票据(TGT),也被称为认证票据。如下图所示,与域控制器没有AS-REQ或AS-REP(步骤1和2)通信。由于黄金票据是伪造的TGT,它作为TGS-REQ的一部分被发送到域控制器以获得服务票据。
在这里插入图片描述
当服务器禁用DONT_REQ_PREAUTH时,通过AS-REP Roasting,攻击者可以代表计算机请求KDC并离线破解密码
在这里插入图片描述

0x06:域环境下的信息搜集
Active Directory环境中发现服务的最佳方法是通过SPN扫描(通过请求特定SPN类型的服务主体名称来查找服务),而不是使用传统的针对各个主机的端口扫描
Active Directory可以通过在多种情况下被枚举,包括:
1.在没有domain account的情况下可以枚举
2.通过枚举Active Directory可以在没有管理员权限的情况下收集所有域/森林信息,域/森林信任关系
3.通过枚举Active Directory可以检索Privilege Account,使用PowerView获取所有组的访问权限

0x07针对AD的攻击
PassTheHash:用于将服务的NTLM哈希(而不是纯文本密码)传递给远程服务器以登录
原理:在Windows系统中,通常会使用NTLM身份认证;而NTLM认证不使用明文口令,而是使用口令加密后的hash值,hash值由系统API生成(例如LsaLogonUser)。hash分为LM hash和NT hash,如果密码长度大于15,那么无法生成LM hash。从Windows Vista和Windows Server 2008开始,微软默认禁用LM hash。如果攻击者获得了hash,就能够在身份验证的时候模拟该用户(即跳过调用API生成hash的过程)
攻击实现(msf)
在这里插入图片描述

PassTheCache:将属于域的一部分的基于Linux / Unix的系统的缓存凭据传递给基于Windows的计算机以访问系统。如果碰到Kerberos“* .ccache”票证cache,则可以“PassTheCache”并假定票证所有者的身份。在下图中,我们发现的缓存票证是与域管理员权限相关联的用户帐户。
在这里插入图片描述

Over-Pass-The-Hash:获取的NTLM哈希值可以传递给KDC以获取有效的Kerberos票证并将其传递给另一个系统以获取访问权限
攻击实现:(mimikatz)
在这里插入图片描述

0x08:维持域的访问权限
DCSync:
DCSync之前的漏洞利用方法是在域控制器上运行Mimikatz或Invoke-Mimikatz以获取KRBTGT密码哈希来创建黄金门票。使用Mimikatz的DCSync和适当的权限,攻击者可以通过从网络域控制器中提取密码散列以及以前的密码散列,而无需交互式登录或复制Active Directory数据库文件(ntds.dit)。
运行DCSync需要特殊权限,管理员,域管理员或企业管理员以及域控制器计算机帐户的任何成员都可以运行DCSync来提取密码数据,请注意,默认情况下不仅能读取域控制器还可以为用户提供密码数据

DCSync运行机制:
发现指定域名中的域控制器。
请求域控制器通过GetNCChanges复制用户凭据(利用目录复制服务(DRS)远程协议)
作者以前已经为域控制器复制做了一些数据包捕获,并确定了域控制器如何复制的内部DC通信流程。

DCSync命令示例:

在rd.adsecurity.org域中提取KRBTGT帐户密码数据:
Mimikatz“privilege :: debug”“lsadump :: dcsync /domain:rd.adsecurity.org / user:krbtgt”exit

在rd.adsecurity.org域中提权管理员用户密码数据:
Mimikatz“privilege :: debug”“lsadump :: dcsync /domain:rd.adsecurity.org / user:Administrator”exit

在lab.adsecurity.org域中提取出ADSDC03域控制器中计算机帐户的密码数据:
Mimikatz“privilege :: debug”“lsadump :: dcsync /domain:lab.adsecurity.org / user:adsdc03 $”exit
在这里插入图片描述

DCSync攻击有不足之处,比如攻击者无法在目标AD域中注入新的对象。当然,攻击者依然可以使用Pass-The-Hash(哈希传递)技术接管管理员账户,然后再注入对象,但这个过程更加麻烦、步骤繁琐,因此蓝队很有可能会捕捉到这个攻击行为。DCShadow攻击方法对DCSync做了些改进,因此能够弥补这些缺点。

在DCShadow攻击中,攻击者无需复制数据,只需要在目标基础架构中注册新的域控制器,以便注入AD对象或者修改已有的对象(替换该对象的属性内容)。

DCShadow:允许注册新域以将新对象添加到目标基础结构中,通过DCShadow可以做很多事情,包括ldap用户的修改,添加后门(sidhistory后门, AdminSDHolder后门,acl后门等等)
在这里插入图片描述
步骤
1、通过dcshadow更改配置架构和注册SPN值,将我们的服务器注册为Active Directory中的DC
2、在我们伪造的DC上更改数据,并利用域复制将数据同步到正常DC上。
相关API:DSBind、DSR*等
https://msdn.microsoft.com/en-us/library/ms675931(v=vs.85).aspx

DCShadow的整体工作过程可以参文末推荐资料,这里给出图示
在这里插入图片描述
0x09后记
本文介绍了进行域渗透需要了解的基础知识,以及提及了部分经典的攻击技术,可为后续的实际渗透打下理论基础。

0x10参考及推荐资料:
http://blog.securelayer7.net/exploring-exploiting-active-directory-pen-test/
https://blog.alsid.eu/dcshadow-explained-4510f52fc19d
https://www.anquanke.com/post/id/146551
https://adsecurity.org/?p=556
https://www.anquanke.com/post/id/85374
https://web.mit.edu/kerberos/krb5-1.12/doc/basic/ccache_def.html
https://medium.com/@jamie.shaw/pass-the-cache-to-domain-compromise-320b6e2ff7da

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值