了解然后破解它,有很多方法可以对在线转储域中的用户进行哈希处理。从辩护人的角度来梳理、分析、收集证据的文章很少。只有掌握了不同dump方法的底层原理,才能在EDR对抗时不慌不忙。不要乱搞,聚焦应急处理的关键点,选择最合适的手段,快速实现目标。本文的大纲如下:
基本概念 NTDS.dit
ntds.dit 是广告数据库(C:\\NTDS),其中包含域用户、域组、域用户哈希值和其他信息。域控制器上的ntds.dit只有能够登录域控制器的用户(如域管理员用户、DC本地管理员用户)才能访问。因此,在域渗透时只要能够获取到ntds.dit,就可以获取到所有域用户的用户名和对应的哈希值。 ntds.dit是加密的,需要获取注册表才能解密。
电压信号
Copy(VSS,也称为卷影复制服务)是系统中提供文件备份和恢复功能的一组COM接口。系统恢复功能、备份等系统备份相关功能都是基于VSS实现的。
NTFS
NTFS(New File)是该公司开发的一种特殊文件系统。从NT 3.1开始它已经成为NT家族的默认文件系统。在 NTFS 中,所有文件数据(文件名、创建日期、访问权限和内容)都作为元数据存储在主文件表 (MFT) 中。
转储意味着总结
无论使用哪种工具,相同的原理都是一样的。最终,域外用户hash通过以下两种方式转储:
LSASS 进程转储 hash1。 ::lsa 转储哈希值
“::lsa”通过注入lsass.exe进程来检索用户的哈希值。该模块首先使用句柄打开LSA策略,使用句柄获取域信息,然后通过连接SAM API获取域用户名和RID的句柄。最后,通过修补 lsass 进程 (/patch),使用用户名检索 NTLM 哈希信息。
详情请参阅:
完整的执行命令如下:
.exe“::debug”“log hash.txt”“::lsa /patch”退出
这种方法虽然简单易用,但需要直接运行lsass.exe进程,因此也是EDR/HIPS软件重点监控拦截目标。有终端保护软件时应谨慎使用。
法医视角
通过lsass.exe内存转储域用户哈希信息不会在日志中生成日志条目。由于转储lsass.exe需要获得lsass.exe的以下权限( | | | ATION ),因此可以通过单独配置监控哪些进程请求了lsass.exe的上述权限,从而监控是否发生攻击行为。
卷影复制服务导出 1. 导出 NTDS.dit
它是一个命令行工具,是域控制器生态系统的一部分,其目的是使管理员能够访问和管理数据库。但是,渗透测试人员和红队可能会滥用它来获取现有 ntds.dit 文件的快照。
第一步,创建 NTDS.dit 的快照,并将其放置在 c:\users\tmp 目录中(之前 tmp 路径不存在)
“ac i ntds” ifm “完整的 c:\users\tmp” qq
其中ac in ntds是ntds的缩写;
如果执行成功,会在temp路径对应的文件夹中生成ntds.dit及文件:
第二步,将ntds.dit及文件打包下载到本地。使用本地工具或其他工具解析ntds.dit和文件,获取域哈希,并保存为.txt。
-d ntds.dit -s -o .txt
法医视角
ID 4799 进程枚举本地安全组(组和内置组)
ID 4799 调用卷影复制服务器进程 VSSVC.exe 枚举本地安全组(组和内置组)
ID 4904 调用卷影复制服务器程序 VSSVC.exe 添加安全日志记录
![图片.png]
ID 4905 调用卷影复制服务器程序 VSSVC.exe 来取消注册安全事件源。
2.导出NTDS.dit
list // 查看当前系统卷影副本
第一步,创建C盘(ntds.dit文件所在磁盘)的卷影副本
/for=c:
第二步是复制ntds和
复制 \?\\\Copy2\\ntds\ntds.dit ntds.dit
复制 \?\\\Copy2\\\\
步骤3:删除之前创建的C盘卷影副本
/For=C: /安静
步骤4:使用本地解析ntds.dit和文件获取域哈希并保存为.txt
-d ntds.dit -s -o .txt
此外,您可以使用列表来查看卷影副本。
法医视角
在直接使用卷影复制服务器转储ntds.dit的过程中,只生成了两条VSS服务的日志记录。与之前相比,没有本地安全组的相关操作。由于两条日志是同时记录的,因此需要合并多条日志进行分析才能得到清晰的结果。方法比较干净。有趣的是,这种获取域/计算机哈希值的方法并不是攻击者独有的。一些终端安全工具也会使用这种方法来判断系统账户是否存在弱口令:P
ID 4904 调用卷影复制服务程序 VSSVC.exe 来注册安全事件源。
ID 4905 调用卷影复制服务程序 VSSVC.exe 来注册安全事件源。
3.导出NTDS.dit
用于帮助管理员执行与卷影复制服务(VSS)相关的操作。该二进制文件有两种模式:交互模式和脚本模式,因此可以使用包含所有必要命令的脚本文件来自动执行 NTDS.DIT 提取过程。脚本文件可以包含以下行来创建新的卷影副本、安装新驱动器、执行复制命令以及删除卷影副本。
set context persistent nowriters
add volume c: alias someAlias
create
expose %someAlias% z:
exec "cmd.exe" /c copy z:\windows\ntds\ntds.dit c:\exfil\ntds.dit
delete shadows volume %someAlias%
reset
需要在路径下执行:
C:\\>.exe /sc:/users///.txt
法医视角
由于VSS本质上是调用导出NTDS文件,所以日志记录完全一样:
按顺序,VSSVC.exe 枚举组(4799)、组(4799)、VSSVC.exe 注册安全事件源(4904)和注销(4905);
此外,还有可以导出 NTDS 文件的工具。由于原理也是使用VSS服务,所以产生的日志也类似。
NTFS分区读取 1.导出NTDS.dit
所有文件都构建在 NTFS 分区系统之上。通过读取原始卷从 NTFS 分区卷复制文件。这使得攻击者可以访问锁定的文件,而无需通知任何监控系统。它本身不提供可以直接操作NTFS分区上文件的工具,需要使用API自己编写工具。
当你需要一个工具时,搜索总会给你带来惊喜。比如这个()就可以实现你想要的;
第一步是使用以下命令复制 ntds.dit 文件
.exe C:\\NTDS\ntds.dit C:\\Temp\ntds.dit
法医视角
不幸的是,日志并不记录对NTFS分区的直接读取操作,因此如果不借助额外配置的日志记录或终端安全产品,很难定位此类攻击。
注册表导出1.reg保存
直接使用 reg命令保存注册表
reg.exe 保存 HKLM\
法医视角
注册表操作默认不包含在日志记录范围内,因此很难定位到默认的日志配置步骤。
解密NTDS文件并获取哈希值
获得NTDS.dit文件和注册表后,可以在攻击者本地操作系统上使用各种工具直接从NTDS文件中解析域用户的哈希值。一般不会在受害机器上执行此步骤。 ,因此不需要进行取证分析。使用以下命令进行操作:
-d ntds.dit -s -o .txt
远程转储
1. 什么是
在域环境中,不同DC之间的数据每15分钟同步一次。当DC1想要从DC2获取数据时,DC1会向DC2发起请求。请求中包含需要同步的数据;如果需要同步的数据很多,则会重复上述请求;该原理用于通过域同步服务接口向目标域控服务器发起域用户Hash同步请求,获取完整的域用户Hash列表。
在出现之前,如果想要获取域用户Hash,就必须登录DC来执行操作。这提供了在不登录 DC 的情况下转储域用户哈希的可能性。您可以通过模仿DC服务器向目标DC发起请求,然后获取域用户哈希的完整列表。
默认情况下只有 、 、 组中的用户有权限使用它,但是我们可以给域中的普通用户添加ACL(List),这样普通用户也可以调用该功能。
2、域控制器上使用的导出机制决定了不需要使用debug来提权,因此协议中禁用debug权限的安全测试并不能阻止域用户hash被导出。
大杀器的内置模块可以直接运行以下命令:
:: /: /全部 /csv
法医视角
使用导出时,日志中会生成两条4662条目(访问目录服务的日志)。该日志记录了执行用户获取相关权限的情况。组合字段和字段可以作为解决此攻击的一种方法:
所需权限列表:
'DS-Replication-Get-Changes' = 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2
'DS-Replication-Get-Changes-All' = 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2
'DS-Replication-Get-Changes-In-Filtered-Set' = 89e95b76-444d-4c62-991a-0facbeda640c
由于4662日志不记录源IP,如果想获取源IP,可以安装一个服务将源IP记录到系统日志中。详细信息请参见:
3、远程脚本集.py脚本支持在已知域管理员账号和密码的前提下远程转储DC服务器的域用户Hash。转储命令如下:
# .py /:@-just-dc
法医视角
从DC上的安全日志可以看到,产生了大量的4662日志请求,供执行用户获取相应权限:
由于是远程执行,流量测试也有一些固定的分析模型:
从客户端到DC服务器,使用SMB(端口445)、DCRPC(端口135)和(端口49666)协议建立通信连接。在协议中,rInfo 和 代表流量分析或策略传递期间的通信。您可以重点关注这些请求。
4、使用runas在域内主机上远程使用Runas命令打开域管理员权限的shell,或者直接使用域管理员账号登录目标机器;
runas //用户:\cmd
然后在域中执行命令远程获取域用户Hash
:: /: /全部 /csv
法医视角
远程导出域用户哈希的终端日志与本地日志相同。因为是通过网络执行的,所以不妨分析一下通信数据包的特征;
第一个是runas流量,它与DC服务器的88端口进行通信,并通过远程认证建立本地管理员会话。
接下来是SMB流量,建立IPC链路并创建请求文件
最后是相关流量,主要是和DC的6008端口通信,Set-t等操作。
4.防杀转储域用户hash
由于是各大AV、EDR重点关注的众所周知的原因,所以免杀的思路就是实现一个单独的客户端,伪造DC服务器向真实的DC服务器发起域同步请求来获取域用户哈希。
已经有一个开源实现了,来自一个大佬
直接导出DC上当前域名的hash
。EXE文件
远程导出需要域管理员用户先建立通道。
// 在本地建立域管权限的shell (88端口)
runas /noprofile /user:zero.com\administrator cmd
// 远程导出域用户Hash(389端口+6008端口)
SharpDCSync.exe dc.zero.com zero.com
这里简单提一下:攻击的原理是模拟域控制器之间的同步数据复制。最好的防御是为控制器设置白名单,并在白名单中设置允许同步的可信资产。
结束
AD攻击和防御有自己的体系。转储域用户哈希只是冰山一角。通过对各种dump方法和原理的深入分析,可以加深我们对AD安全的理解和对系统日志的熟悉,在安全运营监控/应急响应中更好地快速定位攻击。行为,欢迎高手交流~
原文链接:
扫一扫在手机端查看
-
Tags : 域名解析的服务_AD攻防-域用户HashDump追踪之道
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。