zoukankan      html  css  js  c++  java
  • 明文密码和散列值抓取防范方法

    一、单机密码抓取的防范方法
      
      微软为了防止用户密码在内存中以明文形式泄露,发不了补丁KB2871997,关闭了Wdigest功能。windows server 2012以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。对于win server 2012以下版本,通过安装KB2871997补丁,可以避免攻击者获取明文密码。
      通过查看注册表键值,可以判断Wdigest功能状态。如果该项值为“1”则为开启,即可以获取明文密码,如果该项值为“0”,则明文密码不会出现在内存中。开启和关闭Wdigest Auth命令如下:
     
    (1)reg add 命令
    开启Wdigest Auth
    reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
    关闭Wdigest Auth
    reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
     
    (2)使用powershell
    开启Wdigest Auth
    Set-ItemProperty -Path HKLM:SYSTEMCurrentControlSetControlSecurityProvidersWDigest -Name UseLogonCredential -Type DWORD -Value 1
    关闭Wdigest Auth
    Set-ItemProperty -Path HKLM:SYSTEMCurrentControlSetControlSecurityProvidersWDigest -Name UseLogonCredential -Type DWORD -Value 0
     
    二、防范抓取明文密取和散列值
     
     1.设置Active Directory 2012 R2功能级别
    win server 2012 R2新增了一个“受保护的用户”的用户组,只要将需要保护的用户加入该组,攻击者就无法通过mimikatz等工具抓取明文密码和散列值了。
     
    此组的成员将受到针对身份验证安全威胁的额外保护。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=298939
     
     
    2.安装KB28711997补丁
     
      KB28711997补丁是微软为了解决PsExec远程查看(c$)问题的补丁,能使本地账号不再被允许远程接入计算机系统,但是系统默认的本地管理员账号administrator这个SID为500的用户例外——即使将Administrator改名,该账号的SID还是500,攻击者仍然可以使用横向攻击方法获得内网中其他机器的控制权。安装28711997后,仍需要禁用默认的Administrator账号,以防御哈希传递攻击。
     
    3.通过修改注册表禁止在内存中存储明文密码
     
    微软在Windows Xp版本中添加了一个Wdigest协议。该协议能够使windows将明文密码存储在系统内存中,以方便用户登录本地计算机。通过修改注册表的方式可以解决内存中以明文密码存储密码的问题。
    (1)reg add 命令
    关闭Wdigest Auth
    reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 0 /f
    (2)使用powershell
    关闭Wdigest Auth
    Set-ItemProperty -Path HKLM:SYSTEMCurrentControlSetControlSecurityProvidersWDigest -Name UseLogonCredential -Type DWORD -Value 0
     
    使用reg query查询该键值是否添加成功
    reg query HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential
    修改完成后,注销系统重新登录后,就无法利用mimikatz等密码抓取工具导出明文密码了,只能导出NTLM Hash。因为NTLM Hash一般很难破解,所以只要windows设置的密码足够复杂,并且保证定期修改密码的习惯,就可以降低系统被彻底攻陷的可能性。
     
    4.防御mimikatz攻击
     
    根据Debug权限确定哪些用户可以将调试器附加到任何进程或内核中。在默认情况下,此权限为本地管理员Administrator所有,除了老系统,本地管理员几乎不需要使用此权限。
    mimikatz在抓取散列值或明文密码时需要使用Debug权限(因为mimikatz需要和lsass.exe进程进行交互,如果没有Debug权限,mimikatz将不能读取lsass进程)。因此,我们可以针对这一点采取进行防御措施。将拥有Debug权限的本地管理员从Administrators组中移除。重启系统后将无法再使用mimikatz进行抓取散列值和明文密码了。
     
  • 相关阅读:
    页面布局的一些心得
    EverNote自定义模板
    运行时创建类的小问题
    测试窗体只能用于来自本地计算机的请求
    VS2010技巧:如何在js文件中使用jQuery智能感知
    让SQL Server Compact支持 Membership, Role and Profile provider
    MVC3返回一个或者多个数据集的方法
    NuGet使用方法
    mvc@helper 的用法和作用
    LINQ to Entities 不识别方法"System.String ToString()"
  • 原文地址:https://www.cnblogs.com/micr067/p/12299335.html
Copyright © 2011-2022 走看看