使用Bootkit绕过Windows 登录密码

来源:互联网 发布:龙虎榜数据分析软件2.3 编辑:程序博客网 时间:2024/05/01 14:08

原文链接:http://www.52pojie.cn/thread-181746-1-1.html

本帖最后由 wowocock 于 2013-6-5 18:11 编辑

前几天想登录虚拟机里的一个WINDOWS,结果发现密码怎么也想不起来了,于是搜索了资料,写了个工具,以解燃眉之急。
其实WINDOWS的登录验证是通过WINLOGON 里的msv1_0.dll验证密码函数msv1_0!MsvpPasswordValIDAte,其内部会调用RtlCompareMemory,从SAM中取出的用户密码哈希和用户输入的密码哈希,比较长度为16个字节,所以只要Patch了这个让其返回TRUE。则可以骗过密码验证直接登录WINDOWS。一般来说我们可以写一个驱动,PATCH了这个验证函数即可。但实际上出问题的时候,我们可能根本无法登录进WINDOWS,也无法安装我们的驱动,但通过利用BOOTKIT的方式,我们可以用U盘启动一个WINPE,然后在WINPE里安装我们的bootkit到硬盘的MBR里,然后启动系统,即可。老外以前写过一个简单的例子,但只支持XP,但在这个BOOTKIT技术已经烂大街的年代了,扩展到支持VISTA,WIN7 32位,也很容易。但WIN7 64则要麻烦点,因为要涉及到PATCH GUARD的处理,虽然也提供了支持,但可能有些系统下会起不来,目前只测试了WIN7 64和WIN2008 R2的部分系统,支持上来说不如32位完善,而32位下则除了WIN8以外,基本都能支持。
currently only support 32bit xp,2003,vista,win7!
maybe support 64bit win7!
syntax:
PwdIgnore /dump
PwdIgnore /restoredump
PwdIgnore /xp
PwdIgnore /win7
PwdIgnore /win7x64

首先使用  /dump在当前目录下生成MBR.BIN文件,以供恢复原来的MBR使用,通过 /restoredump 来恢复MBR.
如果目标登录系统是32位的 2000,XP,2003 则使用   /xp 写入XP系列的BOOTKIT
如果目标登录系统是32位的 vista win7 则使用   /win7  写入win7系列的BOOTKIT 
如果目标登录系统是64位的 win7 2008 r2   则使用   /win7x64  写入win7 64位系列的BOOTKIT 。
其他系统请勿使用,否则可能会导致系统无法启动,当然也可以在任何时候进WINPE下通过  /restoredump 来恢复MBR 。
如果在非WINPE下,存在其他杀软的时候,写入MBR可能会被杀软阻止,点允许即可,如果是无提示写入的话,说明你需要更新你的杀软了,建议使用360安全卫士,防御效果来说还是不错的,嘿嘿。



PwdIgnore.zip

39.48 KB, 下载次数: 309, 下载积分: 吾爱币 -1 CB

pwdignore_new.zip