Windows的哈希
Windows中有几种不同类型的哈希值,它们可能非常混乱。 可以在这两篇文章《LM, NTLM, Net-NTLMv2, oh my!》和《LM Hash and NT Hash 》找到一些解释,但首先阅读下面这段内容:
如果Windows的hash没有加盐,那么两组hash将可能产出相同的明文。Windows哈希分为两组--LMhash和NTLMhash。 比如: testuser:29418:aad3b435b51404eeaad3b435b51404ee:58a478135a93ac3bf058a5ea0e8fdb71
内容的构成:
username : unique_identifier : LMhash : NThash
LM - LM哈希用于存储密码。 但要注意在W7及以上版本中LM是禁用的。 但是,当密码少于15个字符的时候,就在内存中启用LM。 这也是为什么管理员帐户的所有建议都是15个字符的原因。 LM已经过时了,它基于MD4,很容易破解。 它之所以依旧采用MD4,是因为Windows域需要较快的解密速度,但这也使得它的安全性变得很差。
NT - NT哈希根据用户输入的整个密码计算哈希值。 LM哈希将密码拆分为两个7个字符的块,如果有缺省则进行填充。
NTLM - NTLM哈希用于域中主机上的本地身份验证。 如上所示,它是由LM和NT哈希组合而成。
NetNTLMv1/2 - 有时候在网络进行身份验证的时候(比如SMB),有时候也会提到NTLMv2,但是请不要把它和NTLM hash搞混了,他俩是不同的概念。
在Windows中,哈希存储在内存中以用于单点登录。 每次用户点击网络共享时,信用凭证都会通过网络传递。 我们可以利用这个特性在传输过程中或在计算机上获取这些凭据。 另一种方法是始终向用户询问凭据,这在Windows环境中很少发生。
在对Windows机器进行身份验证时,NTLM哈希与明文凭证效果是一样的。因此如果你无法获取明文凭据的时候,并不要认为这是什么大问题。 其实,我的意思就是可以通过哈希传递来通过身份验证,而不需要明文密码本身。
破解哈希可以很有趣,而且由于大多数用户密码都很糟糕/不复杂,因此很容易秒破。 想象一下,如果域名的密码重置策略为90天。 但是你在两小时内就破解了用户的凭据,那这对他们来说是一个很大的失误。 如果你可以在两小时甚至几天内破解域管理员的凭证,那么它们也就离玩儿完不远了。 当然,我们可以利用中继来重用凭证,而不需破解哈希。
Windows中的身份验证
在Windows系统中有许多验证身份的方法。
密码 - 也就是密码本身了
Hashes - Windows可以使用哈希进行身份验证。 因此我们可以使用重传hash等攻击来进行身份验证,完全不需要帐户密码。
Tokens - 令牌属于身份验证的概念。 当用户或服务登录系统时,系统会验证一次其身份,并生成一个令牌,将该令牌将传递给该用户/服务并作为其身份。 例如,每当程序打开文件时,系统就不需要验证身份。 这基本上确保了身份验证(证明用户/服务是他们所说的人)和授权(确定用户/服务是否可以访问某些资源)之间的清晰分离。
Tickets - 通常指Kerberos票据, 详见下文。
Kerberos
Kerberos是Windows中基于_tickets_的身份验证协议,允许通过非安全网络进行通信的计算机以安全的方式相互提供其身份。 Kerberos建立在对称密钥加密之上,需要受信任的第三方参与,并且可选则在身份验证的某些阶段使用公钥加密。 Kerberos默认使用UDP端口88。
多年来,已有多个Kerberos漏洞被发现:
MS14-068
Windows名称解析
Windows中有一些不同的名称解析协议和名称:
FQDN - 完全限定域名(Fully Qualified Domain Name)
WINS - Windows 网络名称服务(Windows Internet Name Service)
NBT-NS - (NetBIOS Name Service) - 通常称为 NetBIOS
LLMNR - 链路本地多播名称解析(Link-Local Multicast Name Resolution)
WPAD - Web代理自动发现协议(Web Proxy Auto-Discovery Protocol)
如果名称是FQDN,这意味着包括域名的全名,例如test.lab.local,它查询hosts文件,然后查询DNS服务器以进行名称解析。
如果名称是非限定名称,如\ fileshare,则尝试使用以下名称解析来查找该文件共享位置:
LLMNR - 使用多播来为相邻计算机的名称执行名称解析,而无需DNS服务器。
NetBIOS - 查询WINS服务器以获取解决方案(如果存在)。 如果没有,它使用广播来解析邻近计算机的名称。
由于FQDN查找在文件共享时并不常用,并且默认情况下未启用,因此它会检查LLMNR,然后检查NetBIOS。 在企业界,DNS服务器可用于查找资源,在家庭环境中它不太能行,因此如果您想在两台主机之间共享内容,LLMNR和NetBIOS则成为不二之选。 但是,用户通常不会在资源管理器的地址字段中键入share.hacklab.net,因此名称解析将由LLMNR和NetBIOS来完成。
Windows的哈希的更多相关文章
- Windows NTLM Hash和Hash传递、Key传递攻击
Hash(Key) 获取 工具: Mimikatz 用法: .\mimikatz.exe privilege::debug #查看权限 sekurlsa::logonpasswords #获取hash ...
- Windows下计算md5值
目录 Windows下计算md5值 1.linux 下计算md5值 2.Windows下计算md5值 Windows下计算md5值 1.linux 下计算md5值 [root@master yl]# ...
- C# 字符编码类Encoding
在网络通信中,很多情况下都是将字符信息转成字节序列进行传输.将字符序列转为字节序列的过程称为编码.当这些字节传送到接收方,接收方需要逆向将字节序列转为字符序列.这个过程就是解码. 常见编码有ASCII ...
- CodePage------Encoding 类支持的编码以及与这些编码关联的代码页(CodePage)
Encoding 类 .NET Framework 4 表示字符编码. 继承层次结构 System.Object System.Text.Encoding System.Text.ASCII ...
- Encoding 类别
Encoding 類別 .NET Framework 4.5 表示字元編碼方式. 繼承階層架構 System.Object System.Text.Encoding System.Tex ...
- Java基础总结--数组
---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...
- Kali密码攻击之——离线攻击工具
在线密码攻击在渗透测试中很重要,但对于测试过程中得到的哈希,加密数据,又需要离线破解工具辅助解决 Creddump套件 kali下离线攻击工具中的Cache-dump,lsadump,pwdump,均 ...
- Bugku Crack it
知识点:kali john工具 不知道hashcat怎么样 一. 用winhex打开 发现右边有root:等信息,想到了linux系统,看了别人的wp,kali中有一个工具john可以破解密码 二. ...
- kali视频(21-25)学习
第六周 kali视频(21-25)学习 21.密码攻击之在线攻击工具 22.密码攻击之离线攻击工具(一) 23.密码攻击之离线攻击工具(二) 24.密码攻击之哈希传递攻击 25.无线安全分析工具 21 ...
随机推荐
- Redmine 和GitBlit仓库服务器整合
运行环境: RedMine: 4.0.4 Git 仓库: Gitbilt V1.8.0 必须: Redmine 安装并可运行 Redmine运行的主机里面已经安装了 Git,因需要在命令行中运行 gi ...
- SolidWorks直线命令快捷转换为圆弧命令
在进行草图绘制的时候,有时候需要切换到圆弧命令,此时来回切换比较麻烦, 我们可以将鼠标回碰线段起点,此时便成为了圆弧工具. 再次回碰,可改变圆心方向 利用鼠标操作,快捷切换绘图工具.
- Eureka的表兄弟Zookeeper理论基础
Eureka的表兄弟Zookeeper 简单介绍 Zookeeper是一个开源的分布式应用程序协调服务器,主要功能包括配置维护,域名服务,分布式同步,集群管理等 主要功能简介 一.配置维护 分布式系统 ...
- 一张图看懂阿里云网络产品【十五】IPv6 解决方案
摘要: 作为国内首家全面支持IPv6的云厂商,阿里云12月再次推出全栈IPv6解决方案,核心产品已全面支持,协助客户小时/天级即可完成IPv6 访问.方案成功历经优酷.淘宝.天猫.双十一考验.SLB ...
- spring mvc hibernate spring 整合的增删改查+后台校验+bootstrap
整合之前先知道大概的思路,首先要知道每个框架的重点要点. 1.首先我们从数据库开始 --创建数据库 create database gs --创建表 create table food ( id ,) ...
- Delphi 一些pas
Delphi -- 创建 桌面.发送到....快速启动栏.开始菜单.程序菜单.右键菜 单 {====================================================== ...
- Python实现二叉堆
Python实现二叉堆 二叉堆是一种特殊的堆,二叉堆是完全二元树(二叉树)或者是近似完全二元树(二叉树).二叉堆有两种:最大堆和最小堆.最大堆:父结点的键值总是大于或等于任何一个子节点的键值:最小堆: ...
- 2019 牛客多校第六场 B Shorten IPv6 Address
题目链接:https://ac.nowcoder.com/acm/contest/886/B 题目大意 给定一个 128 位的二进制 ip 地址,让你以 16 位一组,每组转成 16 进制,用冒号连接 ...
- 拾遗:Perl 基础语法
Perl 常用的命令行参数 -i:将处理结果直接写入文件,可以通过 -i.bak 或 -i"/tmp/orig_*" 等形式,在修改之前进行备份 -e:启用 perl 的命令行模式 ...
- 剑指offer——04从尾到头打印链表
题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. 有多种方法. class Solution { public: vector<int> printListFr ...