Try   HackMD

前言

歷經 4 個月的努力,成功在今年 7 月考取 OSCP 認證,因此想透過此篇心得分享幫助正在準備或者是計劃考取 OSCP 認證的朋友。


個人背景

任職於資安代理商約 5 年,目前從事 MDR 二線分析工作,因為工作經歷有接觸網通設備(Firewall,WLAN),所以在網路概念有一定基礎 ; 至於在駭客攻防(紅隊)領域,則在工作上比較不會用到,但因為本身有興趣,所以有自行學習相關知識與考取一些認證,如:CEH , CPENT / LPT Master。


OSCP 證照簡介

關於 Offensive Security (Offsec) 課程類別與定位,可以參考下方圖片

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

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 報名流程 (PEN-200)

OSCP 課程主要分成三種方案,可以自己決定要購買哪種方案,主要差異在於 Lab 存取時間 / 附送考試的次數 / 是否附送其他課程 ; 經過自行評估後,我最後選擇 OSCP - Course & Cert Exam Bundle 的課程方案( 90 天 lab 存取期限),課程購買流程是直接透過 Offsec 官方網站(使用信用卡購買)。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

https://www.offsec.com/courses/pen-200/

在課程購買後,需要提供給 Offsec 有效證照(未過期)的電子檔,我使用護照作為有效證件,並且需要使用PGP加密電子檔。


OSCP 課程 (PEN-200)

> 教材下載

在完成上述步驟後,就可以登入 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%+ ; 個人覺得教材內容在建立滲透的基礎知識上很有幫助,並且除了文字教學內容,也有影片教學可以輔助學習。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

https://www.offsec.com/courses/pen-200/

> Lab Machines 練習機器

在 PEN-200 課程第 25 章節為「Trying Harder: The Labs」,此章節設計的目的在於讓學生練習破解 Lab 機器 ; 此 Lab 環境包含 57 台機器,分成 6 個題組,每個題組都有對應的情境,其中最後 3 個題組為考試的模擬題型,題組內機器數量與架構與考試一樣,學生可以用最後這 3 個題組來模擬實際考試,驗收自己得學習成果。

當然在解 Lab 過程一定會遇到卡關的時候,這時候可以在 Offsec 的 Discord 群組發問求救,此群組是報名 PEN-200 後可以加入,群內可以讓學生互相技術交流,也有 Student Monitors 會在 Lab 卡關時提供學生協助,但並不是直接告訴你答案,而是會先確認你的步驟是否在對的方向,在提供一些間接的提示。

> Bonus Point 加分條件

達到 OSCP 課程設計的 Bonus Point 標準,OSCP 考試分數將額外獲得 10 分的加分(Bonus Point),條件內容主要為以下兩項,

1. Topic Exercises
2. 30 Lab Machines

https://help.offsec.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide
條件一為必須完成每個章節的練習題,完成率達80%以上 ; 條件二為必須提交 Lab Machines 的 proof.txt x30 以上。進度條可以透過課程介面左上方查詢,如下圖所示,

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

> OSCP 分數配置

https://help.offsec.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide
考試的機器為 6 台,分為獨立機器(Independent Challenges)和 AD 題組(AD-Set)。

AD-Set 題組 (40 point)

  • 機器組合(三台機器)
2 Clients
1 Domain Controller
  • AD 題組總分為 40 分
  • 無部分給分,必須成功破解 Domain Controller

Independent Challenge 獨立機器題組 (60 point)

  • 三台獨立機器
  • 獨立機器總分 60 分
  • 3-step targets (low and high privileges);需要從初始存取到權限提升成功,才完成此設備的所有步驟
  • 部分給分機制,單一主機低權限存取(10分),完成提權最高權限(10分),總計20分

> OSCP 考試通過情境組合

https://help.offsec.com/hc/en-us/articles/4412170923924

> 40 pt AD + 3 local.txt flags
> 40 pt AD + 2 local.txt flags + 1 proof.txt flag
> 40 pt AD + 2 local.txt flags + bonus points
> 40 pt AD + 1 proof.txt + 1 local.txt + bonus points
> 3 fully completed non-AD machines + bonus points

由上方組合可以發現,AD 題組在考試中佔了相當的份量,因此 AD 的準備對通過 OSCP 是非常重要的。

> Report 撰寫

https://help.offsec.com/hc/en-us/articles/360046787731-PEN-200-Reporting-Requirements

在 Offsec 網站有提供報告的範本可以使用,報告撰寫主要重點在於能夠復現滲透的步驟,並且需要詳細到可以「複製/貼上」 即可完成的地步,也要包含在 interactive shell 查看 flag 內容的畫面(同一個畫面須包含該主機 ip 資訊) ; 此報告需要在考試後的 24 小時內上傳至 Offsec 網站,上傳後就不可以修改,並且檔名與檔案格式都有嚴格限制,大小寫也有區別,若未遵守報告規則,最壞的結果就是 0 分。

Report 格式算是非常嚴格,建議在考試前兩週熟讀 Report 規則,避免在最後一步因為報告問題而未通過認證。


OSCP 考試過程分享

本次準備 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 的征戰之旅。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →


總結

完成 OSCP 認證後,我認為比起自己以前東拼西湊的學習,OSCP 帶給我的是有系統的學習到較全面的滲透基礎知識 ; 並且除了學到技術知識,也在過程中培養了很多技術以外的能力,像是解決問題的能力 , 規劃策略能力等,而這些能力不會侷限在滲透測試,而是可以應用到很多日常的其他事物上,整體我認為是值得的。

以下幾個重點,是我認為幫助我通過此次 OSCP 的關鍵因素

  1. 制定讀書計畫以及時間安排 : (如:預計將課程的 3 個月安排在什麼時後開始與結束, 每週或每天需要投入多使時間在 OSCP 課程, 如果進度落後是否有其他替代方案, 預計安排 OSCP 考試在什麼時候等),有了這些初步的規劃,就可以進一步審視自己的學習進度與狀況來做調整。
  2. 找出適合自己的學習策略 : 每個人的學習策略不盡相同,像有的人會直接挑戰 PEN-200 的 Lab Machine,而有些人會選擇讀完 PEN-200 每個章節拿到 bonus point 在挑戰 Lab Machine,哪一個方式最好並沒有標準答案,最重要的是找出哪一個方式是最適合自己。
  3. 熟讀 OSCP 的相關 Rule : 有的時候對一件事感到害怕是源自於本身可能對它的不了解,在 Offsec 的官方網站提供很多關於 OSCP 考試的 Rule , FQA , 監考流程 , 考試VPN使用方式等文章,熟讀這些內容可以讓自己更了解這整的考試制度,流程,已知的問題。
  4. 筆記重點整理 : 在課程所學到的知識,透過自己理解後,轉成自己的方式記在筆記上,也盡量包含 Exercise , Lab 解題過程,方便之後用來複習。

致謝

在這邊需要感謝在準備 OSCP 的過程中幫助過我的人,像是 Ken Yang 在 LAB 卡關時可以相互討論,以及 Discord 上的 Student Monitors 在我題目做不出來時,給了我許多正確的方向。


OSCP Certificate

最後分享一下證照 , Try Harder !

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →