无论您使用的是Microsoft 帐户, Windows 哈希都保存在您计算机上的SAM
文件中(使用文件加密) 。即使您没有连接到互联网,也需要通过这种方式登录您的计算机。如果您使用account.microsoft.com更改密码,您仍然可以使用旧密码登录您的计算机(即使您使用的是Microsoft 帐户)。登录系统后会提示输入新密码,但只要不输入新密码,就可以使用旧密码登录电脑。输入新密码后,(可能)文件将被更新。SYSTEM
SAM
SYSTEM
您(错误地)获得31d6cfe0d16ae931b73c59d7e0c089c0
密码的哈希值,因为自Windows 10 周年更新SAM
以来和/或SYSTEM
文件的格式已更改(请参阅:类似问题),因此工具如, , ,打印空密码的哈希值(我在我的 Windows 上验证了它10)。自此更新以来,Windows使用AES128来加密密码的MD4哈希。因此,几乎所有有关Windows 密码恢复的教程都已过时。chntpw
bkhive
pwdump
samdump2
幸运的是, Benjamin Delpy创建了一个名为(仅限 Windows,但可以使用Wine在 Linux 上运行)的工具,它可以读取以 Windows 的新格式保存的密码哈希值。请注意,Windows Defender和 Symantec 防病毒软件将其视为“黑客工具”并将其删除,因此您需要在运行之前禁用它们(以管理员身份运行)。mimikatz
mimikatz
mimikatz
由许多模块组成,但您应该探索lsadump
模块,特别是lsadump::sam
功能。
文档摘录:_
如果您不是SYSTEM
或使用模拟SYSTEM
令牌,您将遇到拒绝访问错误:
mimikatz # lsadump::sam
Domain : VM-W7-ULT-X
SysKey : 74c159e4408119a0ba39a7872e9d9a56
ERROR kuhl_m_lsadump_getUsersAndSamKey ; kull_m_registry_RegOpenKeyEx SAM Accounts (0x00000005)
在这种情况下,您可以使用psexec
start SYSTEM
(或其他工具)或使用token::elevate
命令提升来模拟SYSTEM
令牌:
mimikatz # privilege::debug
Privilege '20' OK
mimikatz # token::whoami
* Process Token : 623884 vm-w7-ult-x\Gentil Kiwi S-1-5-21-1982681256-1210654043-1600862990-1000 (14g,24p) Primary
* Thread Token : no token
mimikatz # token::elevate
Token Id : 0
User name :
SID name : AUTORITE NT\Système
228 24215 AUTORITE NT\Système S-1-5-18 (04g,30p) Primary
-> Impersonated !
* Process Token : 623884 vm-w7-ult-x\Gentil Kiwi S-1-5-21-1982681256-1210654043-1600862990-1000 (14g,24p) Primary
* Thread Token : 624196 AUTORITE NT\Système S-1-5-18 (04g,30p) Impersonation (Delegation)
mimikatz # lsadump::sam
Domain : VM-W7-ULT-X
SysKey : 74c159e4408119a0ba39a7872e9d9a56
SAMKey : e44dd440fd77ebfe800edf60c11d4abd
RID : 000001f4 (500)
User : Administrateur
LM :
NTLM : 31d6cfe0d16ae931b73c59d7e0c089c0
RID : 000001f5 (501)
User : Invité
LM :
NTLM :
RID : 000003e8 (1000)
User : Gentil Kiwi
LM :
NTLM : cc36cf7a8514893efccd332446158b1a
您可以在此处下载x86
和amd64
二进制文件。mimikatz
作为旁注 - 如果您想确保密码的哈希是您密码的哈希,您可以使用Python轻松完成:
user@mycompa:~$ python3
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import hashlib, binascii
>>> passwd = "password"
>>> hash = hashlib.new('md4', passwd.encode('utf-16le')).digest()
>>> print(binascii.hexlify(hash))
b'8846f7eaee8fb117ad06bdd830b7586c'