Tlön's Invador

Input's Reverberation

PEN200(2023)とOSCPについて

免責事項

これらの記事は研究/教育を目的としており、相手からの事前の同意なしにシステムをハッキングしようとしないでください。また、この情報は倫理的な目的でのみ使用してください。
このブログで提供される情報を利用することで発生する可能性のあるいかなる問題についても、当方は一切の責任を負いかねますのでご了承ください。

概要

OSCPの2023年バージョンを受験して合格したため、概要をまとめました。

試験結果については全てのフラグをサブミットして合格しました。

旧バージョンのOSCP取得者である同僚と話した感想では、試験における最も大きな違いは旧バージョンではポストエクスプロイトフェーズの作業を全くする必要がなかったようですが、新バージョンは一部マシンにおいてポストエクスプロイトフェーズの作業が必要となるところではないかと考えます。

whoami

私は脆弱性診断やペネトレーションテスト(主にWeb)業務に携わっております(2年弱)。
英語は中級者くらいです(TOEIC760、元外資系勤務、直属上司やレポートラインが外国人だった経験があります)。

OSCP / PWK / PEN-200

OSCPとは

約24時間(23時間45分)のペネトレーションテストの実技試験を実施後に、実施したペネトレーションテストの結果を24時間以内にレポートにまとめ提出し、採点の結果が基準点を上回ることで資格取得ができる科挙のように厳しい認定試験です。

PWK / PEN-200とは

PWK (Penetration Testing with Kali Linux ) / PEN-200 はOSCP試験のためのトレーニングコースと教材です。

PEN-200: Penetration Testing with Kali Linux

www.offsec.com

新しいバージョンの変更点

2023年バージョンについては以下公式ページに説明があります。またこのページの最下部にシラバスが記載されたPDFとPWKコースの最初のモジュール「Penetration Testing with Kali Linux: General Course Information」のPDFのリンクがあり、PWKコースの構成や詳細について記載されております。 www.offsec.com

シラバス

V1.Regular-Syllabus PDF
https://www.offsec.com/wp-content/uploads/2023/03/pen-200-pwk-syllabus.pdf

一般コース情報

V1.Penetration Testing with Kali Linux: General Course Information
https://www.offsec.com/wp-content/uploads/2023/03/PEN-200-Module-General-Course-Info.pdf

受講登録

私はOffsecのサービスは初受講だったため身分証明書の提出が必要でした。 政府が発行した英語身分証明書はパスポートしかないため、パスポートコピーを送りました。 WindowsでKleopatraを使用して添付ファイルを暗号化してメールを送信しました。

PGPメール設定

PGPを利用する機会がなかったため、以下ブログを参考にして作成しました。

www.comparitech.com

qiita.com

qiita.com

レーニングについて

詳細は前掲したOffsecが公式に公開している最初のモジュールPDF「V1. Penetration Testing with Kali Linux: General Course Information」によくまとまって記載されておりますのでそちらを参照されると良いです。ここでは概要と私の個人的な所感を記載します。

構成

レーニングは以下のように設計されてます。
1. Learning Modules
2. Demonstration Module Exercises
3. Application Module Exercises
4. Capstone Module Exercises
5. The Assembling the Pieces Module
6. Challenge Labs (type one)
7. Challenge Labs (type two)

各教材について

Learning Modules

それなりにボリュームのあるテキストと動画の教材を受講します。 私は実務経験者であり、また他のトレーニングも受けていたため、8割くらいは既知情報でしたが、取りこぼしがないように順番に丁寧に読み進めました。そのため教材は約1ヶ月ほどで99%くらい終わりました。

個人的な感想ですが、トピックのよってはこの教材をとっかかりに別途自身で追加調査と学習をお勧めします。

* Module Exercisees

ここは各モジュールで勉強した内容の演習問題でした。

The Assembling the Pieces Module

ラボ導入のために数台の脆弱なマシンのウォークスルーが提供されます。ラボの進め方がイメージできるようになっていました。

Challenge Labs

Challenge Labsは6個提供されます。

Challenge Labs 1 ~ 3は試験よりも大きいサイズのAD環境です。外部に露出したサーバーを攻略して、それを足がかりに内部のドメインコントローラーを攻略することが目標となります。

Challenge Labs 4 ~ 6はOSCP試験と同様の構成であるスタンドアロン3台、AD環境3台の合計6台のマシンの環境です。 模擬試験として利用できます。

ラボの攻略について

コース受講者が登録できるDiscordサーバーがあり、そこでLabの攻略について情報交換がされてます。質問をすればメンターが教えてくれます。質問をしなくてもDiscordを漁ればある程度ヒントになります。

私はこういったBoot2Root系のCTFや、AD環境内のラテラルムーブメントに慣れていることもあり、時間節約のために数時間詰まったらDiscordでヒントで探して、アプローチのボキャブラリーを増やすことに専念しました。(大体は、カスってるけどguessが足りなかったりしてました。1つだけツールのバグがありました。)

Challenge Lab 3は他より少しレベルが高いらしいです。そのため後回しにしました。最終的に私はChallenge Lab 3以外はすべてのフラグをサブミットしました。合計で38台フラグをサブミットしました。

教材完了後の過ごし方

