不只是考一張證照,這篇是給完全新手的 OSCP(OSCP+)入門指南。
很多人聽過 OSCP,卻只知道一句話:「很硬。」
但如果你完全是新手,只會覺得:
「我連 Kali 是什麼都不太懂,OSCP 跟我有什麼關係?」
這篇文章,就是寫給 剛踏入資安、對滲透測試有興趣,但還不太懂自己在幹嘛 的你。
我會用「學東西」的角度,而不是「背規定」的角度,幫你拆解:
- OSCP+ 考試到底在考什麼?
- 你實際會練到哪些技能?
- 官方允許的工具,到底是在做什麼?什麼時候用?怎麼看結果?下一步怎麼接?
一、先釐清:OSCP / OSCP+ 是在證明什麼能力?
官方說法很長,但可以簡化成一句話:
OSCP+ 要證明的是:你真的能「從 0 開始打進去一個小公司內網,拿到管理者權限,然後寫出一份專業報告」。
裡面包含幾個關鍵能力:
- 看懂網路服務、知道哪些點可能有洞
- 自己動手做資訊蒐集(recon / enum)
- 找到可以利用的弱點(漏洞 / 錯誤設定)
- 寫或改 exploit、取得 shell
- 把普通帳號提權成 Administrator / root
- 把整個過程寫成 滲透測試報告
也就是說,OSCP 考的不是「你會背幾個指令」,而是:
你能不能從亂糟糟的真實環境中,整理出一條可以攻破系統的路線。
二、OSCP+ 考試長什麼樣子?(新手版解釋)
1. 考試形式
- 你在家用電腦,開一台 Kali 虛擬機
- 用 OpenVPN 連進 OffSec 的考場實驗室
- 考場是一個小網段,裡面有幾台機器等你打
- 全程有 線上監考(Proctored),會看到你畫面跟鏡頭
2. 考試時間
- 技術操作:23 小時 45 分
- 考完後再給你 24 小時寫報告、上傳
可以把它想成:
第一天:拼命打機器
第二天:冷靜回顧 + 寫報告
3. 考題結構(超簡化版)
- 3 台獨立主機(共 60 分)
- 每台最高 20 分:
-
10 分:拿到
local.txt(普通帳號) - 10 分:拿到
proof.txt(最高權限)
-
1 組 Active Directory(AD)網域(共 40 分)
- 一開始就給你一組 AD 帳號密碼(模擬已被某帳號入侵)
- 你要從這個起點,想辦法橫向移動、提權、拿更多機器
- 滿分:100 分
-
及格門檻:70 分
你不一定要把所有機器打穿才會過,但必須靠 AD + 幾台獨立主機 湊滿 70 分。
三、考試裡最容易被忽略:工具規定與心態
你在考試中,不能亂用工具。
簡單分成三類:
- 完全禁止(踩到就掰)
- 各種 AI / Chatbot:ChatGPT、OffSec KAI、Claude、Gemini、DeepSeek…
- 大型自動化掃描:Nessus、OpenVAS、Canvas、Core Impact…
- 自動化 Exploit 工具、各種「一鍵打爆」類工具
- 商業版工具:Metasploit Pro、Burp Pro…
- 有條件限制
- Metasploit / Meterpreter:
- 只准選 一台機器 使用(包含
aux、exploit、post、Meterpreter payload) - 選下去就不能換機,不可以多台「試試看」
- 只准選 一台機器 使用(包含
- 可以用(重點是你怎麼用)
- 像 Nmap、Burp Free、gobuster、BloodHound、Mimikatz、Impacket…
- 這些工具不會幫你決定戰術,只會幫你做:掃描、收集資訊、轉換格式
接下來這一段,就是給新手看的「工具導覽」,讓你知道:
- 每個工具是在做什麼
- 什麼時候輪到它上場
- 基本操作步驟是什麼
- 結果要怎麼解讀
- 下一步可以做什麼
四、OSCP 常見工具入門:不是背名詞,而是串流程
建議你一邊看這段,一邊在腦中想像一條流程線:
發現服務 → 枚舉細節 → 嘗試利用 → 提權 → 橫向移動
我會用同一套架構介紹每個工具:
- 它在做什麼?
- 什麼時候輪到它上場?
- 最基本的使用步驟?
- 結果應該看什麼?
- 下一步可以做什麼?
1. Nmap(含 NSE Script)
在做什麼?
- 幫你掃主機有哪些 Port 開啟、跑什麼服務、版本大概是什麼
- 用 NSE Script 可以做進一步 probing(例如:簡單漏洞偵測)
什麼時候用?
- 一連進考場、拿到 IP 範圍後,第一件事 幾乎都是跑 Nmap
- 中途也會針對單一主機,做更細的掃描
基本使用步驟(示意)
# 快速掃描常見 port
nmap -sV -sC 10.10.10.10
# 全 port 深度掃描
nmap -p- -sV 10.10.10.10
# 使用某些 NSE script,例如 http-enum
nmap --script http-enum -p80 10.10.10.10
結果要看什麼?
- 每一個 Open port + Service 名稱 + Version
- 80/tcp http Apache 2.4.29
- 445/tcp microsoft-ds Windows 10 Pro
- 3389/tcp ms-wbt-server (RDP)
- 這些資訊會告訴你:
- 有沒有 Web 要用 Burp / gobuster 深挖
- 有沒有 SMB(445)可以用 smbclient / CrackMapExec
- 有沒有 RDP 可以後面用來登入
下一步可以做什麼?
- 有 Web → 用 Nikto / gobuster / Burp 繼續挖
- 有 SMB → 用 Impacket / CrackMapExec 枚舉
- 有奇怪服務(自訂 Port)→ 用 netcat / 自己寫腳本測試
2. Nikto
在做什麼?
- 專打 Web server 的 已知弱點掃描器(偏老派,但在 OSCP 很常用)
- 會幫你測試:
- 常見 misconfig
- 預設檔案 / 預設頁面
- 老舊版本的已知 CVE
什麼時候用?
- 你確定一台機器有 HTTP / HTTPS(例如 80 / 443 / 8080)時
- 想快速看它有沒有「大紅旗」式的弱點
基本使用步驟
nikto -h http://10.10.10.10
結果要看什麼?
- 有沒有顯示:
- 已知漏洞(CVE…)
- 有趣的路徑:
/admin/、/phpinfo.php、/backup/等 - 危險設定:列目錄、語法錯誤、舊版本
下一步可以做什麼?
- 拿到有趣路徑 → 用 瀏覽器 / Burp 進去看、測 payload
- 拿到版本資訊 → 去搜尋是否有已知 exploit
3. DirBuster / gobuster / ffuf(目錄/檔案爆破工具)
在做什麼?
- 幫你對 Web 站台打一串字典,找出 隱藏的路徑或檔案:
/admin//backup.zip/test.php/hidden/
什麼時候用?
- Nmap / Nikto 告訴你有 Web 服務,但是看起來很「乾」時
- 想找出管理後台、備份檔、API endpoint
基本使用步驟(以 gobuster 為例)
gobuster dir -u http://10.10.10.10 -w /usr/share/wordlists/dirb/common.txt
結果要看什麼?
- 狀態碼:
200、301、403特別有價值 - 路徑名稱:看起來像後台、備份、config、upload 的特別重要
下一步可以做什麼?
- 進入這些路徑,用瀏覽器 + Burp 去觀察功能
- 若有檔案(zip / sql / bak)→ 下載來看,可能藏帳號密碼
4. Burp Suite Free
在做什麼?
- 充當 瀏覽器與網站中間的攔截代理
- 讓你可以:
- 看到每一個 HTTP Request / Response
- 修改參數重新送出(測試 SQLi、XSS、RCE 等)
- 重放請求、做簡單爆破(例如登入表單)
什麼時候用?
- 任何 Web 題目,只要不只是 read-only,都會用到它
- 尤其是有登入框、檔案上傳、搜尋功能時
基本使用步驟
- 設定瀏覽器代理到 Burp(通常是 127.0.0.1:8080)
- 打開 Burp → 開啟 Proxy → 勾選 Intercept On
- 在瀏覽器操作網站 → 請求會被攔截
- 在 Burp 裡觀察 / 修改 → Forward 送出
結果要看什麼?
- Request:
- URL、參數、Cookie、Header
- Response:
- 錯誤訊息(SQL 錯誤、堆疊…)
- 回傳內容中是否顯示敏感資料
下一步可以做什麼?
- 將有趣 request 送到 Repeater / Intruder 做 fuzz / 爆破
- 結合你對漏洞類型的理解,試 sql injection、path traversal 等
5. BloodHound(搭配 SharpHound)
從這個工具開始就偏向 Active Directory(AD)世界 了。
在做什麼?
- BloodHound 是一個 視覺化 AD 權限關係圖 工具
- SharpHound 是用來 收集 AD 資訊 的小程式(在 Windows 裡跑)
- 兩者配合,可以幫你找到:
- 哪個帳號可以做什麼事
- 從 A 帳號走到 Domain Admin 的最短路線
什麼時候用?
- OSCP+ 考試中的 AD 題目:
當你有某個 AD 帳號 / shell 時,就可以用它來看整體權限地圖。
基本使用步驟(概念)
- 在受害機器上執行 SharpHound:
- 收集 AD 中的帳號、群組、主機、關係
- 把產生出來的資料 zip 檔下載到 Kali
- 在 Kali 上用 BloodHound 把資料匯入
- 用內建 Query 看:
- 「我這個帳號可以升級到哪裡?」
結果要看什麼?
- 圖上的節點(使用者 / 主機 / 群組)
- 線條代表的關係(例如:可以 RDP、可以 DCSync…)
下一步可以做什麼?
- 根據圖上的路徑,決定:
- 下一台要攻擊哪一台
- 要使用什麼技術(例如 pass-the-hash、假票據)
6. PowerView
在做什麼?
- PowerShell 寫成的 AD 枚舉工具
- 讓你在 Windows shell 裡查:
- 有哪些電腦、使用者、群組
- 某個帳號權限隸屬於哪些群組
什麼時候用?
- 你已經在 AD 內某台 Windows 機器拿到 PowerShell shell
- 想要 純文字方式 了解 AD 結構
基本使用步驟(概念)
- 把 PowerView script 丟進受害機器
- 在 PowerShell 內 Import
- 使用指令例如:
Get-DomainUserGet-DomainComputerGet-DomainGroupMember
結果要看什麼?
- 哪些帳號看起來是管理員 / 服務帳號
- 哪些機器屬於重要群組
下一步可以做什麼?
- 配合 BloodHound / Rubeus / Mimikatz
做更深入的憑證竊取、橫向移動
7. evil-winrm
在做什麼?
- 在 OSCP 世界裡很常見的 Windows 遠端管理 shell 工具
- 使用 WinRM(Windows Remote Management)協定
- 只要你有帳號+密碼 / hash,就可以拿到一個互動式 PowerShell
什麼時候用?
- 你已經拿到某個 Windows 帳號密碼或 hash
- 想要「穩定、好用的 shell」,而不是某個不穩的 exploit shell
基本使用步驟
evil-winrm -i 10.10.10.10 -u user -p 'Passw0rd!'
結果要看什麼?
- 有沒有成功登入
- 你現在是在什麼權限(
whoami、whoami /groups)
下一步可以做什麼?
- 用它來上傳工具(PowerView、Mimikatz…)
- 做檔案操作、執行 PowerShell 腳本、進一步提權
8. CrackMapExec(CME)
在做什麼?
- 幫你在整個內網中「批量測試」帳號密碼 / hash
- 對多台 Windows / SMB 主機:
- 嘗試登入
- 收集資訊(例如 OS 版本、是否有 Local Admin 權限)
什麼時候用?
- 你有一組可疑帳號 / 密碼
- 想知道這組帳號在整個網段裡哪幾台可以登入
基本使用步驟(簡化)
crackmapexec smb 10.10.10.0/24 -u user -p 'Passw0rd!'
結果要看什麼?
- 哪些主機顯示
Pwned!、Admin、Success - 哪些主機拒絕或無法登入
下一步可以做什麼?
- 對那些成功登入的主機:
- 用 evil-winrm 開 shell
- 用其它工具進一步提權與橫向移動
9. Mimikatz
在做什麼?
- Windows 上的 憑證竊取神器
- 可以在記憶體中拉出:
- 明碼密碼(某些情況下)
- NTLM hash
- Kerberos ticket
什麼時候用?
- 你已經擁有 Windows 上的高權限(Local Admin / SYSTEM)
- 想要從這台機器「挖更多帳號」出來,用於橫向移動
基本使用步驟(概念)
- 以管理員權限執行 Mimikatz
- 用常見指令如:
sekurlsa::logonpasswordslsadump::lsa /patch
結果要看什麼?
- 取得的帳號、domain、密碼 / hash
- 特別注意 Domain Admin / 服務帳號
下一步可以做什麼?
- 用取得的 hash 做 pass-the-hash / RDP / evil-winrm
- 配合 CrackMapExec 在整個網段試登入
10. Impacket 工具集(如 psexec.py、wmiexec.py、secretsdump.py)
在做什麼?
- 一整組 Python 寫的網路協定工具
- 在 AD / Windows 關卡常用的幾個例子:
psexec.py:用帳號 hash 在遠端主機執行指令並拿 shellwmiexec.py:透過 WMI 拿 Semi-interactive shellsecretsdump.py:從機器或 AD dump 出 hash
什麼時候用?
- 你已經拿到某個帳號的 hash
- 想要 remote 執行,或 dump 更多憑證
基本使用步驟(簡化)
# 用 hash 拿 shell
psexec.py domain/[email protected] -hashes :NTLM_HASH
結果要看什麼?
- 是否成功拿到 shell
secretsdump.py跑完後有沒有拿到重要帳號 hash
下一步可以做什麼?
- 把更多 hash 再餵回 CrackMapExec / psexec / evil-winrm
→ 建立一條「從一個帳號到整個域的滲透鏈」
11. Rubeus
在做什麼?
- 萬用 Kerberos 工具(C# 寫的)
- 可以做:
- 票據列舉(Kerberoasting)
- 請票 / 偽造票據
- 票據匯出與匯入
什麼時候用?
- 你已經在 AD 內部,有某個 domain 帳號 shell
- 想利用 Kerberos 特性來取得更多 hash / 服務帳號
基本使用步驟(概念)
- 將 Rubeus 丟到受害機器
- 執行指令(如 Kerberoast 功能)
- 把產生的 hash 拿回 Kali 用 hashcat / john 破
結果要看什麼?
- 產出的 hash 列表(常是服務帳號)
- 哪些帳號看起來值得破解
下一步可以做什麼?
- 破出密碼後 → 再拿新帳號去登入其他機器 / 提權
12. PrintSpoofer
在做什麼?
- Windows 本機提權 exploit,用來從 普通使用者 → SYSTEM
- 利用 Print Spooler / 特定權限設定的漏洞
什麼時候用?
- 你在某台 Windows 機器已經有一個低權限 shell
- 想要拿到 SYSTEM(以取得
proof.txt或 dump Credentials)
基本使用步驟(概念)
- 把 PrintSpoofer 丟到受害機器
- 以目前使用者執行
- 成功後會幫你開一個 SYSTEM 權限的 shell / 指令
結果要看什麼?
- 有沒有看到
NT AUTHORITY\SYSTEM - 能不能讀取
C:\Users\Administrator\Desktop\proof.txt
下一步可以做什麼?
- 以 SYSTEM 身份:
- 取 flag
- 執行 Mimikatz / secretsdump 等工具
五、對新手來說:OSCP 應該怎麼看?
很多新手一開始看 OSCP,只看到:
- 很多英文名詞
- 一堆工具名字
- 一堆規定
但如果你換一個角度看:
OSCP 其實是在要求你:
學會一套「有步驟、有紀錄、有報告」的攻防流程。
你可以這樣把它拆開學:
- 先練流程,不要先想證照
- 用 Hack The Box / TryHackMe / OffSec Lab
一台一台打,練:Nmap → gobuster → Burp → exploit → 提權 → 寫紀錄
- 工具先會「用」、再慢慢理解「為什麼」
- 一開始你可以只記:
- Nmap 找門
- gobuster 找隱藏房間
- Burp 把「你按的每個按鈕」拆開看
- 等你比較熟,再回頭學協定細節
- 平常寫「自己的小報告」
- 每打完一台機器,就寫一份 mini report:
- 目標敘述
- 探測流程
- 利用方式
- 提權方式
- 可以怎麼修補
- 考試時的正式報告,只是這些練習的「放大版」。
