受験記

OSCP(Offensive Security Certified Professional)の受験記

2024年7月1日

みなさん、こんにちは!

株式会社レオンテクノロジーのセキュリティ診断部に所属する林(リン)です。
普段の業務では脆弱性診断やペネトレーションテスト、セキュリティレビューなどを行なっています。

先日、Offsec社のOffensive Security Certified Professional(OSCP)、EC-Council社のCertified Penetration Testing Professional(CPENT)とLicensed Penetration Tester(LPT)に挑戦し、無事にすべて合格しました。

これに加えて、僕はすでに CREST社のPractitioner Security Analyst(CPSA)を持っているため、 OSCPを取得したうえで申請を行うと、 Registered Penetration Tester(CRT)を取得できます。 

せっかくなので、このクレイジーな体験を共有し、上記の資格に挑戦する方々に参考になればと思います。

前回の記事では、CPENTとLPTを取得するまでの記事をまとめました。
本記事では、 OSCPを取得するまでの受験記をブログとしてまとめてみました。

Whoami

ただのセキュリティエンジニアです、OSCPを受験する前に一ヶ月ほどCPENT/LPTを入手しました。
エンジニア歴8年です。
台湾出身です、今年で日本に来て6年目になります。

OSCPを受験したきっかけ

OSCPを受験した理由は主に以下の3つです:

知識・技術の向上
脆弱性診断などの業務経験はありましたが、OSCPの取得に向けた学習を通して、自分の技術領域をさらに広くなりたかったことが第一にあります。

無期限の資格
Offsec社の資格はとくに期限がありません、資格の維持などの料金は要りません。一回合格したら、資格は一生効き目があります。楽!

自分の能力を証明したい
ペネトレーションテスターとして、OSCPは自分の能力を証明できる資格であり、最初の一歩だと思います。

OSCPとは?

OSCPとは、Offsec社が提供するペネトレーションテスター向けの資格です。
また、 OSCPに対応するトレーニングコースはPEN-200(Penetration Testing with Kali Linux, PWK)です。

PEN-200では、Kali Linux(セキュリティテストを目的とするDebianベースのLinux OS)を中心とした実践的なペネトレーションテストの方法論・ツール・手法についてを勉強できます。

現在、PEN-200コースに登録したい場合は、90日間プランと一年間プラン(Learn OneやLearn Unlimited)のみです。

物価が高騰しており、以前のような一ヶ月プランや格安料金はもうなくなってしまいました。(ブラックフライデーなどのセールはあります、そのきっかけでちょっと安い価格で購入するのは楽です。)

注意点

本試験を受験、購入の際は、本人確認のために英語で書かれた顔写真付きの証明書(試験当日も提示)が必須です。

OSCPのコース内容

2023年から、OSCPはコース内容が変わりました。

Buffer Overflows(BOF)に関する内容は無くなりました。その代わりに、Active Directory(以下、AD)環境への攻撃が追加されました。

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

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

テキスト
テキストはすべて英語で、約850ページのPDF資料です。
また、OffSec社のポータルから個人ページにログインするとブラウザーからテキストを参照できます。ブラウザーの翻訳機能を利用し、自分が慣れた言語に翻訳したうえで勉強した方がいいと思います。

動画
テキストの内容に沿った解説とデモの動画が約17時間分も提供されています。
テキストと同じ内容であるため、動画を全部見る必要はなく、テキストの内容が理解できない場合、補助的に動画を活用するようにします。

Labs(Exercises)
トピックの最後には勉強したスキルを活用できるような練習用のLabs(Exercises)があります。(VPN接続が必要)
ExercisesはCTF (Capture The Flag)のように、問題が解けるとflagが入手できるような形式になっていました。

ダッシュボード

Challenge Labs
Challenge Labsでは、六つのChallenge環境、約60台のマシンが稼働しています。
マシンは、Windows OSやLinux OS、サーバーやクライアントとして稼働しているものなど、さまざまな種類があります。

また、ラボの中は複数のネットワークで構成されており、自身の端末から直接アクセスできないネットワークがあります。Pivotingの技術を勉強には最適な環境と思います。

Challenge 1からChallenge 3は本番的な企業のネットワークをするように作ったものです。
Challenge 4からChallenge 6はOSCPの本番試験のような難易度で作ったものです。
本番試験を受ける前に、48時間の模擬試験(攻撃+レポート作成)を試してみることを推奨します。

ちなみに、自分は試験までにChallenge 1-2およびChallenge 4-6(約40台)を全攻略したうえで試験を受けました。
Challenge 3の難易度は他のChallengeより難しいと思いますので、試験の後にゆっくり吟味するつもりです(笑)

OSCPの合格に至るまで

学習期間

その他:四ヶ月(2023年4月〜2023年7月)
コース:四ヶ月(2023年8月〜2023年11月)

学習コンテンツ

試験対策として、使用した学習コンテンツは主に以下の三つです。

・OSCPのコース(PEN-200)
・Hack The Box
・公式のディスカッション


OSCPのコース(PEN-200)
PEN-200で学習可能な内容は以下のとおりです。

