密码与hash获取
hash的概念和hash函数不过多介绍了
现在很多md5的使用是双重md5或者加盐(拼接md5),知道盐值是可以解的。
hash算法在信息安全方面的应用:文件校验、数字签名、口令加密······
windows本地认证
- windows系统账号存储位置:
C:\windows\system32\config\SAM
- 在windows系统中,对用户账户的安全管理采用了SAM,用户账户以及密码经过hash加密后都保存在SAM中。
- SAM的两种加密方式LM加密和NTLM加密
- windows2003及之前都是LM口令散列,之后采用的是NTLM,LM的安全性较差,为了保持向后兼容性,系统会把用户密码两种分别加密后存放在SAM数据库
- 登录windows时,系统会把用户输入的密码与SAM文件中的密码对比,相同则认证成功
LM hash:
- 密码最多14字符
- 明文密码转大写
- 密码转换为16进制字符串,不足的会0补全
- 密码的16进制字符串被分为两个7byte部分
- 两组数据分别用str_to_key()处理
- 两组8字节数据将作为DESKEY对魔术字符串"KGS!@#$"进行DES加密
- 将加密后的两组数据简单拼接
因为LM对半拆密码导致密码空间下降,安全性降低
NTLM hash:
- 16进制编码
- Unicode
- md4()
注销、重启、锁屏后,操作系统会让winlogon.exe显示登录界面,让用户输入密码。之后将密码交给lsass.exe,该进程保存一份明文密码并NTLM HASH后与SAM数据库比较认证
hash获取与破解
- 获取hash常用工具
-
- wce
列举登录会话,可以添加、改变删除相关凭证
- wce
-
- Gethashes
gethashs $local
获取系统hash,仅在system权限下可执行
- Gethashes
-
- QuarksPwDump
必须在Dos命令提示符下运行
- QuarksPwDump
-
- SAMInside
图形化工具,可以获取win2008server一下操作系统hash
- SAMInside
除了工具以外,使用常规免杀获取hash:
- 使用注册表导出hash,本地破解:
reg save HKLM\SYSTEM sys.hiv
reg save HKLM\SAM sam.hiv
reg save hklm\security security.hiv
secretsdump.py -sam sam.hiv -security security.hiv -system sys.hiv LOCAL
- 导出sam文件
shadow copy (一般用在域控上几万几十万用户的时候)
- 其他方式
procdump(或者lsadump ) + mimikatz
Powershell+mimikatz
powershell+getpasshash
powershell+其他工具
Hash的破解
- windows hash格式
首先,windows hash是不加盐值的,且windows hash分为两部分,lm hash和ntlm hash。格式为username:lmhash:nthash
- 本地破解-彩虹表
这种破解方式需要超高资源,因为彩虹表的容量非常之大,ntlm 1-10位的要300多G - 在线破解。
https://www.objectif-securite.ch/en/ophcrack
或者cmd5 - msf破解