教材が終わってから残りの2ヶ月間をラボに当てましたが、その間はラボよりもチートシートの最適化に費やしていた時間の比重が大きかったです。他のトレーニングの情報やこれまでに得た情報なども併せて1つのチートシートとして最適化作業をおこなったため時間がかかりました(まだ若干終わっていないです。)。

TIPS

チートシート作成

コマンドをメモしておくことも重要ですが、見落としを避けて網羅的なアプローチができるように体型的な構成内容が良いと考えてます。最悪コマンドはググれば出てきますので、ググれるようにしておくためチートシートの作成をお勧めします。

模擬試験の報告書作成

OSCP試験では報告書を作成し提出するのですが、Offsecが提供しているテンプレートのWordがちょいとおかしなことになっているので、Challenge Labで模擬試験を実施した際はレポート作成もしておいた方が良いと思います。(後半文章が全て特定のテーブルオブジェクトの中に記載されているため、ナビゲーションが4章以降機能していない。)

私は普段業務でレポートは書いているので、自分用にテンプレートをカスタマイズすることに重きを置いてChllange Lab 6の結果だけをレポートにまとめました。

試験について

公式の試験案内

OSCP試験前(できれば早めに)に以下ページの熟読をお勧めします。(私はテスト2日前にリモートのESXiサーバー上で稼働しているKaliでは受験できないことに気づいて焦りました。Kaliはホスト上で稼働している必要があるようです。) またボーナスポイントについても記載があります。

https://help.offsec.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide

機械翻訳:ボーナスポイント 10 ポイントを受け取るには、PEN-200 コースのすべてのトピックで、トピック演習の解答の 80% 以上を正解し、OffSec ラーニングプラットフォームで 30 個の正しい proof.txt ハッシュを提出する必要があります。

試験予約

私は3ヶ月のトレーニング期間終了直後くらいに受験しました。受験日は早めに予約した方が良いようです。私は1ヶ月前に申し込みました。

試験前日

後述するYouTubeの動画とかを見て過ごそうと考えてましたが、ESXi上のKaliだと受験できないと試験二日前に知ったため、またディスクサイズなどの都合上移行も難しそうだったため、ホスト上にKaliをクリーンインストールしてツール入れたりと再構築していたら1日終わりました。先延ばしにしていたスクリプト化をしておけばよかったです。(まだしていない。)

試験当日

13時から試験でした。試験官とはチャットでやりとりを行いました。
英語でのチャットコミュニケーションになりますが、発生するコミュニケーションは凡そ以下くらいだけでしたので、英語に不安がある場合でも、そこまで恐れる必要はないのではないかと考えています。
* 身分証明(パスポート提示)
* テスト環境の設定や試験準備
* 休憩、離席の際に監督官への通知

もし試験にシステム的なエラーが発生した場合などは、コミュニケーションのハードルが少し上がる可能性はあります。

試験時間

最終的に時間は少し余りました。しかし最初のAD環境攻略の足がかりとなるユーザーシェル取得後のサーバーのレスポンスが大変悪く(おそらくスキャンの影響)、足場を固めた後でしたが泣く泣くリバートをしたりと序盤の進みがよろしく無く、数時間目立った進捗が無かったため少し不安には感じましたが、試験は長丁場なため数時間で焦る意味はないと考えながら進めてました。振り返るとその通りで、また焦らなくてよかったとも思います。
アプローチとしては最初に全台スキャンしてしまって、簡単そうなところから進めました。またツールの結果を待っている時などは他のサーバーを触るといった感じで複数台同時に進めました。

1日目(実技試験)

12:45 - 試験準備
13:00 - 試験開始
17:30 - スタンドアロンCのユーザーフラグ取得
19:00 - スタンドアロンCのルートフラグ取得
20:40 - スタンドアロンAのユーザーフラグ取得
23:40 - AD環境のDCのルートフラグ取得
1:35 - スタンドアロンAのルートフラグを取得
1:40 ~ 2:20 - 休憩、食事
3:27 - スタンドアロンBのユーザーフラグ取得
4:26 - スタンドアロンBのルートフラグ取得
4:30 ~ 7:00 - レポート下書き
7:00 ~ 12:45 - 睡眠

2日目(レポート)

レポートは全てフラグをサブミットできた安堵もあり、少しのんびり作業してたこともありますが、綺麗にまとめていたら提出は7amくらい(締切の4~5時間前)でした。

試験結果

3日後くらいにメールで合格しました。と連絡が来ました。

TIPS

PEN200以外の教材

試験合格にはAD攻略が肝になると思います。 私も試験前日に見ようと考えていましたが、ESXiの件で時間切れとなってしまったため、 役に立つのか保証はできませんが、OffSecのYouTubeチャンネルに有益そうな動画があったため貼っておきます。

www.youtube.com

www.youtube.com

所感

基礎的なペネトレーションテストの知識やプロセスを網羅的に学べるため大変素晴らしいコースだと思います。しかし基礎的とはいえコースの案内の記載にある通り、以下を押さえておくとよりスムーズに受講を勧められるのではないかと思います。私はスムーズに進められました。

All learners are required to have:

  • Solid understanding of TCP/IP networking
  • Reasonable Windows and Linux administration experience
  • Familiarity with basic Bash and/or Python scripting

今後

より発展的な300番台のトレーニングを受講したいと思います。

www.offsec.com