路径:C:\Windows\System32\config\SAMpython
当咱们登陆系统的时候,系统会自动的读取SAM文件中的“密码”与咱们输入的“密码”进行对比,若是相同,证实认证成功。算法
NTML Hash是支持Net NTLM认证协议及本地认证过程当中的一个重要参与物,其长度为32位,由数字与字母组成。数据库
Windows自己不存储用户的明文密码,他会将用户的明文密码通过加密算法后存储在SAM数据库中。安全
当用户登陆时,将用户输入的明文密码也加密成NTLM Hash,与SAM数据库中的NTLM Hash进行比较。NTLM Hash的前身是LM Hash,目前基本淘汰,但仍是存在于window xp/2003中。服务器
上图使用python库加密。网络
admin à hex(16禁进制编码) = 61646d696e编码
61646d696e àUnicode = 610064006d0069006e00加密
610064006d0069006e00àMD4 = 209c6174da490caeb422f3fa5a7ae634code
adminà= 209c6174da490caeb422f3fa5a7ae634blog
Windows Logon Process(即winlogon.exe),是Windows NT用户登陆程序,用于管理用户登陆和退出。
LSASS用于微软Windows系统的安全机制。它用于本地安全和登陆策略。
加密过程:
第一步是将明文口令转换为其大写形式;
第二步是将字符串大写后转换为16进制字符串;
第三步是密码不足14字节要求用0补全;
第四步是将上述编码分红2组7字节(56bits=14*4)的数据;
第五步是将每一组7字节的十六进制转换为二进制,每7bit一组末尾加0,再转换成十六进制组成获得2组8字节的编码;
第六步将以上步骤获得的两组8字节编码,分别做为DES加密key为魔术字符串“KGS!@#$% ”进行加密;
第七步将两组DES加密后的编码拼接。
在内网渗透中,常常遇到工做组环境,而工做组环境是一个逻辑上的网络环境(工做区),隶属于工做组的机器之间没法互相创建一个完美的信任机制,只能点对点,是比较落后的认证方式,没有信任机构。
假设A主机与B主机属于同一个工做组环境,A想访问B主机上的资料,须要将一个存在于B主机上的帐户凭证发送给B主机,通过认证才能访问B主机上的资源。
最多见的服务:SMB服务 端口:445
早期SMB(文件共享)协议在网络上传输明文口令。后来出现LAN Manger challenge/Response验证机制,简称LM,它是如此简单以致于很容易就被破解。
微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。如今已经有了更新的NTLMv2以及Kerberos验证体系。
流程:
第一步协商:
客户端主要在这一步向服务器确认协议版本,是V1仍是V2以及其它信息。
第二步质询:
客户端向服务器端发送用户信息(用户名)请求
第三步验证:
服务器端收到客户端的response后,比对challenge1与response是否至关,若至关,则认证经过。
————————————————还有后续哦—————————————————————————————————————————————————————————————————————————————————————————————————