• Windows系统散列值获取分析与防范


    LM Hash && NTLM Hash

      Windows操作系统通常使用两种方法对用户的明文进行加密处理,在域环境中,用户信息存储在ntds.dit中,加密后为散列值。Windows操作系统中的密码一般由两部分组成,一部分为LM Hash,另一部分为NTLM Hash。在Windows操作系统中,Hash的结构通常如下:

      username:RID:LM-HASH:NT-HASH

      LM Hash的全名为“LAN  Manager Hash”,是微软为了提高Windows操作系统的安全性而采用的散列值加密算法,其本质为DES加密算法。LM Hash的生成原理在这里就不再赘述(密码不足14字节将用0补全)。尽管LM Hash较容易被破解,但为了保证系统的兼容性,Windows只是将LM Hash禁用了。LM Hash明文密码被限定在14位以内,也就是说,如果要停止使用LM Hash,将用的密码设置为14位以上就可以了。如果LM Hash被禁用了,攻击者通过工具抓取的LM Hash通常为"aad3b435b51404eeaad3b435b51404ee"(表示LM Hash为空值或者被禁用了)

       NTLM Hash是微软为了提高安全性的同时保证兼容性而设计的散列加密算法。NTLM Hash是基于MD4加密算法进行加密的。

    一.单机密码抓取与防范

      要想在Windows操作系统中抓取散列值或明文密码,必须将权限提升至System。本地用户名、散列值和其他安全验证信息都保存在SAM文件中。lsass.exe进程用于实现Windows的安全策略(本地安全策略和登录策略)。可以使用工具将散列值和明文密码从内存中的lsass.exe进程或SAM文件中导出。

      在Windows操作系统中,SAM文件的保存位置是C:\Windows\System32\config。该文件是被锁定,不允许复制。在渗透测试中,可以采用传统方法,在关闭Windows操作系统之后,使用PE盘进入文件管理环境,直接复制SAM文件,也可以使用VSS等方法进行复制。

    1.GetPass

      打开GetPass工具所在的目录。运行该程序后,即可获得明文密码。

    2.PwDump7

      在命令行环境中运行PwDump7程序,可以得到系统中所有账户的NTLM Hash

    3.QuarksPwDump

      在命令行环境中输入“QuarksPwDump.exe  --dump-hash-local”,导出三个用户的NTLM Hash

     4.通过SAM和System文件抓取密码

    (1)导出SAM和System文件

    无工具导出SAM文件,命令如下

     通过reg的save选项将注册表中的SAM、System文件导出到本地磁盘

    (2)通过读取SAM文件和System文件获得NTLM Hash

    (3)运行Cain读取SAM文件

     (4)使用mimikatz直接读取本地SAM文件,导出Hash信息

    通过远程下载目标及的SAM文件,然后通过在本机运行mimikatz来获取HASH,

    privilege::debug    //提升权限

    token::elevate   //将权限提升至System

    lsadump::sam  //获取本地SAM文件,获得NTLM Hash

     5.使用mimikatz在线读取SAM文件

    在mimikatz目录下打开命令行环境,输入以下命令,在线读取散列值及明文密码

    mimikatz.exe  "privilege::debug" "log" "sekurlsa::logonpasswords"

     6.使用mimikatz离线读取lsass.dmp文件

    (1)导出lsass.dmp文件

     

    (2)使用Procdump导出lsass.dmp文件

     (3)使用mimikatz导出lsass.dmp文件中的密码散列值

    加载成功

     导出散列值

    7.使用powershell对散列值进行Dump操作

    NiShang的Get-PassHashs.ps1脚本可用于导出散列值

    以管理员权限打开Powershell环境,进入Nishang目录,将Get-PassHashes.ps1脚本导入,命令如下

    Import-Module   .\Get-PassHashes.ps1

    Get-PassHashes

     8.使用Powershell远程加载mimikatz抓取散列值和明文密码

     未完,,,,,,,

  • 相关阅读:
    整数m去掉n位后剩下最大(小)值
    蛇形矩阵(二)
    Kibana源码启动报错记录--ENOSPC
    Kibana问题记录:yarn test 运行报错 error Trailing spaces not allowed no-trailing-spaces
    Vim 编辑器中全选操作
    Ubuntu系统中连接TFS的Git地址注意事项
    Ubuntu系统升级遇到问题记录
    Kibana6.2.x 插件理解
    Kibana问题搜集---下载源码,执行npm install 报错
    Kibana6.2.2源码入口
  • 原文地址:https://www.cnblogs.com/lzkalislw/p/15849399.html
Copyright © 2020-2023  润新知