如今网络攻击者的技术已经发展到了一个非常高的程度,甚至不需要至到你的用户密码就可以直接反问你的系统,不要惊讶,通过哈希值传递攻击完全可以达到上述所说的效果。而且哈希值传递攻击不需要通过零日漏洞或者钓鱼信息,那么让我们来看一看究竟什么是哈希值传递攻击。
数据包级别的哈希
每当我们在windows系统中为帐户创建一个密码时,系统都会将密码转化为哈希值。哈希值是加密函数的结果,加密函数会取出数据中任意大小的字符串来执行数学加密函数,并产生一个固定大小的字符串,最终的结果并不是用户所输入的密码(例如123456),而是哈希字符串“94354877D5B87105D7FEC0F3BF500B33”。
这从几个方面来看是很有意义的。首先,这意味着你的密码不是以纯文本的格式保存在你的本地硬盘中以致任何人都可能看到你的密码。其次这意味着当你使用密码验证到另一个设备(例如域控制器)时你的密码并不是以纯文本的格式在网络上传递的。下面我们将探讨哈希是如何创造的。
当你试图访问计算机中受用户名和密码身份验证保护的资源,主机会要求你进行身份验证。通常情况下,你需要提供一个用户名和密码。当你输入你的密码后,计算机会立即对密码执行哈希函数并将其提交给主机,主机就会将其与身份验证数据库进行对比,如果哈希匹配的话,你就可以通过验证。
现在,考虑一种替代方案。如果当我们手动建立与主机(主机上有我们想要访问的资源)的连接时,我们不是输入用户名和密码,而是输入管理员用户名以及我们窃取的管理员哈希。这样我们就能够获取对主机的管理权限访问。请记住,主机所需要的只是接收与其匹配的哈希值。这意味着你不需要对密码执行单向哈希函数,你只需要提供哈希值,这也是哈希值传递攻击的基本原理。
【编辑推荐】