《网络攻防技术(第2版)》 —3.3 针对口令存储的攻击

举报
华章计算机 发表于 2019/12/15 22:29:15 2019/12/15
【摘要】 本节书摘来自华章计算机《网络攻防技术(第2版)》 一书中第3章,第3.3.1节,作者是朱俊虎,奚 琪 张连成 周天阳 曹 琰 颜学雄 彭建山 邱 菡 胡雪丽 尹中旭 秦艳锋 王清贤 主审。

3.3 针对口令存储的攻击

通常,系统为了验证的需要,都会将口令以明文或者密文的形式存放在系统中。对于攻击者来说,如果能够远程控制或者本地操作目标主机,那么通过一些技术手段就可以获取到这些口令的明文,这就是针对口令存储的攻击。

3.3.1 针对口令存储的攻击方法

不同系统的口令存储位置也各有不同,有些存放在文件中,比如Linux系统的Shadow文件,Windows系统的SAM文件;有些存放在数据库中,比如Oracle数据库账号口令;有些则存放在注册表中,比如Windows平台下的许多应用软件。另外,在身份验证程序运行的时候,还会将口令或口令的密文加载到内存中,方便进行比较。针对这几种情况,口令攻击可以包括针对缓存口令的攻击、口令文件提取以及其他存储位置的口令攻击方法。

1.针对缓存口令的攻击

在一个系统中,不论口令存储在什么位置,在进行用户的身份验证时,总要加载到内存中,这就存在口令泄漏的风险。著名的PWDump工具就是利用自身的内核文件系统驱动程序搜索系统内存,直接从硬盘中导出SYSTEM和SAM密文,并解密LM(LAN Manager,局域网管理)与NTLM(NT LAM Manager,NT局域网管理)的散列值密文,获取Windows系统的用户口令散列值甚至口令本身,并存储成PWDump系统支持的文件格式。图3-10显示了PWDump的执行情况,从图中可以看到Administrator账号口令的NTLM 散列(Windows 7系统默认存储NTLM 散列值)。

 image.png

图3-10 PWDump获取系统账号和口令

除了Windows系统本身,很多应用程序在处理用户口令时,也可能存在口令泄露的问题。

此外,一些系统为了使用户的操作更加方便快捷,提供了口令记忆的功能,攻击者能够通过搜索内存空间的方法获得这些缓存的口令。比如,用户通过网页访问邮箱时,Windows系统会自动显示用户以前曾经输入过的用户名和口令,尽管口令在屏幕上显示的是“*”号,但真正的口令已经存在于内存中,攻击者通过搜索内存,就可以获得明文口令。

2.针对口令文件的攻击

文件是口令存储的一种常见形式。比如,Windows系统的账号和口令存放在SAM文件中,Linux系统的账号和口令存放在Shadow文件中。尽管这些口令文件都以密文形式存放,但是一旦攻击者获得了这些口令文件,就可以通过离线暴力破解得到账号和口令信息,而且往往破解成功率很高。

需要注册的应用(如邮件、游戏、电商等)通常用数据库来存储用户账户和口令的哈希值,一旦攻击者入侵网站,存储用户账户和口令的文件就可能被窃取。通过对口令文件的攻击,就可以大量还原出用户的账户和口令明文。

还有一些邮箱账号和口令以文件形式存储在本地,如Foxmail(这是一个邮件收发软件)的用户邮箱口令存放在相应账号目录下的account.stg文件中,攻击者一旦获取该文件就可通过工具进行破解。

3. 口令的其他存储位置

除了存储在缓存和文件中以外,口令还有一些其他的存放方式。

注册表是Windows系统特有的对象,很多应用程序会将口令存放在注册表中。Windows系统本身的账号和口令存放在注册表键值HKEY_LOCAL_MACHINE\SAM下。

有的人喜欢把IE浏览器的“分级审查”功能设置为开启并设置口令(方法为选择“Internet选项→内容→分级审查”)。这样,在显示有ActiveX的页面时,就会出现“分级审查不允许查看”的提示信息,然后弹出口令对话框,要求用户输入监护人口令。如果口令不对,则停止浏览。这个口令存放在注册表的如下键值中,以密文的形式存放:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies \Ratings\Key

删除该键值,则会取消分级审查口令,也可以破解该键值中的密文还原出明文口令。

除了注册表,有一些应用程序会把口令存放在硬盘的某一个位置。比如还原精灵,它是一个磁盘恢复软件,用户在还原磁盘状态时,需要输入口令以验证其身份,这个口令就被存放在硬盘的某一个扇区中,由于还原精灵拦截了所有的磁盘访问操作,因此普通用户无法访问存放口令的扇区,从而保证了口令的安全性。如果攻击者能够绕过还原精灵的磁盘过滤驱动,就能够获得用户口令了。主板的BIOS口令存放位置与此类似,只不过不是存放在硬盘上,而是存放在CMOS中,并且是以加密的方式存放,攻击者通过读取CMOS就能够获取口令的密文,然后再通过离线暴力破解。

在开放的系统环境下,由于没有专用的安全硬件来保护,口令的存储和加密没有统一的标准,因此无法从根本上来保证口令的安全。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。