iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0
Claude AI

打靶機 30 天:從 Metasploitable2 到 3 的滲透測試學習筆記系列 第 21 篇

攻擊路徑規劃:面對多重漏洞該如何取捨優先順序

  • 分享至 

  • xImage
  •  

你現在手上有一張攻擊面總表,上面列了 20 多個服務和一堆可能的漏洞。
問題來了:該先打哪個?

如果你是在打 CTF,答案是「都試一遍」。但如果你是在做滲透測試,時間是有限的——客戶給你一週,不可能每個漏洞都深入。你必須在最短時間內找到最有價值的突破口。

這篇要講的不只是「MS3 該怎麼打」,而是一套通用的攻擊路徑規劃方法論——這是 OSCP 考試和實際滲透測試都需要的核心能力

┌──────────────────────────────────────────────────────────────┐
│                    攻擊優先順序評估矩陣                      │
├──────────────┬───────────────────────────────────────────────┤
│              │                                               │
│  維度 1      │  Exploit 可用性                               │
│  有沒有現成  │                                               │
│  武器?      │  3 分:有公開 exploit,可直接使用             │
│              │  2 分:有 exploit 但需要修改或條件             │
│              │  1 分:只有漏洞描述,需要自己寫 exploit       │
│              │  0 分:沒有已知漏洞                           │
│              │                                               │
├──────────────┼───────────────────────────────────────────────┤
│              │                                               │
│  維度 2      │  認證需求                                     │
│  需不需要    │                                               │
│  帳密?      │  3 分:無需認證,直接存取                     │
│              │  2 分:有預設帳密可試                         │
│              │  1 分:需要有效帳密(可能要爆破)             │
│              │  0 分:需要高權限帳號                         │
│              │                                               │
├──────────────┼───────────────────────────────────────────────┤
│              │                                               │
│  維度 3      │  影響程度                                     │
│  打穿之後    │                                               │
│  能拿到什麼?│  3 分:直接 RCE(遠端程式碼執行)            │
│              │  2 分:可讀寫檔案或存取敏感資料               │
│              │  1 分:資訊洩漏(有助於下一步攻擊)          │
│              │  0 分:只有 DoS 或無實質影響                  │
│              │                                               │
├──────────────┼───────────────────────────────────────────────┤
│              │                                               │
│  維度 4      │  時間成本                                     │
│  要花多少    │                                               │
│  時間?      │  3 分:< 15 分鐘                              │
│              │  2 分:15-60 分鐘                             │
│              │  1 分:1-3 小時                               │
│              │  0 分:> 3 小時或不確定                       │
│              │                                               │
└──────────────┴───────────────────────────────────────────────┘

  總分 = Exploit 可用性 + 認證需求 + 影響程度 + 時間成本
  滿分 12 分,越高越優先

攻擊路徑的三種策略

拿到評分之後,還要選擇攻擊策略。不同場景適合不同策略:

策略 A:速攻型(Speed Run)
━━━━━━━━━━━━━━━━━━━━━━━━━━━
適用:CTF 比賽、OSCP 考試、時間極度有限
原則:只打總分最高的,拿到 shell 就往下走

  路線:
  Elasticsearch RCE (12分)
    → 成功? → 提權 → 結束
    → 失敗? → Jenkins Console (11分)
               → 成功? → 提權 → 結束
               → 失敗? → UnrealIRCd 後門 (12分)
                          → ...

  時間預算:每個目標最多 30 分鐘
  放棄標準:超時就換下一個
  目標:最短時間拿到 root


策略 B:廣度型(Breadth First)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
適用:正式滲透測試報告、漏洞評估
原則:每個攻擊面都要碰到,記錄所有發現

  路線:
  Phase 1: 快速驗證所有高分目標(每個 15 分鐘)
    → Elasticsearch:試 exploit → 記錄結果
    → Jenkins:試登入 → 記錄結果
    → MySQL:試預設帳密 → 記錄結果
    → ProFTPD:試 mod_copy → 記錄結果
    → ...全部過一遍

  Phase 2: 深入利用成功的目標
    → 回到 Phase 1 中成功的,做完整利用
    → 拿 shell、提權、截圖、記錄步驟

  Phase 3: 補充中低分目標
    → Samba 列舉、CUPS 探測等

  時間預算:Phase 1 全部完成再進 Phase 2
  目標:完整的漏洞清單 + 風險評估報告


