融资网站建设,wordpress 网站同步,用dw做购票网站,网站的建设好处系列文章第一章节之基础知识篇
内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…系列文章第一章节之基础知识篇
内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基础知识-域中的权限划分和基本思想 内网渗透(七)之基础知识-企业常见安全域划分和结构 内网渗透(八)之基础知识-企业域中计算机分类和专业名
系列文章第二章节之内网信息收集篇
内网渗透(九)之内网信息收集-手动本地信息收集 内网渗透(十)之内网信息收集-编写自动化脚本收集本地信息 内网渗透(十一)之内网信息收集-内网IP扫描和发现 内网渗透(十二)之内网信息收集-内网端口扫描和发现 内网渗透(十三)之内网信息收集-收集域环境中的基本信息 内网渗透(十四)之内网信息收集-域环境中查找域内用户基本信息 内网渗透(十五)之内网信息收集-域环境中定位域管理员 内网渗透(十六)之内网信息收集-powershell基础知识 内网渗透(十七)之内网信息收集-powershell收集域内信息和敏感数据定位
注阅读本编文章前请先阅读系列文章以免造成看不懂的情况
Windwso本地认证之NTML哈希和LM哈希
本地认证的流程
Windows的登陆密码是储存在系统本地的SAM文件中的在登陆Windows的时候系统会将用户输入的密码与SAM文件中的密码进行对比如果相同则认证成功
SAM文件是位于 %SystemRoot%\system32\config\ 目录下的用于储存本地所有用户的凭证信息但是这并不代表着你可以随意去查看系统密码。 Windows本地认证流程如下 首先用户注销、重启、锁屏后操作系统会让winlogon.exe显示登陆界面也就是输入框界面接收用户的输入信息后将密码交给lsass进程这个过程中会存一份明文密码将明文密码加密成NTLM Hash对SAM数据库进行比较认证
Windows Logon Process即winlogon.exe是Windows NT 用户登陆程序用于管理用户登陆和退出
LSASS即lsass.exe用于微软Windows系统的安全机制它用于本地安全和登陆策略
本地认证中用来处理用户输入密码的进程即lsass.exe,密码会在这个进程中明文保存供该进程将密码计算成NTLM Hash与sam进行比对我们使用mimikatz来获取的明文密码便是在这个进程中读取到的
LM和NTML哈希
Windows操作系统通常使用两种方法对用户的明文密码进行加密处理。在域环境中,用户信息存储在ntds.dit中,加密后为散列值。 Windows操作系统中的密码一般由两部分组成,一部分为 LM Hash,另一部分为NTLMHash。在Windows操作系统中,Hash的结构通常如下
username:RID:LM‐HASH:NT‐HASHLM Hash的全名为LAN Manager Hash,是微软为了提高 Windows操作系统的安全性而采 用的散列加密算法,其本质是DES加密。尽管 LM Hash较容易被破解,但为了保证系统的兼容性, Windows只是将LM Hash禁用了(从Windows vista和 Windows Server2008版本开始, Windows操作系统默认禁用 LM Hash)。 LM Hash明文密码被限定在14位以内,也就是说,如果要停止使用 LM Hash,将用户的密码设置为14位以上即可。如果 LM Hash被禁用了,攻击者通过工具抓取的 LM Hash通常 为“ad3b435b51404eead3b435b51404ee”(表示 LM Hash为空值或被禁用) NTLM Hash是微软为了在提高安全性的同时保证兼容性而设计的散列加密算法。 NTLM Hash 是基于MD4加密算法进行加密的。个人版从 Windows vista以后,服务器版从 Windows Server 2003以后, Windows操作系统的认证方式均为 NTLM Hash
为了解决LM加密和身份验证方案中固有的安全弱点Microsoft 于1993年在Windows NT 3.1中引入了NTLM协议。下面是各个版本对LM和NTLM的支持。 LM Hash原理
1、将明文口令转换为其大写形式 假设这里以明文Admin123为例转换为大写格式为ADMIN123 2、 将字符串大写后转换为16进制字符串转换后为 41 44 4D 49 4E 40 31 32 33
3、密码不足14字节要求用0补全1Byte8bit,上面的16进制字符串共9个字节,还差5个字节 我么使用 00 00 00 00 00 补全为 41 44 4D 49 4E 40 31 32 33 00 00 00 00 00 4、将上述编码分成2组7字节
41 44 4D 49 4E 40 31 第一组
32 33 00 00 00 00 00 第二组5、将每一组7字节的十六进制转换为二进制每7bit一组末尾加0再转换成十六进制组成得到2组8字节的编码
第一组
16进制41 44 4D 49 4E 40 31
转换为二进制01000001010001000100110101001001010011100100000000110001
七个为一组末尾补一个0
01000000
10100010
00010010
10101000
10010100
01110010
00000000
01100010
合并后为0100000010100010000100101010100010010100011100100000000001100010
在转换为16进制40A212A894720062第二组
16进制32 33 00 00 00 00 00
转换为二进制00110010001100110000000000000000000000000000000000000000
七个为一组末尾补一个0
00110010
00011000
11000000
00000000
00000000
00000000
00000000
00000000
合并后为0011001000011000110000000000000000000000000000000000000000000000
在转换为16进制3218C000000000006、将以上步骤得到的两组8字节编码分别作为DES加密key为魔术字符串 KGS!#$% 进行加密 KGS!#$%的16进制为 4B47532140232425
将KGS!#$%的16进制 4B47532140232425作为明文 加密运算 第一组6F08D7B306B1DAD4
第二组B75E0C8D76954A507、最终结果拼接即可6F08D7B306B1DAD4B75E0C8D76954A50
NTLM Hash原理
将明文口令转换成十六进制的格式 如Admin123 转换成Unicode格式即在每个字节之后添加0x00
1、Admin123转16进制 41646D696E403132332、每个字节后添加00410064006D0069006E004000310032003300对Unicode字符串作MD4加密生成32位的十六进制数字串 570a9a65db8fba761c1008a51d4c95ab