利用SAM破解系统登录密码

今天的网络攻防课讲了一个有意思的东西,随手来测试一下。

SAM(Security Account Manager,简称SAM)是windows的口令文件,存储了系统账户的信息(所有组、帐户的信息,包括密码的HASH、帐户的SID等),我们可以根据获取的SAM文件爆出终端所有的账户和密码。
ciji.jpg

windows的SAM文件放在C:\Windows\System32\config里面,但是这个路径下的文件在登录进系统时被系统进程占用了,我们无法进行任何操作,所以需要从其他地方获取该文件。
获取的途径有两种:1、C:\Windows\Repair里面会有一个备份。2、如果备份被删掉的话,可以用进入PE系统,这时候就没有任何进程占用该文件了,可以拷出来。
PS:拷文件时把同目录下的SYSTEM也拷出来,后面破解要用。

Windows 对同一用户口令采用两套单向散列函数进行运算,即单向LM散列算法和单向NT散列算法,两种算法的结果都保存在SAM文件中。这两种算法产生的HASH值就是我们所要利用的。
具体原理是:两种算法根据原始密码生成散列值,我们利用掩码攻击、暴力枚举或字典攻击等方式将生成的密码进行同样算法的运算,生成的散列值与SAM文件中的散列值比对,如果一样就是正确的密码,将密码输出。

下面进行简单的实际操作

这里用到的工具是:saminside,这里附上下载地址:https://pan.baidu.com/s/1s0LP2IPO3LLzYPny0iQhrA 密码:4475
1、首先将SAM和SYSTEM文件都拷到saminside工具的Tools目录下(避免出现一些意外的错误)。
2、打开软件,在file框选择第一个:Imprrt SAM and SYSTEM Register File ,然后选择SAM和SYSTEM文件。
3、选择好文件后,要选择加密算法,看文件的HASH字段是LM还是NT,我这里是NT,所以点击工具,切换为NT算法。
hash.JPG
4、接下来点击OPtions,选择要进行的攻击方式,这里我选择暴力破解,因为我知道自己的密码,定个范围就好了。
niubi.jpg
5、接下来等着出结果了,密码不难的话一下子就跑出来了。
jieguo.JPG
6、还有一种方法是,在file框选择第二个:Import SAM Rigistry and SYSKEY File,然后选择SAM文件。
7、下一步会让我们选择key文件,这里解释一下该文件:Windows系统也会采用了更为安全的SYSKEY加密方式保护登录密码,对密码进行二次加密,使得L0phtCrack这样的逆天神器也无能为力,SYSKEY二次加密后也保存在SYSTEM文件中。讲到这里思路应该很清晰了,将之前拷贝的SYSTEM文件反向提取出key文件,然后拿key文件跑出密码。key文件的获取方式是:在Tools下有一个GetSyskey.exe程序,在该目录下打开cmd界面,输入:
GetSyskey.exe SYSTEM 文件名
就会输出key文件。这个方法很明显,当系统采用SYSKEY进行二次加密时用的,而且用之前要先进行第一步的文件导入。
这里我遇到一个小bug,我不管输入什么文件名,输出的文件都叫StartKey.key,我猜可能是软件的问题,不过无伤大雅。各位大黑阔们如果解决了这个问题记得在下面评论告诉我一下。
感觉自己密码好危险,快去改掉!!!
kedaya.jpg
有不懂得可以在下面留言,我会尽快回复的。

------ 本文结束感谢您的阅读 ------
坚持原创技术分享,您的支持将鼓励我继续创作!