《网络攻防技术(第2版)》 —3.2.2 针对口令强度的攻击方法

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

3.2.2 针对口令强度的攻击方法

针对口令强度攻击的方法主要是利用弱口令的特点进行攻击尝试,一般有强力攻击、字典攻击以及对这两种方法进行折中的组合攻击等几种方法。

(1)强力攻击

对于固定长度的口令,在足够长的时间内,总能穷举出它全部可能的取值,这只是时间问题。如果有速度足够快的计算机能尝试字母、数字、特殊字符所有的组合,将最终破解所有的口令,这种类型的攻击称为强力攻击。

单纯强力攻击的猜测顺序是由字符集的顺序决定的,每一位遍历所有的字符空间。入侵者可能尝试所有的字符组合方式,逐一模拟口令验证过程。例如,先从字母a开始,尝试aa、ab、ac等,然后尝试aaa、aab、aac等。一般应用程序都有自己的认证协议,由于使用的协议不同,口令攻击所使用的工具也是不一样的。比如,FTP会使用专门的FTP口令攻击工具,Email的口令攻击会使用专门的Email口令攻击工具,能否利用各种技术和方法来提高口令验证速度是判断这些工具设计好坏的关键。与扫描工具类似,口令自动猜测工具也使用缩短数据包时间间隔、多线程等技术来提高口令探测的速度。一个比较经典的口令探测工具是由俄罗斯攻击者编写的程序Shadow Security Scanner。

(2)字典攻击

人们常使用有意义的字符作为口令,如常用的单词、缩写、名字等。字典攻击就是将使用概率较高的口令集中存放在字典文件中,通过不同的变异规则生成猜测字典。字典攻击和强力攻击的方法类似,区别在于尝试的口令取值并不是所有字符可能取值的集合,而是这个字典集里的可能取值。攻击者一般都拥有自己的口令字典,其中包括常用的词、词组、数字及其组合等,并在进行攻击的过程中不断充实、丰富自己的字典库,攻击者之间也经常会交换各自的字典库。使用一部有1万个单词的词典一般能猜测出系统中70%的口令。在多数系统中,和尝试所有的组合相比,字典攻击能在很短的时间内完成。图3-2演示了字典攻击的过程,图3-3显示了字典攻击的结果。

应对字典攻击最有效的方法就是设置合适的口令,强烈建议不要使用自己的名字或简单的单词作为口令,因为可作为名字的字符组合非常有限,一般都包含在字典中。目前,很多应用系统都对用户输入的口令进行了强度检测,如果输入了一个弱口令,系统会向用户发出警告。

(3)组合攻击

字典攻击只能发现字典里存在的单词口令,但速度很快。强力攻击能发现所有的口令,但是破解时间很长。很多管理员会要求用户使用字母和数字,用户的对策是在口令后面添加几个数字,如把口令ericgolf变成ericgolf55。用户认为采用这样的口令,攻击者不得不使用强行攻击,实际上攻击者可以使用组合攻击的方法,即在字典单词尾部串接任意个字母和数字。这种攻击介于字典攻击和强力攻击之间,攻击效果显著。

 image.png

图3-2 字典攻击示例

 image.png

图3-3 字典攻击结果

(4)撞库攻击

撞库是一种针对口令的网络攻击方式。攻击者通过收集在网络上已泄露的用户名、口令等信息,之后用这些账号和口令尝试批量登录其他网站,最终得到可以登录这些网站的用户账号和口令。

由于很多用户在不同的网站使用统一的用户名和口令,因此不管网站口令保存得有多好,一旦某个网站遭受拖(脱)库攻击,用户账号和口令的数据库泄漏,就有可能导致严重的撞库攻击。

提及“撞库”,就不能不提到“拖库”和“洗库”。在黑客术语里面,“拖库”是指攻击者入侵有价值的网络站点,把注册用户的资料数据库全部盗走的行为,因为谐音,也被称作“脱库”。在取得大量的用户数据之后,攻击者会通过一系列技术手段和黑色产业链将有价值的用户数据变现,这通常被称作“洗库”。最后黑客用得到的数据在其他网站上进行尝试登录,这种行为称作“撞库”。为记忆方便,很多用户经常在注册多个网站时使用统一的用户名和口令,从而给攻击者“撞库”带来诸多便利。

图3-4显示了撞库攻击过程以及在“拖库”“洗库”“撞库”三个环节所进行的活动。

 image.png

图3-4 撞库攻击过程

随着攻击者从互联网收集泄露的账号和口令信息规模越来越大,生成字典表的命中率也越来越高。当攻击者尝试攻击一个网站新账号时,通常会用这个新账号到数据库里进行“碰撞”,查找与该账号相关的所有应用和口令,一旦查到结果再尝试进行登录。

可见,防止撞库已成为一场需要用户共同参与的持久战。

(5)彩虹表破解

口令往往采用哈希算法进行加密,口令破解技术的最新动向是预计算哈希表,从而减少生成哈希值进行比较的时间。彩虹表就是一种破解哈希算法的技术,也是一款跨平台密码破解器,主要用于破解MD5、HASH等多种密码。彩虹表技术基于内存-时间衡量方法,有效解决了字典攻击与强力攻击的弊端,通过以一定的存储空间来换取时间的方法,提高对散列值的破解效率。利用彩虹表,普通电脑甚至可以在5分钟内破解长度为14位且足够复杂的Windows账户密码。

彩虹表可以使用RainbowCrack或Cain来生成,表分割得越细,成功率就越高,生成的表体积也越大,所需时间也越长。常用的彩虹表工具有Ophcrack、rcracki_mt、Cain、RainbowCrack等。下面的图给出了采用Ophcrack破解口令的例子,首先加载SAM文件(见图3-5),从SAM(Security Account Manager,安全账号管理器)文件里面提取口令散列,最终破解口令(见图3-6)。

 image.png

图3-5 选择散列加载方式

 image.png

图3-6 成功破解口令


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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