【网络攻防课实验】二:Windows本地破解用户口令

文章目录

    • 实验前言
    • 实验目的
    • 实验环境
    • 实验步骤
    • 实验总结


实验前言

  • SAM(Security Accounts Manager 安全账户管理器)是Windows NT
    内核操作系统,包括Windows2000/XP/Server 2003/Vista/7的用户账户数据库,所有用户的登录名及口令等相关信息都保存在这个文件中。

    系统在保存sam信息之前对sam信息进行了压缩处理,因此,sam文件中的信息不可读取。

实验目的

  1. 了解Windows2000/XP/Server 2003系统密码的加密机制及其脆弱性;
  2. 学会使用Windows本地密码破解工具来破解密码跟审计密码的安全性;
  3. 了解设置健壮的Windows口令,以及配置强壮的密码策略的必要性。

实验环境

  • 实验主机:WindowsXP。

    实验目标服务器:无。

    网络环境:局域网。

实验步骤

打开运行,输入“secpol.msc”打开本地策略编辑器,设置安全策略如下:

  • 关闭密码复杂性要求
  • 设置密码长度最低为8

【网络攻防课实验】二:Windows本地破解用户口令_第1张图片
在安全选项中打开在下次更改密码是存储LAN Manager的哈希值
【网络攻防课实验】二:Windows本地破解用户口令_第2张图片
创建新用户test,密码为147258369
【网络攻防课实验】二:Windows本地破解用户口令_第3张图片
打开pwdump7工具,获取账户密码hash值
【网络攻防课实验】二:Windows本地破解用户口令_第4张图片
【网络攻防课实验】二:Windows本地破解用户口令_第5张图片
将查询到的数据保存至指定文件:sam.txt
【网络攻防课实验】二:Windows本地破解用户口令_第6张图片
打开“SAMInside2.6.1”工具,导入sam.txt文件,选中test用户
【网络攻防课实验】二:Windows本地破解用户口令_第7张图片
配置好参数后,开始爆破,即可爆处密码
【网络攻防课实验】二:Windows本地破解用户口令_第8张图片

实验总结

扩展知识(摘抄自实验指导书):

1、Windows NT 系统密码存储的基本原理:

SAM(Security Accounts Manager 安全账户管理器)是Windows NT 内核操作系统,包括Windows2000/XP/Server 2003/Vista/7的用户账户数据库,所有用户的登录名及口令等相关信息都保存在这个文件中。系统在保存sam信息之前对sam信息进行了压缩处理,因此,sam文件中的信息不可读取。此外,在系统运行期间,sam文件被system账号锁定,即使是administartor账号也无法打开。sam数据库位于注册表HKLM\SAM\SAM下,受到ACL保护,可以使用regedt32.exe打开注册表编辑器并设置适当权限查看SAM中的内容。SAM数据库在磁盘上就保存在%systemroot%system32\config\目录下的SAM文件中,在这个目录下还包括一个security文件,是安全数据库的内容,两者有较少的关系。SAM数据库中包括所有组,账户的信息,包括密码HASH、账户的SID等。

Windows系统在SAM中采用了两种密码的加密机制,所以,在sam文件中保存着两个口令字,一个是LanMan版本的散列值(LM),另一个是NT版本的散列值(NTLM)。

  • LanMan 散列算法(LM)

LanMan散列算法处理用户口令的过程是:将用户口令分成两半,每一半都是7个字符(不足7个字符的以0x00补齐),然后分别对这另个口令进行加密,最后将加密后得到的散列值串连在一起,得到最终的LM散列值。

  • NT散列算法(NTLM)

密码散列有两部分组成:一部分是通过变现DES算法,使用密码的大写OEM格式作为密钥(分成2个KEY,每个KEY7字节,用0补足14个字节),通过DESECB方式获得一个128位的密钥,加密特殊字符串"KGS!@#$%"获得一个16字节长度的值。另一部分则是使用MD4对密码的UNICODE形式进行加密获得的一个散列。

从上述LM算法流程来看,可以发现LM安全性上的几点不足:

  • 1)LM算法将14个字节的密码分为两组分别进行加密,使得两组密文可以分别破解,并且明文空间从95^ 14减少到了95^7;
  • 2)LM算法不区分密码的大小写字符,使得明文空间从95^ 7减小到69^7;
  • 3)LM算法不像其他散列算法一样包含随机的初始向量IV,使得用空间换取时间的字典攻击(如彩虹表)等成为可能,2^43的明文空间使用彩虹表最多只需几个小时便能破解。

虽然LM非常不安全,但Windows为了保持前后兼容性,是许多以前支持LM认证的经典应用不至于突然不能使用,所以LM扔存在于相当Windows各种版本的操作系统中,不过Vista/7已经默认不使用LM存储账户密码散列。

NTLM散列的安全性较LM有所提升,因为其明文空间扩展到了95^128,采用暴力破解的时间复杂度大大增加。但是NTLM散列和LM散列一样,都没有在算法中包含随机数据(salt),所以仍然会受到字典攻击。但由于NTLM的明文空间较大,其字段占用的空间也会呈几何级数增长(NTLM的彩虹表大小为200G左右,而LM的彩虹表只需几百兆即可),破解时间自然也较LM要长很多。

2、SAM的导出方法

SAM文件系统运行时受到保护,仅对是可读写的system,所以在系统运行时不能将SAM文件复制出来,必须使用别的系统启动才能复制SAM文件。

SAM文件的获取方法大致有一下四种:

  • 通过物理接触主机,启动其他操作系统来获取windows分区上的SAM文件。
  • 获取%SystemRoot%\repair\sam文件。
  • 使用pwdump等工具从注册表中导出SAM散列值,转储成类似与UNIX系统的password格式文件。
  • 从网络中嗅探分析SMB报文,从中获取密码散列字符串。

在Windows NT 4.0 SP3 之前,所有的密码散列是以非常简单的DES加密来实现安全存储,DES的密钥只是从用户账户的SID来导出的,所以只需要SAM文件便能破解加密的散列。

但是在NT 4.0 SP3 之后的版本中,Windows引入了SysKey,并且在2000之后作为默认执行的加密手段。所以要破解经过SysKey加密的SAM散列,必须要先从system文件中导出boot key,然后利用MD5导出hashed boot key,再用hashed boot key导出RC4 key,用此RC4 key 便能解密出和Windows NT的 SAM中一样的散列密文。最后用NT中的解密手段即可获得能够进行字典攻击的密码散列。

3、SAMInside破解软件

SAMInside 为一款俄罗斯人出品的密码破解软件,支持Windows NT/2000/XP/Server 2003/Vista/7等操作系统,主要用来恢复Windows的用户登录密码。与一般的Windows密码破解软件有所不同的是。多数的Windows密码恢复软件都是将Windows用户密码重置,比如Passware Kit 系列中的Windows Key 等等。SAMInside 则是将用户密码以可阅读的明文方式破解出来,而且SAMInside可以使用分布式方式攻击方式同时使用多台计算机进行密码的破解,大大提高破解速度。

SAMInside的离线使用方式需要sam文件盒syskey文件导入后才能进行破解,而在线方式则可以直接从本机获取,可以从LSASS进程直接导入所需要的信息,然后对指定的用户进行破解即可。

你可能感兴趣的:(攻防课实验记录)