zoukankan      html  css  js  c++  java
  • 彻底理解Windows认证1

    彻底理解Windows认证

    一、Windows本地认证

    1. 我的密码在哪里?

      路径:C:WindowsSystem32configSAM

      当我们登录系统的时候,系统会自动的读取SAM文件中的“密码”与我们输入的“密码”进行对比,如果相同,证明认证成功。

    2. NTML(NT LAN Manager) Hash

    NTML Hash是支持Net NTLM认证协议及本地认证过程中的一个重要参与物,其长度为32位,由数字与字母组成。

    Windows本身不存储用户的明文密码,他会将用户的明文密码经过加密算法后存储在SAM数据库中。

    当用户登录时,将用户输入的明文密码也加密成NTLM Hash,与SAM数据库中的NTLM Hash进行比较。NTLM Hash的前身是LM Hash,目前基本淘汰,但还是存在于window xp/2003中。

    3. NTML Hash的产生

     

    上图使用python库加密。

    admin à hex(16禁进制编码) = 61646d696e

    61646d696e àUnicode = 610064006d0069006e00

    610064006d0069006e00àMD4 = 209c6174da490caeb422f3fa5a7ae634

    adminà= 209c6174da490caeb422f3fa5a7ae634

    4. 本地认证流程

     

    Windows Logon Process(即winlogon.exe),是Windows NT用户登录程序,用于管理用户登录和退出。

    LSASS用于微软Windows系统的安全机制。它用于本地安全和登录策略。

    5. LM Hash

    加密过程:

    第一步是将明文口令转换为其大写形式;

    第二步是将字符串大写后转换为16进制字符串;

    第三步是密码不足14字节要求用0补全;

    第四步是将上述编码分成2组7字节(56bits=14*4)的数据;

    第五步是将每一组7字节的十六进制转换为二进制,每7bit一组末尾加0,再转换成十六进制组成得到2组8字节的编码;

    第六步将以上步骤得到的两组8字节编码,分别作为DES加密key为魔术字符串“KGS!@#$% ”进行加密;

    第七步将两组DES加密后的编码拼接。

    二、 Windows网络认证

            在内网渗透中,经常遇到工作组环境,而工作组环境是一个逻辑上的网络环境(工作区),隶属于工作组的机器之间无法互相建立一个完美的信任机制,只能点对点,是比较落后的认证方式,没有信任机构。

            假设A主机与B主机属于同一个工作组环境,A想访问B主机上的资料,需要将一个存在于B主机上的账户凭证发送给B主机,经过认证才能访问B主机上的资源。

            最常见的服务:SMB服务   端口:445

    1. NTLM协议

    早期SMB(文件共享)协议在网络上传输明文口令。后来出现LAN Manger challenge/Response验证机制,简称LM,它是如此简单以至于很容易就被破解。

    微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。

    2. 挑战(challenge)/响应(Response) 

    流程:

     

    第一步协商:

    客户端主要在这一步向服务器确认协议版本,是V1还是V2以及其它信息。

    第二步质询:

    客户端向服务器端发送用户信息(用户名)请求

    • ·服务器接受到请求,生成一个16位的随机数,被称之为“challenge”,使用登录用户名对应的NTLM Hash加密challenge(16位随机字符),生成challenge1。同事,生成challenge1后,将challenge(16位随机字符)发送给客户端。//Net NTLM Hash=NTLM Hash(challenge)。
    • ·客户端接受到challenge后,使用将要登录的账户对应的NTLM Hash加密challenge生成response,然后将response发送至服务器端。

    第三步验证:

    服务器端收到客户端的response后,比对challenge1与response是否相当,若相当,则认证通过。

    ————————————————还有后续哦—————————————————————————————————————————————————————————————————————————————————————————————————

  • 相关阅读:
    python系列之
    php正则:匹配(),{},[]小括号,大括号,中括号里面的内容
    TCP、UDP以及HTTP的简单讲解
    Python Async/Await入门指南
    asyncio并发编程
    python中socket模块详解
    TCP和UDP的优缺点及区别
    网络通信 --> IO多路复用之select、poll、epoll详解
    异步IO和协程
    Python--多任务(多进程,多线程,协程)
  • 原文地址:https://www.cnblogs.com/qswz/p/12326814.html
Copyright © 2011-2022 走看看