2023年秋天,管理我帮一个开咖啡馆的员密朋友处理他店里的收银系统。那台机器是码破台老旧的Windows 7一体机,收银软件是解工具本地部署的,后台密码被他前员工改过,管理人已经联系不上了。员密他问我能不能搞进去,码破我说试试看。解工具结果花了不到二十分钟,管理我就坐在了他收银后台的员密管理界面里。用的码破不是什么高深漏洞,就是解工具最基础的SAM文件提取加彩虹表碰撞。
这件事让我意识到一个很实际的管理问题:大多数人把“管理员密码”想象成一道铁门,实际上它更像一把挂锁——防得住顺手牵羊,员密防不住真想进来的码破人。
Windows的本地账户密码不会以明文形式躺在硬盘里。它经过NTLM哈希算法处理,存进一个叫SAM的文件,路径是C:\Windows\System32\config\SAM。这个文件在系统运行时是被锁死的,你直接复制会提示“文件正在使用”。所以破解的第一步,通常是用PE盘启动,或者用工具把SAM和SYSTEM两个文件dump出来。
我那次用的就是老毛桃PE,进去之后直接拷文件。拷出来之后丢进hashcat或者ophcrack,如果密码强度不高——比如纯数字、生日、常见单词——几分钟到几小时就能出结果。那个前员工设的密码是admin123,ophcrack的XP专用彩虹表三秒就撞出来了。
这里有个细节值得说:很多人以为设了密码就安全了,但Windows 7和XP时代的LM哈希有个致命缺陷——密码超过7位会被截断成两段分别哈希,等于把复杂度砍了一半。即便你设了14位密码,实际有效强度可能只相当于7位。这也是为什么老系统特别容易被破。
真正搞过系统维护的人都知道,大部分时候根本不需要“破解”密码,直接绕过就行。比如用chntpw这个工具,在Linux环境下挂载Windows分区,把SAM里的密码字段清空。重启之后密码就没了,直接空密码登录。整个过程不到五分钟,连哈希都不用跑。
还有一种更粗暴的办法:替换Utilman.exe或者sethc.exe(就是那个粘滞键程序)。在登录界面按五次Shift键会触发sethc,如果你提前把它替换成cmd.exe,登录界面就能直接弹出一个SYSTEM权限的命令行。这时候用net user命令改密码,一秒钟的事。这个手法在Windows 10上到现在都还能用,只要你能物理接触到机器。
我认识一个做企业IT运维的老哥,他跟我说他们公司处理离职员工电脑的标准流程就是:PE盘启动,chntpw清密码,进去拷数据,重装系统。整套动作行云流水,根本没人去“破解”什么。
很多人把“破解管理员密码”和“爆破远程桌面密码”混为一谈。后者是在线攻击,你得通过网络不断尝试登录,速度受限于网络延迟和账户锁定策略。前者是离线攻击,你拿到了哈希文件,在自己的机器上想跑多快跑多快。一张RTX 4090跑NTLM哈希,每秒能试几百亿次。8位纯数字密码,穷举也就几秒钟。
所以密码长度比复杂度更重要。一个12位的小写字母密码,比一个8位的“大小写+数字+符号”密码要难破得多。这是很多人搞反的事情。
所有本地管理员密码破解手段都有一个共同前提:攻击者能物理接触到机器,或者能启动一个外部系统。如果你的电脑开了BitLocker,并且TPM芯片绑定了启动链,那PE盘启动这条路就被堵死了。SAM文件被BitLocker加密保护,拷出来也是乱码。
但现实是,我见过的中小企业里,开BitLocker的不到一成。大部分机器连BIOS密码都没设,启动顺序随便改。这种情况下谈密码强度,有点像给纸糊的门装一把C级锁芯——锁本身没问题,门不行。
那个咖啡馆的收银机后来我帮他重装了系统,开了BitLocker,BIOS也加了密码。他问我还会不会被破,我说看你得罪谁了。如果对方能拿到你的机器、有足够时间、又有针对性的工具,没有绝对安全的本地密码。但如果只是防一下普通店员或者顺手牵羊的人,这些措施足够了。
说到底,管理员密码破解这件事,技术门槛比大多数人想象的低,但物理接触的门槛比大多数人想象的高。两者一叠加,真正需要担心的场景其实很有限。