歷經 4 個月的努力,成功在今年 7 月考取 OSCP 認證,因此想透過此篇心得分享幫助正在準備或者是計劃考取 OSCP 認證的朋友。
任職於資安代理商約 5 年,目前從事 MDR 二線分析工作,因為工作經歷有接觸網通設備(Firewall,WLAN),所以在網路概念有一定基礎 ; 至於在駭客攻防(紅隊)領域,則在工作上比較不會用到,但因為本身有興趣,所以有自行學習相關知識與考取一些認證,如:CEH , CPENT / LPT Master。
關於 Offensive Security (Offsec) 課程類別與定位,可以參考下方圖片
https://www.offsec.com/courses/pen-200/
OSCP 全名 Offensive Security Certified Professional,是完成 「 PEN-200:Penetration Testing with Kali Linux 」課程認證後,將會頒布的證照名稱 ; PEN-200 在 Offsec 的課程定位在 Penetration Testing 入門證照,在往上還有更困難的 300 等級,其他主題甚至是更高級別。
OSCP 主要以實做滲透的考試方式聞名 (23HR 45MIN 實做滲透主機,接續 24HR 撰寫滲透報告),考試過程無法使用自動化工具以及商業化工具(可以有條件使用 Metasploit 一次),需具備一定的滲透能力才有辦法通過考試,因此該證照標榜可以篩選出具有滲透能力的人與腳本小子 Script kiddie。
OSCP 及格標準為 70 分,可以透過完成 Bonus Point 的標準來獲得的 10 分加分,並且有多個通過考試的解題組合方式,後續會進一步說明。
OSCP 課程主要分成三種方案,可以自己決定要購買哪種方案,主要差異在於 Lab 存取時間 / 附送考試的次數 / 是否附送其他課程 ; 經過自行評估後,我最後選擇 OSCP - Course & Cert Exam Bundle 的課程方案( 90 天 lab 存取期限),課程購買流程是直接透過 Offsec 官方網站(使用信用卡購買)。
https://www.offsec.com/courses/pen-200/
在課程購買後,需要提供給 Offsec 有效證照(未過期)的電子檔,我使用護照作為有效證件,並且需要使用PGP加密電子檔。
在完成上述步驟後,就可以登入 Offsec 官網開始進行 PEN-200 課程,在課程開始後有限時提供學生下載教材(PDF+影片檔),若過了下載時間,則無法在下載,並且教材的 PDF 印有每個學生的 OSID,若洩露教材資源,Offsec 會取消該學生資格,因此需要特別注意。
在今年三月中,新版的教材(PEN-200-2023)釋出,取代了原本的教材(PEN-200-2022),PEN-200-2022 已在今年 6 月底退役,並且新版教材內容會在公佈後的 6 個月之後,有機會放入考試範圍中 ; 由於教材更新無預警的公布,並且 Bonus 機制需使用新版課程來計算,因此我只好放棄先前半個月在 PEN-200-2022 的進度,在 PEN-200-2023 新課程重新開始,這也導致我預先規劃「 2 個月 Course + Exercise & 1 個月 Lab 解題」進度 Delay,而在後面加購了 1 個月的 Lab 時間展延 ( 費用 : 美元 359 )。
回歸課程內容,PEN-200-2023 (以下統稱PEN-200)主要拆分成 25 個章節,每個章節都有練習題( Exercise ),全部合計 300+ 題,每個章節 Exercise 的完成率是影響 Bonus 加分的條件之一 (每個學生需完成每個章節 80%+ 的 Exercise)。
我在購買課程後的 3 個月讀完 24 個章節,並且每個章節的 Exercise 都有完成 80%+ ; 個人覺得教材內容在建立滲透的基礎知識上很有幫助,並且除了文字教學內容,也有影片教學可以輔助學習。
https://www.offsec.com/courses/pen-200/
在 PEN-200 課程第 25 章節為「Trying Harder: The Labs」,此章節設計的目的在於讓學生練習破解 Lab 機器 ; 此 Lab 環境包含 57 台機器,分成 6 個題組,每個題組都有對應的情境,其中最後 3 個題組為考試的模擬題型,題組內機器數量與架構與考試一樣,學生可以用最後這 3 個題組來模擬實際考試,驗收自己得學習成果。
當然在解 Lab 過程一定會遇到卡關的時候,這時候可以在 Offsec 的 Discord 群組發問求救,此群組是報名 PEN-200 後可以加入,群內可以讓學生互相技術交流,也有 Student Monitors 會在 Lab 卡關時提供學生協助,但並不是直接告訴你答案,而是會先確認你的步驟是否在對的方向,在提供一些間接的提示。
達到 OSCP 課程設計的 Bonus Point 標準,OSCP 考試分數將額外獲得 10 分的加分(Bonus Point),條件內容主要為以下兩項,
https://help.offsec.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide
條件一為必須完成每個章節的練習題,完成率達80%以上 ; 條件二為必須提交 Lab Machines 的 proof.txt x30 以上。進度條可以透過課程介面左上方查詢,如下圖所示,
https://help.offsec.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide
考試的機器為 6 台,分為獨立機器(Independent Challenges)和 AD 題組(AD-Set)。
AD-Set 題組 (40 point)
Independent Challenge 獨立機器題組 (60 point)
https://help.offsec.com/hc/en-us/articles/4412170923924
由上方組合可以發現,AD 題組在考試中佔了相當的份量,因此 AD 的準備對通過 OSCP 是非常重要的。
https://help.offsec.com/hc/en-us/articles/360046787731-PEN-200-Reporting-Requirements
在 Offsec 網站有提供報告的範本可以使用,報告撰寫主要重點在於能夠復現滲透的步驟,並且需要詳細到可以「複製/貼上」 即可完成的地步,也要包含在 interactive shell 查看 flag 內容的畫面(同一個畫面須包含該主機 ip 資訊) ; 此報告需要在考試後的 24 小時內上傳至 Offsec 網站,上傳後就不可以修改,並且檔名與檔案格式都有嚴格限制,大小寫也有區別,若未遵守報告規則,最壞的結果就是 0 分。
Report 格式算是非常嚴格,建議在考試前兩週熟讀 Report 規則,避免在最後一步因為報告問題而未通過認證。
本次準備 OSCP 認證一共花了 4 個月時間 (原本課程90天 + 30天展延),其中前 3 個月主要是以課程影片以及 Exercise 練習為主,最後一個月來練習 Lab 題組; 我在剩餘 1 個月時,預約了考試時間(7/1 11:00 GMT+8)。
到了考試開始當天,需要提前 15 分鐘登入監考入口網站,監考員會以打字方式跟你溝通,包含宣讀考試條款,檢查有效證件,檢查考試環境(禁止在畫面中出現電子設備,如:手機)…等,完成以上流程後,將會在考試時間(準點)收到 VPN 檔案,即可開始考試。
我在 OSCP 的考試策略就是先以完成 AD 題組為首要目標,在花了30分鐘完成第一台 AD 主機的初始存取後,接下來提權部分則是我卡關的開始,我在第一台 AD 主機提權卡關近 6 小時,過程用盡了所有我已知方式和手法皆無法完成題權,也因為 AD 題組是連貫性的,所以第一台無法成功拿下,後續題目也無法破解。
最後跟監考員提出休息的請求後,站起來走動活動一下回想考試規則是可以使用一次 Metasploit 在單一主機(選定後不可以再更換),並且又連想到之前在考 EC-Council CPENT時,有使用 Metasploit 的一個模組來協助提權,因此就回到考試環境,向監考人員提出使用 Metasploit 的請求,並且也在 Metasploit 的工具配合下,成功解出卡關部分。
在完成第一台 AD 主機提權後,當下分數還是處於 0 分狀態,但隨著後續題目的解開,分數也有慢慢加上來,到了凌晨 1:30 左右,已經完成 OSCP 考試通過的標準,因此也在這個時候向監考人員提出休息的請求。
直到早上 6:00 起床,此時考試時間剩下 5 個小時左右,於是我決定就一鼓作氣把報告部分一起完成,避免有資料畫面漏截。在完成報告並且上傳 Offsec 時,此時時間已經是下午 17:00 ; 整個考試流程算下來一共耗時 30 小時,中間休息約 5 小時。
最後,在報告上傳後的第五天晚上,我先登入 Offsec 的網站發現考試結果的狀態已變更為通過,隨後1小時 Offsec 也寄來通過考試的信件,至此才完成了整個 OSCP 的征戰之旅。
完成 OSCP 認證後,我認為比起自己以前東拼西湊的學習,OSCP 帶給我的是有系統的學習到較全面的滲透基礎知識 ; 並且除了學到技術知識,也在過程中培養了很多技術以外的能力,像是解決問題的能力 , 規劃策略能力…等,而這些能力不會侷限在滲透測試,而是可以應用到很多日常的其他事物上,整體我認為是值得的。
以下幾個重點,是我認為幫助我通過此次 OSCP 的關鍵因素
在這邊需要感謝在準備 OSCP 的過程中幫助過我的人,像是 Ken Yang 在 LAB 卡關時可以相互討論,以及 Discord 上的 Student Monitors 在我題目做不出來時,給了我許多正確的方向。
最後分享一下證照 , Try Harder !