《网络攻防技术(第2版)》 —3.3 针对口令存储的攻击
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 散列值)。
图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就能够获取口令的密文,然后再通过离线暴力破解。
在开放的系统环境下,由于没有专用的安全硬件来保护,口令的存储和加密没有统一的标准,因此无法从根本上来保证口令的安全。
- 点赞
- 收藏
- 关注作者
评论(0)