完整导出目标域内所有域用户密码hashdiskshadow 离线导

0x01 当前大致环境描述

格式不太好控制,方便大家看,直接截图了

0x02 Diskshadow 是什么 ?

根据微软官方说明,Diskshadow 也是用来操作windows卷影复制服务[VSS 即Volume Shadow Copy Service,本质上属快照(Snapshot)技术的一种,主要做备份恢复之用[即使目标文件当前处于锁定状态],更多细节此处暂不做深入理解,后续在我们涉及到其它的各种域内用户hash导出应用时,还会继续单独说明]的一种工具,功能上类似vshadow,但不同的是,在windows server 2008之后的系统上,它已默认自带,同样是被放在了c:\windows\system32\目录下,而vshdow则是被包含在windowsSDK中的[实战中可能还需要自己想办法把它传到目标机器上才行],也就是说,diskshadow在我们实际渗透过程中更便于在目标系统上开箱即用,ok,废话不多讲,咱们主要目的还是来关注下它在实战中,能帮我们做些什么

0x03 在实战中,利用Diskshadow到底可以帮我们做些什么 ?

通过其内置的EXEC特性执行任意windows命令,既然都能执行系统命令了,那具体能做的事情,自然就非常多了,执行任意payload,操作系统服务,注册表,比如,还有我们接下来要说的,用它来离线导出目标域中所有域用户的密码hash 等等...但有个不得不说的前提是,最好在一个特权身份下来操作diskshadow[权限一定要先管够才行],虽然,普通用户也能执行某些[注意,只是某些]操作,但对于实战而言,我还是更建议大家事先先想办法把自己提到一个正常的特权身份下,比如,系统内建的administrator,这样后续在实际搞的时候,尽量最大程度上减少一些不必要的麻烦

0x04 关于diskshadow的基本用法

如下是diskshadow在交互模式下的简单应用,很显然,这种方式并不适合用于实战,很明显,因为这样的话,你还得先连到目标系统的桌面里,通常情况下,都不会通过远程桌面的方式直接登到目标域控机器上去搞,风险太大是一方面,另一方面也完全没必要这样干

diskshdow在非交互模式的应用,如下,其实都是些非常简单的东西,更多的内置用法直接help下就出来了,每个子命令后面也都带有详细的用法说明,清晰明了

0x05 了解完基本使用之后,接着我们就来简单看下如何利用Diskshadow的非交互模式离线导出目标域内所有域用户的密码hash

如下,我们可以事先把用于导hash的diskshadow子命令都放到diskshadow.txt文件中,而后再用/s选项来加载执行,在执行过程中系统会多出一个盘符[实际效果如下图,实际上这就是创建的那个快照],不过它持续存在的时间可能会比较短,根据文件命令可知,ntds.dit文件在拷完后会立即删除该"快照",所以,如果你想看到的话,动作一定快,另一个好处就是,它不太容易被管理员察觉[只要别在人正上班管理员在线的时间干],至于ntds.dit文件,其实简单来讲就是windows活动目录的核心数据库,里面存有每个域用户的详细信息,我们一般会在拿下域控后不久,做完该做的基本动作之后,下一步通常都是导出域内所有域用户的密码hash,留作备份,好进行后续的一些横向移动动作,ok,废话不多说,来看具体操作

首先,想办法先rdp连到目标域的Lisa-PC机器上[注意,这台机器在实战中,最好选一台很少有人会光顾的机器,操作的时候也尽量选在目标下班或者放假的时间,尽可能减少暴露风险],打开cmd,net use到2008R2-DCServer[域控]机器上,把我们事先准备好的diskshadow.txt文件传过去,再拿着域管密码的ntlm hash用wmiexec把目标的半交互式cmd shell弹回来,接着进到2008R2-DCServer机器的system32目录下[注意,这里务必一定要先进到域控的system32目录下,不然diskshadow在执行期间可能会有些问题],用diskshadow加载diskshadow.txt文件[建议给绝对路径]执行即可,以下是实际的执行效果

如下,我们可以很清晰的看到整个卷影,虚拟磁盘创建以及复制ntds.dit文件到指定目录下的过程

在上面diskshadow.txt文件中的内容全部执行完以后,可以顺手看下c:\windows\temp\目录有没有ntds.dit文件,特别注意下文件的大小,万一没有,就要根据自己目标的实际情况去好好分析下到底是哪里出了问题

接着,我们还需要把system转存下,众所周知,在这个里面存的有ntds.dit所需的引导秘钥,没有它,ntds.dit中的数据就解不出来,所以,我们也需要把它一并拖回来

具体操作如下,记得ipc用完以后,就习惯性的顺手把它断掉

最后,我们只需把刚刚导出的ntds.dit和syste.hive文件都拖到本地,再用impacket中的secretsdump.py脚本,即可把ntds.dit中的所有目标域的域用户及对应的用户密码hash都解出来,不过,这个信息量,显然是太少了,先所有把hash拿来用用还是可以的,具体如下

0x06 说在最后

因为 Diskshadow 内部也是在利用VSS服务在执行操作,所以服务在运行期间势必会留下日志[如下,id为7036的日志],所以,当你干完活儿以后,走的时候一定要记得顺手处理下这些东西[关于windows日志处理又是个比较大的话题,此处暂不做过多涉及,后续有机会再慢慢说],另外,现在也可能或者早就已经就有各种内网防御产品来实时监控这个id的日志,想必大家可能也都知道这意味着什么,ok,再多的废话我们就不说了,请尽量根据目标的实际情况去自行把握

一点小结

此处演示的也只是导出目标域内所有域用户hash的其中一种方式而已,而且也并不是最好的方式,另外,稍微有些经验的朋友也都知道,一个域用户的一套完整数据下来大概要占1M左右,一个中小型的域可能也就两三千用户的样子,那也就意味着这个ntds.dit可能会有两三G那么大,这么大坨数据,在实战环境中想把它拖回来,其实很困难的,所以,如果当目标域用户真的特别多的情况下,就十分不建议这样离线导了,至于如何在目标机器上在线导出目标域内所有域用户hash,是我们后续的话题,关于其它的更多的导域内hash的方式,后续再慢慢一一说明,篇幅原因,今天就先不多啰嗦了,祝,好运 ^_^

注: 写文不易,公众号之外的转发请务必通过此公众号事先与作者本人联系并严格声明文章出处,非常感谢 !

另:本公众号的所有文章仅作攻防研究学习之用,严禁私自用所学技术去从事一切未经合法授权的入侵攻击破坏活动,因此所产生的一切不良后果与本文作者及该公众号无关

更多更优质的精品原创实用技术干货分享,和众多资深apt及红队玩家一起深度无缝交流,欢迎微信扫码加入小密圈,另外,关于本文完整pdf原件现也已分享到自己密圈中,我们会在那里一直等你

更多优质公开技术分享,欢迎关注个人公众号 "红队攻防揭秘",另,同时欢迎大家的无私 转发 , 打赏 , 点赞 与 留言, 非常感谢

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181022G1ZD7J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券