・Web関連の侵入手法など
・初級のセキュリティソフト(AV)の回避手法など
・WindowsとLinuxの初期侵入・横展開・権限昇格・永続化など
・AD環境での横展開や権限昇格・永続化など
・Metasploitの使い方

Hack The Box
また、Offsec社のコンテンツ以外に補足的にHack The Box(以下、HTB)も使いました。
普段はLinux環境を練習していたため、試験前には主にAD環境関連のマシンを練習しました。
HTBやVulnhubのOSCP likeなマシンリストはこちらのシートにあります。
ちなみに、AD環境を中心的に練習する方は以下の練習コースをオススメします。

Active Directory 101

ディスカッション
公式フォーラム https://forums.offsec.com/
Discord https://discord.com/invite/offsec

公式フォーラムやDiscordは、学習やディスカッションに最適なリソースだと思います。
どうしても解決できない問題に遭遇した場合は、テキストを読み直すだけでなく、そこで質問したり、答えを探したりできて便利です。

OSCPの試験ルール

概要

試験時間

47時間45分(実技試験:23時間45分 + レポート作成:24時間)

配点

・独立のターゲット(Linuxに限らず):60ポイント(ローカル権限:10ポイント + 高権限:10ポイント)
・AD環境セット:40ポイント(クライアント2台 + ドメインコントローラー1台)
部分点無し、ドメインコントローラーまでに侵入する必要があります

満点:100ポイント
合格ライン:70ポイント

ボーナスポイントについて

下記の条件を満たすことで10ポイントのボーナスポイントを獲得できます:
・すべてのトピックでExercisesを80%以上正答する
・Challenge Labsで30台以上のマシンのproof.txtハッシュを提出する

OSCP試験において10ポイントの比重は大きいため、ボーナスポイントは必ず獲得することになります。
自分は全のExercisesを正答し、Challenge Labsの40台マシンのproof.txtハッシュを提出し、ボーナスポイントを獲得しました。

使用禁止のツール

試験中は使用できないツールがあります、詳細については公式のサイトを参考してください:
公式のサイトリンク

試験の事前準備

CPENTと同じ、カメラと部屋の状況は試験官に共有します。
試験当日までにやっておきたいことは以下のとおりです。

部屋の掃除

試験のときに部屋全体をWebカメラで映す必要がありますので、汚い部屋を試験官に見せるのはちょっと嫌ですね(笑)

Webカメラの用意

自分はMacBook Proのカメラを使いました

試験に不要な電子機器、テレビを部屋から撤去

OSCPは「複数」のモニターを使えますので、自分は二つのモニターで試験を受けました。

ブラウザーのプラグインのセットアップ

試験のとき、「Janus WebRTC Screensharing」というブラウザーのプラグインでカメラや画面の共有を行います。
事前にセットアップすることは非常にオススメします。
公式の説明リンク

OSCP試験

試験の流れ

1.試験サイトにログインしたら、試験官は身分の確認(パスポートなどローマ字表示の身分証明書)や部屋の確認などを行う
2.試験用VPNはメールに届く
3.試験開始
4.試験終了24時間内レポートを提出する
5.10日内に合格通知はメールに届く

試験中で大事なこと

攻撃手順をメモすること

侵入までの手順はレポートに載せる必要がありますので、手順のメモは詳しいほどよいです。
Exploit Codeを編集した場合、編集したところやコードのソースもちゃんとメモします。

証跡は必要以上にとっておくこと

できる限り、攻撃手順の証跡をスクリーンショットします。
レポートに載せる証跡は微妙であれば減点される可能性があります。

睡眠は短時間でもとること

試験時間は23時間45分しかないため、可能な限り睡眠を削って試験に時間を割きたいですが、睡眠不足の状態で続けてしまうと翌日のレポート作成期間にもろに影響がでてしまいます。
ある程度短くてもよいので睡眠は必ずとっておきましょう。

試験開始

自分は12/2(土)の午前11時から試験を受けました。
試験の得点を確認すると、三台の独立のターゲットをすべて解く自信はありません。

でもAD環境の三台のターゲットを解ければ40ポイントが手に入れます。
つまり、AD環境の40ポイントをもらえれば、合格するまでは遠くないでしょう。

最初にAD環境のターゲットを選択し、次に独立のターゲットを解きます。

試験のタイムライン

以下に軽く自分が試験を受けたときの進捗タイムラインを記載します:


11:20 試験開始
11:43 AD環境の一台目に侵入(ユーザー権限)
12:44 AD環境の一台目の権限昇格
16:04 AD環境の二台目に侵入(管理者権限)
16:16 AD環境のドメインコントローラーに侵入(管理者権限)
19:52 ターゲット1に侵入(ユーザー権限)
20:52 ターゲット1の権限昇格

ーーーここまで合格ラインを越えました(ボーナス10ポイント)ーーー
ーーーー一安心です、ちょっと晩御飯を食べましたーーーーー

22:53 ターゲット2に侵入(ユーザー権限)
22:56 ターゲット2の権限昇格