策略 C:攻擊鏈型(Kill Chain)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
適用:紅隊演練、APT 模擬、學習攻擊思維
原則:像真正的攻擊者一樣,把多個弱點串起來

  路線:
  Step 1: 資訊收集
    Samba 匿名列舉 → 找到設定檔和帳密
    ↓
  Step 2: 初始存取
    用找到的帳密登入 MySQL/phpMyAdmin
    ↓
  Step 3: 據點建立
    MySQL INTO OUTFILE 寫 WebShell
    或 ProFTPD mod_copy 放 WebShell
    ↓
  Step 4: 提權
    WebShell → 反彈 shell → LinPEAS → root
    ↓
  Step 5: 持久化
    加 SSH key、建立後門帳號
    ↓
  Step 6: 橫向移動
    (如果有 Windows VM)SMB/WinRM 到 Windows

  時間預算:不限,重在過程
  目標:完整的攻擊鏈,模擬真實入侵

放棄的藝術

放棄標準(Stop Criteria):

  ┌─────────────────────────────────────────────────┐
  │ 什麼時候該放棄當前目標?                        │
  │                                                 │
  │ 1. 時間到了                                     │
  │    → 設定好的時間預算用完(15/30/60 分鐘)      │
  │    → 嚴格遵守,不要「再試最後一次」             │
  │                                                 │
  │ 2. 前提條件不成立                               │
  │    → exploit 需要特定版本,但目標版本不對        │
  │    → 例:Drupalgeddon 需要 7.x < 7.32           │
  │         但目標是 7.38 → 直接放棄                │
  │                                                 │
  │ 3. 環境不允許                                   │
  │    → 防火牆擋了反彈連線                         │
  │    → 目標沒有你需要的工具                       │
  │    → 記錄下來,稍後用其他方法繞過               │
  │                                                 │
  │ 4. 已經拿到同等權限                             │
  │    → 已經從 Elasticsearch 拿到 shell 了          │
  │    → Jenkins 也能拿 shell 但同樣權限            │
  │    → 除非報告需要,否則跳過                     │
  └─────────────────────────────────────────────────┘

  ┌─────────────────────────────────────────────────┐
  │ 什麼時候不該放棄?                              │
  │                                                 │
  │ 1. 有明確進展但尚未完成                         │
  │    → exploit 跑了但 shell 沒彈回來              │
  │    → 可能是 payload 或網路問題,值得排錯         │
  │                                                 │
  │ 2. 這是唯一的攻擊路徑                           │
  │    → 其他目標都試過了                           │
  │    → 這是最後的希望                             │
  │                                                 │
  │ 3. 能拿到更高權限                               │
  │    → 當前 shell 是低權限                        │
  │    → 某個漏洞可能直接給 root                    │
  └─────────────────────────────────────────────────┘

視覺化:攻擊路徑規劃全流程

  ┌─────────────┐
  │ Nmap 掃描   │
  │ 結果        │
  └──────┬──────┘
         │
         ▼
  ┌─────────────┐     ┌─────────────┐
  │ 服務清單    │────→│ searchsploit│
  │ + 版本號    │     │ 查漏洞      │
  └──────┬──────┘     └──────┬──────┘
         │                   │
         └─────────┬─────────┘
                   │
                   ▼
         ┌─────────────────┐
         │ 四維度評分      │
         │ Exploit/認證/   │
         │ 影響/時間       │
         └────────┬────────┘
                  │
                  ▼
         ┌─────────────────┐
         │ 選擇策略        │
         │ 速攻/廣度/鏈式  │
         └────────┬────────┘
                  │
                  ▼
         ┌─────────────────┐
         │ 寫攻擊計畫      │
         │ 排優先順序      │
         │ 設時間預算      │
         └────────┬────────┘
                  │
                  ▼
    ┌─────────────────────────┐
    │ 執行                    │
    │                         │
    │  目標 #1 ──→ 成功?     │
    │    │          │    │    │
    │    │         YES   NO   │
    │    │          │    │    │
    │    │          ▼    ▼    │
    │    │       後利用  超時?│
    │    │       提權    │    │
    │    │          │   YES   │
    │    │          │    │    │
    │    │          ▼    ▼    │
    │    │        root  目標#2│
    │    │                    │
    └─────────────────────────┘

上一篇
Metasploitable3 環境建置
系列文
打靶機 30 天:從 Metasploitable2 到 3 的滲透測試學習筆記 共 21 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言