所有SQLSERVER账号的密码都经过了pwdencrypt这个函数的加密。
比如:

SQL代码
select pwdencrypt('ninty');  


0x01001F32B351238BEEE4411C2006F5D76C7FE66AABC977CB5A803395B514A1CDD5A8DE14C3250AAF89A8B4EA4633
(因为加密算法跟时间有关,所以每次执行所得的值不一样。)


在SQLSERVER2000中,用户的HASH都存在于 master.dbo.sysxlogins 表里面:

SQL代码
select name,password from master.dbo.sysxlogins

 

就可以抓出HASH。
下面是我机器上的SA用户的HASH:

0x01004E04BE46023057E323AF27269E5B7DDCA140C98D225BDD3D06E8EFE8CFAEC02985B27B38059FA3B18349612B

分解一下下:

常量部分:0x0100
Salt部分:4E04BE46
混合密文:023057E323AF27269E5B7DDCA140C98D225BDD3D
大写字母密文:06E8EFE8CFAEC02985B27B38059FA3B18349612B 后40位

有了HASH就可以破解了,用到的工具是CAIN。

转到CAIN的破解功能那里,添加一个待破解的MSSQL HASH
有三个需要写的文本框。

将salt ,混合密文 跟大写字母密文填入,就可以破解了。

文章如转载,请注明转载自:http://www.5iadmin.com/post/193.html