ーーー疲れたので、00:30頃に試験官に休憩の要求を提出しましたーーー
ーーーー許可をもらったらPCを放置して寝ましたーーーー

ーーーちゃんと休憩した後、07:00頃試験を再開しましたーーー

08:41 ターゲット3に侵入(ユーザー権限)
08:58 ターゲット3の権限昇格

ーーーーここまで満点が確定しましたーーーー
ーーー残り時間はレポートに載せる証跡を確認し、メモを整理しましたーーー

11時、試験が定に終わりました。


レポート

試験終了後にお昼を食べて、レポートの作成に進みました。普段から脆弱性診断などの業務をやっていて、慣れていたため、レポートの作成は時間かかりませんでした。
五時間ほどでレポートを作成して、アップロードしました。OSCP試験もここで終了しました。

公式が修正して使用できるレポートテンプレートを提供していますが、GitHubには多くのテンプレートがあります。
Markdown形式で記載することが慣れれば、以下のツールがオススメされています。
OSCP-Exam-Report-Template-Markdown 

ただし、自分の環境にはうまくツールをインストールできないため、サイト形式のツールを使いました(クラウド版)。
sysreptor

注意点

試験レポートの形式はPDFで、ファイル名は「OSCP-OS-XXXXX-Exam-Report.pdf」である必要があり、OS-XXXXXは自分のOSIDです。
レポートをアップロードする場合、PDFを.7zファイルとしてアーカイブする必要があり、ファイル名は「OSCP-OS-XXXXX-Exam-Report.7z」となり、圧縮時に暗号化は使用できません。

次に、レポートのアップロードサイトにファイルをアップロードします。
アップロード後、ページにファイルのMD5ハッシュが表示されます。ローカルファイルと同じであれば、ファイルを送信できます。
また、ファイルサイズが200MBを超える場合はアップロードできません。

結果の通知

OSCPの試験ガイドによると、10営業日以内にメールで合格可否の通知が届きます。
自分の場合はレポートを提出した翌日の12/5の午後に合格通知のメールが届きました。

試験の心得

全体的にいえば、試験の難易度はLabsのマシンよりも簡単だと感じています。

基本的に、攻撃手法は教材とLabsで取り上げられており、既知の脆弱性を攻撃するか、一般的な攻撃や権限昇格などの問題が出ています。
もっとも難しいのは入口点を見つけることです、Rabitt Holeにはまりやすいです。

ADの部分に関しては、LabsのOSCP模擬試験のAD環境よりも簡単だと感じています。
Labsのマシンが攻略できれば、試験の難易度を心配する必要はないと思います。
LabsではAD環境でのPivotingなどを練習できます。試験の際にPivotingが必要な場合、どうすればよいか迷うこともありません。

なので、LabsのOSCP模擬試験を練習することはオススメです。
できれば、ボーナスの10ポイントを取得することを超オススメします

もしADが本当に難しい場合でも、少なくとも3つの独立ターゲットを解いたら、試験に合格するチャンスがあります。

また、試験用のメモを用意することもオススメです。
よく使っているツールやコマンドを記入して、試験中には役立つになるかもしれません。

試験前には十分に寝て、試験中にもちゃんとご飯を食べて、リラックスすることも必要だと思います。緊張すぎると自分の実力がうまく出てこないかもしれません。
OSCPは初心者や経験不足の方にとって簡単に取得できる資格ではなく、ペネトレーションテストの細かいところに対する理解力を本当に試されます。

たとえば、Webの脆弱性を見つけるため、Banner、HTMLソースコード、サービス名などの細かいところから、利用できるポイントを見つける洞察力が必要です。
利用可能なExploit Codeを見つけ、注意深く読み、正常に動作するように変更する必要があります(そう、一部のExploit Codeは修正しないと使えないかもしれません)。
OSCPを取得することは、私にとって小さなマイルストーンを達成することになります。

少なくともOSCPの資格は永久に有効で、資格の維持などの料金を支払う必要もありません。
唯一の小さな残念は、リアル証明書はもう発行されていません。

最後は僕のOSCP合格証です。

ツール

最後に、OSCP試験に少しでも役立つである、いくつかの便利なツールを紹介したいと思います。

Windows権限昇格

WinPEAS
PowerUp
PrivescCheck.ps1
WADComs
LOLBAS
windows-kernel-exploits

Linux権限昇格

LinPEAS
GTFOBins

他ツール

rustscan
feroxbuster
enum4linux-ng
Reverse Shell Generator
Dirsearch

最後に

OSCPの一年間コース(Learn One)の費用は2499ドルで、日本円で約37万円(2023年12月12日時点)ですが、個人で購入するには躊躇してしまう金額です。
なお、当社の制度として、業務に役立つ資格の取得をサポートする資格補助があります。
僕のようにコースや試験に挑戦したい方も、経済的な負担を気にすることなく、自分のスキルアップに励むことができます。

長くなりましたが、この受験記が今後受験される方の助けになれば幸いです。
最後まで読んでいただき、ありがとうございました!