数年前,为了帮助系统管理员发现漏洞,我编写了一个密码破解工具,用于恢复Microsoft的用户密码。当时,这个工具称为L0phtCrack,后来重命名为LC5。再后来,Symantec(得到了它的版权)担心违反国际武器限制公约(ITAR)而将它停用了。(注2)网络和技术书籍上有许多文章描述了L0phtCrack的工作原理,但没人关注它为什么会起作用。L0phtCrack所利用的Microsoft Windows的漏洞可能会产生什么影响呢?
事实上,这个工具直接利用了Windows的加密程序的实现和使用中所存在的大量问题。所有这些问题都源于各种版本的Windows(直到Vista)中继续使用的遗留LAN Manager(LANMAN)的散列函数。它的散列表示形式尽管基于已经成熟的数据加密标准(DES),但并没有包含salt。另外,LANMAN中的密码不区分大小写。这个函数把14个字符(或更短)的密码分解为2个7字节的值,每个值根据同一个键进行加密,并连接在一起。当我于20世纪90年代后期在BugTraq的一个帖子上描述这个问题时,基本的加密序列是(见图1-1):

安全之美——1.1.1 实例:Microsoft是如何允许L0phtCrack的
书名: 安全之美
作者:
出版社: 机械工业出版社华章公司
原作名: Beautiful Security: Leading Security Experts Explain How They Think
译者: 徐 波 | 沈晓斌
出版年: 2011-4-28
页数: 253
定价: 65.00元
装帧: 平装
丛书: O‘Reilly-“之美”系列
ISBN: 9787111334774
