我是如何破解你的WINDOWS密码的 ?(1)

密码可以看作我们主要,甚至某些情况下唯一可用于防范入侵的防线。就算入侵者无法在物理上接触到计算机,对于对外的Web应用,他们依然可以通过远程桌面协议或身份验证功能访问到服务器上的服务。 本文的主要是为了告诉您Windows创建和存储密码哈希(Hash)的方式,以及这些哈希的破解方式。在介绍了如何破解Windows密码后,我还将介绍一些技巧,帮助您防范此类攻击。

介绍

密码可以看作我们主要,甚至某些情况下唯一可用于防范入侵的防线。就算入侵者无法在物理上接触到计算机,对于对外的Web应用,他们依然可以通过远程桌面协议或身份验证功能访问到服务器上的服务。
本文的主要目的是为了告诉您Windows创建和存储密码哈希(Hash)的方式,以及这些哈希的破解方式。在介绍了如何破解Windows密码后,我还将介绍一些技巧,帮助您防范此类攻击。

Windows是如何存储密码的

运行Windows的计算机使用两种方法对用户密码创建哈希,这两种方法在本质上有着不同的安全意义。这两种方法分别是LAN Manager (LM)以及NT LAN Manager第二版(NTLMv2)。哈希是一种加密功能所获得的结果,这种加密需要获取任意大小的字符串数据,并用算法对其进行加密,然后返回一个固定大小的字符串。

LM密码哈希

LAN Manager哈希是Windows操作系统最早使用的密码哈希算法之一,并且在Windows 2000、XP、Vista和7中使用了更先进的NTLMv2之前,这也是唯一可用的版本。这些新的操作系统虽然可以支持使用LM哈希,但主要是为了提供向后兼容性,不过在Windows Vista和Windows 7中,该算法默认是被禁用的。

