浅探内网横向移动-Pass The Hash - 先知社区 (aliyun.com)

Windows的密码管理

Windows创建密码后,密码经过哈希化处理后存储在安全账户管理器(SAM),本地安全机构子系统(LSASS)进程内存,凭据管理器(CredMan),Active Directory中的ntds.dit数据库或者其他地方。所以,当前用户登陆windows工作站或服务器时,他们会留下密码凭据(Hash)

影响面

如果在系统安装KB2871997补丁

系统版本大于等于windows server2012时(服务器版本)

大于等于win8.1(家庭版本)时

默认在lsass.exe这个进程中不会再将可逆的密文缓存在自己的进程内存中,所以我们默认没办法通过读取这个进程然后逆向该密文来获得明文密码

不过可以通过修改注册表强制要求lsass.exe缓存明文密码进行抓取,不过这种方式要求系统重启或者用户重新登陆,在实战中成功率较低

reg add HKLM\\SYSTEM\\CurrentControlSet\\Control\\SecurityProviders\\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

Hash

LM Hash

使用LM协议的hash,有很多缺点,容易被破解

但是在windows server2008开始就被取消了,但是在windows server 2003中还是存在的

LM Hash的缺点

1.密码长度最大只能为14个字符

2.密码不区分大小写(加密过程统一转换为大写,导致的)

3.加密结果后16位为aad3b435b51404ee,则说明密码强度小于7位。(如果不够7位的话,后面需要用0来补全)