翻译的不好请大家见谅,毕竟咱不是专业地,我将这篇文章的意思精炼了一下,可能有些地方不妥,希望大家能够批判地看待,还有因为这篇文章也只是让人对于pass the hash attacks 有个初步的了解,后面的都是利用实例,程序评测所以这部分内容大家还是自己参看原文吧
////////////////////////////////////至于能否得到管理员的邀请码,这个不强求呵呵



不过还是希望一下

本文主要介绍了有关传递哈希攻击的相关知识,先总体介绍了现在的信息安全的保护方法就是利用密码来限制访问,并阐述了有关强口令和弱口令对于信息安全的重要影响,强调了强口令的重要性。然后介绍了对于这种保护措施,攻击者主要采用密码猜测和密码破解的方法,但是它们都是在消耗大量时间的代价上完成攻击的,然后又介绍了利用预先计算的哈希表来减少使用的攻击时间,然而这种方法也不是完美的,它的使用代价是大量的存储空间的使用和生成预编译的表的时间的花销,尤其当生成密码的算法鲁棒性很强,并且密码又复杂而长时这个缺点越是显著。
传递哈希攻击目的是直接使用哈希,而不用破解,这使得时间消耗密码攻击变得不再必要。
作者简单的介绍了传递哈希攻击并非是新生物,它在1997年便被Paul Ashton发表,然而对这种攻击的了解却不是很普及,笔者做过相关的调查,调查结果说明这一点的正确,在被调查者中只有约三分之一的人表明知道这种传递哈希攻击。
SANS的热门网络安全风险的报告从事实的角度说明传递哈希攻击与其他的强大的攻击方法结合后,其攻击效果是非常厉害的。
作者又介绍了关于密码我们需要了解哪几个问题——密码是怎样存储的?密码是怎样被用的?密码能被以怎样的方式攻击?在第一个问题的解答中作者主要介绍了LM哈希,NTML哈希,缓存凭据,内存存储以及可逆加密。这些基本的知识介绍完毕后,作者认为比了解密码是怎样存储更重要的了解它们是怎样被使用的,密码是一种认证机制,它们被用来验证一个系统的用户,然后作者描述了四种用于windows环境的主要的协议。
首先是LM和NTLM,这两个协议非常相似,不同之处在于用于计算响应的哈希,然后介绍了它们的使用范围。然后介绍了NTLMv2,这种协议是在LM和NTLM的基础上针对其弱点改进而来,它使用NT哈希,然而,它依然在计算中包含了客户挑战。它也包含时间戳,这使得它对于回复攻击免疫,它被用于默认的身份验证方式是从windows vista系统开始的。一些研究声称NTLMv2容易被预计算哈希攻击,这有待澄清。NTLMv2作为哈希正如其他哈希一样容易受预计算哈希攻击,然而它并不存储在windows中,它在运行中生成,它被使用在客户和服务端来计算回应,不像NTLM验证使用固定的服务挑战。这种计算过程消除了对NTLMv2的预计算攻击的可能性。第三种协议是Kerberos,它是一组当一个NetBIOS名字或DNS名字用于连接时的只用于域环境的一组服务。如果一个用户通过一个IP连接到资源时,Kerberos将不会被使用。而LM,NTLMv2或者NTLMv2将被使用来验证用户。不像NTLM验证,Kerberos为个用户和服务器提供验证。客户端与服务端在加密算法、共享密钥、和识别数据上达成一致,验证器包括发送者名字,域名,时间,IP和验证器的MD5校验和。当客户端和服务端解密识别数据时,这个数据让他们相互证明了他们都知道共享的128位的密钥。并且文中说明windows server 2008之前的版本使用的事RC4加密算法,而windows server 2008使用的是AES算法并且较之前的更安全。
作者阐述这些后,讲到密码是怎样被攻击的主要分为在线攻击和离线攻击,当然也有其他方式如密码记录,社会工程学等等。但作者在文中主要介绍了在线和离线攻击,在线攻击主要是密码猜测,这种方法相对慢;离线攻击主要如密码破解,这种方法通常是在攻击者捕获了密码哈希时使用,在这种攻击过程中,攻击者利用生成一个密码哈希或一个挑战—回应序列以及将它和他捕获的实际密码的哈希或回应进行对比。如果有匹配出现,则破解哈希的试图告以成功。
文中接着介绍在线和离线攻击的区别,在线攻击时密码在存储它的系统中受到保护,而在离线攻击中密码没有这种保护机制。因为这个原因,离线攻击通常比在线攻击要快很多。
为了说明这一点,作者使用一个利用显卡的GPU被叫做“CUDA-Multiforcer”的工具。使用这个工具,当试图破解一个NTLM哈希密码笔者能够每秒得到800000000密码,相比下在线密码攻击每分钟只能进行50次试验。虽然有一个传言关于一个攻击可以进行每秒300次试验。但是尽管如此,相对于离线攻击这种速度依然很慢。
离线攻击的另外一种方法是预计算哈希攻击也叫“彩虹表攻击”。密码哈希被存储在一个文件中。这个文件可能很大,利用菲利普-奥克斯林博士的时间—内存权衡大量减少了存储哈希的空间。这种预计算哈希攻击能大量减少破解密码的时间。事实上他能将本需要数月或数星期才能破解的密码在几个小时或仅仅几分钟就能破解出来。但是,如果攻击者不需要找到明文密码,以获得访问你的系统,如果有一个更有效的方式来规避密码机制呢?这种技术是存在的叫做“传递哈希攻击”本文的重点出现。
简单介绍这种攻击的原理是密码哈希相当于明文密码,当一个攻击者成功地获取到哈希时,他就能简单地利用它进入系统,尽管他不知道密码,这种攻击就是传递哈希攻击。传递哈希攻击通常直接用来对抗windows系统,然而他们也可能在攻击其他系统中见到,例如脆弱的Web应用程序。在windows系统中,传递哈希攻击依赖于单一登录功能。简单的解释也就是用户输入过一次密码后,系统会存储下用户输入的密码,存储的是密码的哈希,用户保存密码的话就会用这个充当凭据,攻击者也可以把它作为凭据取得权限。密码哈希被加载在本地安全授权子系统(Lsass中)。LSASS运行的文件是%SystemRoot%、System32\Lsass.exe,这个进程负责用户验证。然后作者介绍了大概的攻击步骤,然后下文主要介绍的是传递哈希攻击经常使用的工具如PshtooIkit、Msvctl等不再赘述,作者对他们在不同版本的windows系统下进行了测试,讲述了有关实验室搭建,工具对比及使用方法,第二部分则讲述了对传递哈希攻击的防御方法,作者建议用户关注于敏感的系统隔离区,执行最小用户访问的设置,避免LM和NTLM挑战回应,限制缓存凭据,禁用调试程序用户权限,使用基于令牌的验证等具体不再赘述。
最后作者总结,传递哈希攻击是一个很厉害的攻击方式,攻击者用这个方法加之一些工具能够大量减少攻击密码所消耗的时间,然而我们也应该记得这需要攻击者拥有对应受到威胁的系统的管理员权限。时刻警惕这些攻击,利用之前提到的抵御这种攻击的方法,经常评估机构安全性,并制定相应的解决方案。最后作者告诉我们一句极富哲理的一句话结束全文:“没有两个事件是相同的,所以我们应该学会从每一个事件中积累知识。”
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课