浅谈Serv-U的密码机制

熟悉Serv-U的用户都知道它保存密码的文件是ServUDaemon.ini,以下是这个文件的一个片断:

[USER=zxl|1]
Password=kr1CB5DDCB3A2EFCB293D2B0757762E205
HomeDir=f:\
TimeOut=600
Access1=F:\|RWAMLCDP
Access2=E:\|RWAMLCDP

这几行的意思是zxl有E: F:的除执行文件以外的所有权限,而他的密码Hash值为kr1CB5DDCB3A2EFCB293D2B0757762E205
,下面再来讲这串Hash值是怎么算出来的:它先随时生成两个字符,这里是kr,然后将生成的随时字母+用户密码求MD5值,这里就是1CB5DDCB3A2EFCB293D2B0757762E205。举个例子,比如用户的密码为123456,Serv-U随时生成的两位字符串是gl,那么Password字段的值应该是gl+MD5(gl123456),也就是gl8F85E32F11B1E4CFCBE353B5B646BF0F

用这种加密方式显然增加了MD5破解的难度,至少原本能直接找个网站查出的123456 MD5值现在就查不出了。但是这种加密方法真的能确保安全吗?因为我们已经知道了它的加密方式,所以只要有一个支持前缀的MD5破解工具,破它的密码和破其它MD5密码没有两样。比如说mdcrack-sse.exe(附件有下载),一款国外的强悍的hash破解工具,它能跑MD2, MD4, MD5, MD5MD5, MD4MD4, MD4MD4S, MD5MD5S, HMAC-MD4, HMAC-MD5,而且速度也是相当的快,用它跑Serv-U的密码和跑传统的密码没有太大的区别。Serv-U密码的失败原因在于它的加密方法过于简单,只是对一般的MD5函数小改了一下,个人觉得用Md5(md5(X))这个Hash函数来保存密码都比它的强。

mdcrack-sse的使用方法:

它的参数较多,这里给出一个例子,比如我们要破gl8F85E32F11B1E4CFCBE353B5B646BF0F,那么它的命令就是:

mdcrack-sse.exe  --priority=NORMAL --prepend=gl  --minsize=8 --maxsize=15 --charset="1234567890" --algorithm=MD5  8F85E32F11B1E4CFCBE353B5B646BF0F

解释一下:--priority=NORMAL表示进程优先级为中等(默认为高),--prepend=gl表示前缀为gl,--minsize=8 --maxsize=15 明文的长度范围,--charset="1234567890" 表示明文字符的组成为全数字,--algorithm=MD5表示密文为MD5的hash值。更详细的参数说明可执行:mdcrack-sse.exe --help。

附件mdcrack-sse.exe 下载:mdcrack-sse.rar

  • quote 1.Tr4c3
  • SERVU2.0的加密用的不是这个。在韩国遇见了不少
    langouster 于 2007-05-27 14:48:33 回复
    2.0还真没研究过,希望它的安全性能有所提高.
  • 2007-05-27 14:48:33 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Copyright langouster. Some Rights Reserved.   苏ICP备06046736号   

本站点由 Z-Blog 2.0 bate Build 构建,基于 Glued Ideas Subtle 主题,由 zx.asd 移植并创新.