2017-2018-1 20155320《信息安全技术》实验二——Windows口令破解

实验目的

了解Windows口令破解原理

对信息安全有直观感性认识

能够运用工具实现口令破解

实验环境及工具

实验环境:windows

实验工具:LC5、SuperDic

实验原理

口令破解方法

口令破解方法包括字典破解和暴力破解。

字典破解

字典破解是指通过破解者对管理员的了解,猜测其可能使用某些信息作为密码,例如其姓名、生日、电话号码等,同时结合对密码长度的猜测,利用工具来生成密码破解字典。如果相关信息设置准确,字典破解的成功率很高,并且其速度快,因此字典破解是密码破解的首选。

暴力破解

暴力破解是指对密码可能使用的字符和长度进行设定后(例如限定为所有英文字母和所有数字,长度不超过8),对所有可能的密码组合逐个实验。随着可能字符和可能长度的增加,存在的密码组合数量也会变得非常庞大,因此暴力破解往往需要花费很长的时间,尤其是在密码长度大于10,并且包含各种字符(英文字母、数字和标点符号)的情况下。

口令破解主要有两种方式

离线破解和在线破解

离线破解攻击者得到目标主机存放密码的文件后,就可以脱离目标主机,在其他计算机上通过口令破解程序穷举各种可能的口令,如果计算出的新密码与密码文件存放的密码相同,则口令已被破解。

口令破解程序的工作流程如下:

image

实验步骤

  • 首先通过快照X恢复Windows系统环境。
  • 字典破解

(1)为本机创建新用户。为了达到实验效果,用户口令不要设置得过于复杂

(2)进入实验平台,单击工具栏“字典生成器”按钮,启动“字典生成器”。选择“生日”标签页,输入的年份与月份信息应尽量包含步骤(1)中用到的生日日期,在“生成字典”标签页中确定字典文件存放的路径以及新用户口令位数,最后生成字典文件。

(3)单击工具栏“LC5”按钮,启动LC5口令破解工具。选择“Session”(会话)|“Session Options…”(会话选项)菜单项,在弹出的“Auditing Options For This Session”对话框中选中“Dictionary Crack”项的“Enabled”,取消其它项的“Enabled”。单击“Dictionary List”(字典列表)按钮,导入步骤(2)中生成的字典文件。

(4)返回LC5主界面,选择“Session”|“Import…”(导入)菜单项,在弹出的“Import”对话框中导入本地用户列表,选择“Session”|“Begin Audit”(开始审计)菜单项,开始字典破解用户口令。

要注意注意的是设置的用户口令和在生成字典之前“生日”标签中的口令模式要相同,因为口令破解的主要原理就是依靠固定模式下的穷搜攻击破解。
如下图所示:

暴力破解

(1)创建新用户,建议用户口令仅由英文字母和数字组成,长度不超过6位,如123abc。

(2)选择LC5的“File”|“New Session…”(新会话)菜单项,新建会话。重新导入本地用户列表。

(3)在会话选项中仅选中“Brute Force Crack”(暴力破解)|“Enabled”,并在“Character Set”(字符集)中选择“alphabet+numbers”(字母表+数字), 开始暴力破解新建用户口令。
如下图所示:

不同密码强度的破解时间比较

(1)再次新建4个用户,使用不同强度的用户口令

(2)新建LC5会话,在会话选项中选中暴力破解选项,字符设置选择“Custom”(自定义)。为了减少破解所需时间,请缩小自定义字符集。

(3)开始暴力破解,当破解完成后,查看LC5的破解信息,记录各自的破解时间。
(4)根据实验结果不难发现长密码比短密码破解要更多的时间,复杂密码比简单密码需要更多的时间,这也就是设置复杂密码能够提高系统安全性的原因。
如下图所示

因为已经按实验要求把多余密文删去,故用时很少即推算出明文

所用时间如下图所示:

  • 根据实验结果不难发现长密码比短密码破解要更多的时间,复杂密码比简单密码需要更多的时间,这也就是设置复杂密码能够提高系统安全性的原因。

思考题

  • 问题1:分析口令破解软件L0phtCrack(简写为LC)的工作原理。
  • 答:口令破解的两种方法为:字典破解和暴力破解。

其中字典破解是指通过破解者对管理员的了解,猜测其可能使用某些信息作为密码,例如其姓名、生日、电话号码等,同时结合对密码长度的猜测,利用工具来生成密码破解字典。如果相关信息设置准确,字典破解的成功率很高,并且其速度快,因此字典破解是密码破解的首选。

暴力破解是指对密码可能使用的字符和长度进行设定后(例如限定为所有英文字母和所有数字,长度不超过8),对所有可能的密码组合逐个实验。随着可能字符和可能长度的增加,存在的密码组合数量也会变得非常庞大,因此暴力破解往往需要花费很长的时间,尤其是在密码长度大于10,并且包含各种字符(英文字母、数字和标点符号)的情况下。

  • 问题2:Windows 7的口令保护文件名称及存储位置是什么?

  • 答:存储的位置在X:\windows\system32\config\SAM中。文件名为SAM.

  • 问题3:Windows保护系统帐户口令的算法有LM和NTLM,这两种算法有什么区别?

  • 答:LM只能存储小于等于14个字符的密码hash,如果密码大于14个,windows就自动使用NTLM对其进行加密了,(这个在LC5里有两种破解方式,所以破解不出来的时候可以换种思路,基本是NTLM的)一般情况下使用PwDump或其他一些hash导出工具(如Cain)导出的hash都有对应的LM和NTLM值,也就是说这个密码位数<=14,这时LM也会有值,但如果大于14位那么就只有对应的NTLM hash可用了,在LM-Password中会以全0显示,在老版本中以AA3D开头显示的也表示密码位数超过14位,对我们来说没用,不能靠他来查LM彩虹表。

  • 问题四:为了保护口令安全,设置口令应该遵循什么样的原则?

  • 答:最重要的是口令的安全性,设置的口令时不要太简单, 口令还要容易记忆,避免太复杂而忘记的情况。应该是要选择与自身信息无关的口令,其次口令内容应该尽量随机,所包含的字符类型应当多样化。

  • 问题五:Windows系统在什么地方可设置帐户密码策略?帐户密码策略包括哪些内容?

  • 答:可以参考windows密码策略在哪里查看及设置

  • 问题六:在密码破解中,常到彩虹表(Rainbow Table),彩虹表是什么?

  • 答:
    彩虹表是一个用于加密散列函数逆运算的预先计算好的表, 为破解密码的散列值(或称哈希值、微缩图、摘要、指纹、哈希密文)而准备。一般主流的彩虹表都在100G以上。 这样的表常常用于恢复由有限集字符组成的固定长度的纯文本密码。这是空间/时间替换的典型实践, 比每一次尝试都计算哈希的暴力破解处理时间少而储存空间多,但却比简单的对每条输入散列翻查表的破解方式储存空间少而处理时间多。使用加salt的KDF函数可以使这种攻击难以实现