密码的LM哈希需要使用下列六个步骤计算获得:

  1. 将用户的密码全部转换为大写字母

  2. 给密码添加空(null)字符,直到密码长度等于14个字符

  3. 将新获得的密码拆分为两组7位的字符值组

  4. 使用这些值创建两个DES加密密钥,并为每一组添加一个奇偶校验位,这样即可创建出64位的密钥

  5. 使用每个DES密钥加密一个预定义的ASCII字符(KGS!@#$%),这样即可获得两个8字节Ciphertext值

  6. 这两个8字节的Ciphertext值结合组成一个16字节的值,也就是最终获得的LM哈希

举例来说,如果使用“PassWord123”作为密码,在上述操作中这个密码会被分别转换为:

  1. PASSWORD123

  2. PASSWORD123000

  3. PASSWOR和D123000

  4. PASSWOR1和D1230001

  5. E52CAC67419A9A22和664345140A852F61

  6. E52CAC67419A9A22664345140A852F61


图1: 将密码转换为LM哈希

LM存储的密码有一些明显的不足。首先是,加密工作是基于数据加密标准(DES)的,DES最初来源于IBM在二十世纪七十年代的一个项目,该项目最终被NIST进行了改进,并获得了NSA的支持,于1981年作为一项ANSI标准发布。多年以来,DES都被认为是足够安全的,但由于这种小型密钥只有56位,因此从九十年代开始,已经变得不那么安全。到了1998年,Electronic Frontier Foundation只需要大概23小时即可破解DES。因此,DES开始变得不够安全,并逐渐被三重DES(Triple-DES)以及AES所取代。简单来说,这些都属于其他加密标准,但由于现代计算机的强大性能,很快也被破解。

LM哈希最大的弱点可能就是DES密钥的创建过程。在这个过程中,用户提供的密码会被自动转换为全部大写,并通过补充变为14个字符(这也是LM哈希密码的最大长度),随后会被分为两组7位字符的值。对于由14个可印刷的ASCII字符组成的密码,有95的14次方种可能性,而一旦将其腰斩为两组7位的字符,可能性就降低为95的7次方种,而如果您只允许使用大写的ASCII字符,可能性将进一步降低为69的7次方种。因此从本质上将,就算您使用不同的大小写字符,并使用长密码,一旦密码被保存成LM哈希,所有的努力都将付诸东流,在暴力破解面前,LM哈希将不堪一击。

NTLMv2密码哈希

NT LAN Manager (NTLM)是由微软开发,用于取代LM的身份验证协议。最终通过改进,从Windows NT 4开始,NTLMv2被用作全新的身份验证方法。

NTLMv2哈希(下文简称为NT哈希)的创建在操作系统实际参与的工作上更加简单,并需要使用MD4哈希算法,通过一系列数学计算创建哈希。MD4算法需要使用三次,这样才能产生NT哈希。举例来说,“PassWord123”这个密码的MD4哈希就可以表示为“94354877D5B87105D7FEC0F3BF500B33”。


图2: 将密码转换为NTLMv2哈希

MD4通常比DES更加健壮,因为可以接受更长的密码,可允许同时使用大写和小写的字母,并且并不需要将密码拆分为更小,更易于破解的片段。

对于使用NTLMv2创建的哈希,可能最大的不足在于Windows无法使用一种名为Salting的技术。Salting这种技术可以用于生成随机数,并将该随机数用于计算密码的哈希。这意味着完全相同的密码可能会具有完全不同的哈希值,这才是最理想的情况。

在这种情况下,用户就可以创建所谓的Rainbow Table。Rainbow table并不是指五颜六色的咖啡桌,实际上是一种表格,其中包含了由某一数量的字符所能组成的每一种可能密码的每一个哈希值。通过使用Rainbow table,我们就可以从目标计算机提取密码的哈希值,并在表中进行检索。一旦在表中找到相同的内容,就等于知道了密码。正如您所想的,就算由很少字符组成的Rainbow table,整个表也会非常庞大。这意味着此类表的创建、存储,以及检索都是很麻烦的工作。

结论

在本文的第一部分中,我们介绍了密码哈希的概念,以及Windows用于创建和存储这些数值的机制。另外我们还介绍了每种方法的局限性,以及可以用于破解这些密码的可能途径。在后续的内容中,我们将介绍获取和破解这些哈希的方法,并证明局限性的存在。在介绍完之后,我还将提供一些技巧,让您获得更进一步的保护,并创建满足所需强度的密码。

这篇是网上找的,但是译者只翻译了第一篇,我接下来会翻译第二篇

我是如何破解你的WINDOWS密码的 ?(1)的更多相关文章

  1. 我是如何破解你的WINDOWS密码的 ?(2)

    介绍 在这个系类的第一部分中,我们揭示了windows创建和储存密码的机制.我们也涉猎了一点两种加密方法的弱点和破解的方法.在这系列的第二篇也是最后一篇文章中,我会实战用网上免费的工具一步一步的来破解 ...

  2. Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码

    Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码 文/玄魂 目录 Kali Linux Web 渗透测试视频教—第二十课-利用 ...

  3. [转帖]利用hydra(九头蛇)暴力破解内网windows登录密码

    利用hydra(九头蛇)暴力破解内网windows登录密码 https://blog.csdn.net/weixin_37361758/article/details/77939070 尝试了下 能够 ...

  4. Windows密码破解工具ophcrack

    Windows密码破解工具ophcrack   Windows用户密码都采用哈希算法加密进行保存.Kali Linux内置了专用破解工具ophcrack.该工具是一个图形化界面工具,支持Windows ...

  5. Windows密码获取和破解(初探)

    Windows密码获取和破解 本文只是简单的讲明密码获取和破解 具体的操作细节均以模糊或具体代码混淆等方式避开 如有兴趣请自行研究,本文不做细说~~~ 获取思路: Windows密码一般是以" ...

  6. 基于HOOK和MMF的Windows密码渗透技术

    随着计算机与网络的普及,信息安全越来越成为人们所普遍关心的大事.密码的渗透与反渗透在此领域表现的愈演愈烈.本文深入分析了各个版本Windows密码的特点,尤其是针对windws2K/XP安全性提高的情 ...

  7. 安天透过北美DDoS事件解读IoT设备安全——Mirai的主要感染对象是linux物联网设备,包括:路由器、网络摄像头、DVR设备,入侵主要通过telnet端口进行流行密码档暴力破解,或默认密码登陆,下载DDoS功能的bot,运行控制物联网设备

    安天透过北美DDoS事件解读IoT设备安全 安天安全研究与应急处理中心(安天CERT)在北京时间10月22日下午启动高等级分析流程,针对美国东海岸DNS服务商Dyn遭遇DDoS攻击事件进行了跟进分析. ...

  8. 教你破解隔壁妹子wifi密码,成功率高达90%

    破解wifi密码听起来很复杂,实际上也不是非常的复杂,今天教大家如何破解隔壁妹子的wifi密码. 首先声明:本教程只用于技术交流,请勿用于非法用途.请严格遵循相关法律法规.为了保护本例中被破解密码者信 ...

  9. 破解ZIP加密文件密码fcrackzip

    破解ZIP加密文件密码fcrackzip ZIP是最常见的文件压缩方式.由于其压缩算法开源,主流操作系统都支持这种压缩算法.ZIP压缩方式支持密码加密.加密的时候会在文件头部保存密钥相关信息.利用这个 ...

随机推荐

  1. 动静分离、Rewirte、HTTPS

    目录 Nginx动静分离技术 示例搭建步骤 部署NFS 静态资源共享 部署代理服务器 Rewrite(重点) Rewrite基本概述 rewrite语法 rewrite标记Flag last和brea ...

  2. SpringMVC 解析(一)概览

    Spring MVC是Spring提供的构建Web应用程序的框架,该框架遵循了Servlet规范,负责接收并处理Servelt容器传递的请求,并将响应写回Response.Spring MVC以Dis ...

  3. BitMap算法知识笔记以及在大数据方向的使用

    概述 所谓的BitMap算法就是位图算法,简单说就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来存储数据,因此可以大大节省存储空间,这是很常用的 ...

  4. sql审核-避免离线sql导致的db集群故障

    关键词: sql审核.sql审批.sql检查.sql检测.sql执行 离线sql可能会导致的问题 首先,什么是离线sql呢?就是说手动触发执行的这种sql:相对的还有在线sql,位于我们的程序代码中, ...

  5. dubbo 实现简易分布式服务

    dubbo 实现简易分布式服务 服务器需要搭建zookeeper环境 zookeeper端口2181 还需要有java环境 1.需求 某个电商系统,订单服务需要调用用户服务获取某个用户的所有地址: 我 ...

  6. [STM32F10x] 使用printf函数进行串口调试问题

    硬件:STM32F103C8T6 平台:Keil ARM-MDk V5.11 利用printf函数通过串口(USART)进行调试时遇到的一个问题: printf("Hello, Mini-M ...

  7. 面试突击17:HashMap除了死循环还有什么问题?

    面试合集:https://gitee.com/mydb/interview 本篇的这个问题是一个开放性问题,HashMap 除了死循环之外,还有其他什么问题?总体来说 HashMap 的所有" ...

  8. vue操作dom元素

    传统的方法获取dom元素操作dom,通常是获取类名,id,属性等来获取到dom,但在vue中获取组件dom的话会有问题,请看下面代码: 控制台打印出来的结果如下,你会发现正常标签可以正常显示,但是组件 ...

  9. MySQL环境变量配置方法

    MySQL配置方法 下载免安装版本的MySQL数据库,大家根据自己的开发环境下载对应版本的数据库,我在此举例的是Windows系统下的配置方法,下载地址如下: https://dev.mysql.co ...

  10. golang中结构体的嵌套、方法的继承、方法的重写

    package main import "fmt" type human struct { name, phone string age int8 } type student s ...