欢迎来到天天文库
浏览记录
ID:15406976
大小:98.50 KB
页数:25页
时间:2018-08-03
《sam的散列存储加密解密算法以及syskey的计算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SAM中存放在密码散列这是大家都知道的,但是其密码存放在对应相对SID的V键下面却是一种加密的形式,如何通过这个加密的串计算出密码散列了,大家用PWDUMP3这样的工具可以导出散列来,主要原理是系统空间会存在一个sampsecretsessionkey,PWDUMP3就是拷贝一个服务到对方机器上,读出这个lsass进程空间的sampsecretsessionkey再进行解密的,其实这个sampsecretsessionkey的生成也是非常复杂的,我们这里做一个比PWDUMP3更深入的一个探讨和分析,sampsecretsessionkey的计算与生成,这样我们就能在直接从物理文件中计算出s
2、ampsecretsessionkey,来解密注册表中的密码散列,对于一个忘记密码的系统或一个不知道用户口令但已经获得磁盘的系统有这重要意义,这样我们完全就能通过注册表文件的分析来解密注册表中的密码散列。通过分析,我们发现以前在NT中常说的SYSKEY在W2K系统的这个过程中起着非常重要的作用,其实SYSKEY已经做为W2K的一个固定组件而存在了,我们下面给出一个整个过程:系统引导时:计算获得SYSKEY读取注册表中的SAMSAMDomainsAccounV中保存的KEY信息(一般是最后的0X38字节的前0X30字节)使用SYSKEY和F键的前0X10字节,与特殊的字串"!@#$%
3、^&*()qwertyUIOPAzxcvbnmQQQQQQQQQQQQ)(*@&%","0123456789012345678901234567890123456789"做MD5运算,再与F键的后0X20字节做RC4运算就可以获得sampsecretsessionkey,这个sampsecretsessionkey固定存放在LSASS进程中,作为解密SAM中加密数据到散列时用-------------------------------------------------
4、系统计算出的SYSKEY
5、
6、F键信息的前0x10字节
7、MD5
8、"!@#$%^&*()qwertyUIOPAzxcvbn
9、mQQQQQQQQQQQQ)(*@&%"
10、--->------
11、"0123456789012345678901234567890123456789"
12、
13、RC4--------------------------------------------------
14、------>sampsecretsessionkey
15、F键信息的后0x20字节-------------------当需要解密SAM中加密数据到散列时(如远程登陆):读取sampsecretsessionkey,再与当前用户的相对SID,散列类型名(如LMPASSWORD,NTPASSWORD)做MD5运算获得针对这个用户密码散列的
16、sessionkey利用sessionkey用RC4解密第一道加密的散列,再将用户相对ID扩展成14字节做DES切分,生成DESECB,再对用RC4处理后的散列进行分开成2次DES解密就可以获得密码散列。-------------------------
17、sampsecretsessionkey
18、
19、sid
20、MD5
21、"LMPASSWOR"/"NTPASSWOR"
22、--->sessionkey---
23、
24、
25、RC42次DES(填充SID做KEY切分)-------------------------
26、----->-------------------------->HASH
27、对应的SAM中加密的密
28、码散列---------------------------------这个算法相当好,保证了不同用户的相同散列在SAM存放不一样(相对SID不一样),不同机器的同一SID同口令的SAM中的散列存放不一样(SYSKEY不同);这个算法的DES/RC4都是可逆的,这样如果我们能通过离线(文件)方式获得SYSKEY的话(其他的信息都可以分析SAM文件获得),我们完全实现离线修改SAM中口令的效果,不过这需要对注册表的结构和SAM中V/F键的数据结构再做深入的研究,这里就不谈了。那么SYSKEY是如何计算出来的呢?这可能是我发现MS最牛皮的一个地方了,先开始想一定会存放在注册表某处,呵呵,最后跟
29、踪MS引导时候的WINLOGON进程才知道,SYSKEY是这样计算出来的,很多人会大掉眼镜吧:SYSKEY的计算是:SYSTEM\CurrentControlSet\Control\Lsa下的JD,Skew1,GBG,Data四个键值的CLASS值通过换位得来的,靠,佩服MS。这样我们完全可以离线分析注册表就能获得对其SAM的加密散列的导出或改写了。下面就是给出的完全实现计算SYSKEY-》sampsecretse
此文档下载收益归作者所有