ようやく合格しました。3か月でしたが最初思っていたより大変でした。しばらく文字を書いていないのでリハビリもかねて、ここではPEN200のコースの内容や試験についてなど、思ったことをまとめておくことにしました。

PEN200-2023の変更点と印象

pen200は3月あたりで教材が入れ替わったようです。基本的にはテーマは増えず、内容が増えています。

ここによると、

  • シェルの使い方、ツールの使い方の章が削除になりました。
  • バッファオーバーフローの章が削除になりました。
  • Webアプリケーションのテーマのボリュームが増えて、章が3つにわかれました。
  • 権限昇格のテーマのボリュームが増え、LinuxとWindowsで章がわかれました。
  • ポート転送のテーマのボリュームが増えて、章が3つにわかれました。
  • ActiveDirectoryのテーマのボリュームが増えて、章が3つにわかれました。

私は始めたタイミングが移行期だったので、新旧どちらのテキストも入手することができました。

変更後の印象としては、特にActiveDirectoryの章が良かったです。今現在はまとまった解説教材があまり存在しないと思うので、ボリュームが増えて、より分かりやすくなっていると思いました。またエクササイズは前のバージョンがどんな内容だったか分かっていませんが、今回分はかなり手ごたえがあり、学習を進める上で役に立ちました。書かれていることを試すだけでなく、攻撃すべきポイントを毎回探し出す必要があり、工夫が必要で勉強になりました。

ラボも一新されました。こちらも前のバージョンのものを体験できていないので比較できませんが、別のネットワークからアクセスするもの、クライアントソフトを使って通信するもの、マシン間で依存関係があるものなどがあり、いろいろ楽しめました。

またバッファオーバーフローの削除にともない、gdbを利用したメモリのチェックやエクスプロイトを作る機会はなくなっています。ただしFixingExploitの章ではmsfvenomを使ったペイロードの調整や入れ替えをやるので、エクスプロイトを作ることはなくなっても、既存のバイトコードを自分向けに修正する力は必要になります。

この資格で試されているのは、いかに効率的にシステムのまずいポイントを探すかということだと思っているので、ラボやエクササイズで探し疲れて時にイライラしながらヒントを見る作業を繰り返すことで、自分の視点が改善されていくようになっています。(と思っています。)

コース期間中の取り組み

3か月コースだったので、趣味のCTF関連を一旦止めて集中的に記憶を増やしました。(と書きながら、CTFはちょこちょこ触ってしまいましたが。)

やろうと思った時点での私の経験、知識としては、HTBはLinuxマシンを2台程度。特にWindowsはSEC660でやったくらいで、ActiveDirectoryをはじめほぼ無知でした。そこで最初にHTBのリタイアマシンでWindowsを中心に触り始めて、ある程度慣れた段階でコースを始めることにしました。

  • 2月初週:HTBサブスク契約。いくつかある記事を参考にOSCP対策マシンを30台程度プレイ。解法を整理。
  • 3月最終週:HTBサブスク解除。pen200をアクティベート。
  • 5月最終週:全エクササイズを履修し、全ラボを攻略。試験のルールやレポート要件などを確認、試験準備に入る。
  • 6月中旬:受験。

終わってみれば、テキストがかなり丁寧に書いてくれているので、足りない知識についてはテキストを読み込んだ方が良かったかもしれないなという印象です。

ラボ利用期間中は、他の方もやっているとおり、適宜サービスごとに着目すべきポイントと関連するコマンドをまとめて整理していきました。パパっと列挙してみて詰まったら早めにヒントを見て、見落としを防ぐべく修正したり、追加で実験したりしてまとめを改善していきました。結果、ラボはほぼ最初から最後までちらちらヒントを見ることになりましたが、いろいろな視点を得ることができて良かったです。

また途中ラボ環境のVPNの調子が非常に悪くなる時期があり、この期間はHTBのWriteupを読み漁ったり、覚えが浅い部分のテキストの読み直しをしていました。

試験中の取り組み

試験は3台で1組のAD環境1セットと、個別のマシン3台という問題セットです。ADはドメインコントローラのproofが取れたときのみ40点だと思っていましたが、手前の2台からもproofが出てきていて、部分点がありそうでした。こちらが合計40点。またいわゆるバッファオーバーフローのマシンはありません。個別のマシンには難易度表示はなく、すべてのマシンが20点です。

開始時刻は家庭の都合でJST0時からのスタートになりました。細かい時間割は決めず、AD環境は最初に終わらせておこうくらいの軽めの方針で取り組むことにしていました。

最初の3時間はAD環境のエントリーが分からず、個別マシンの1台目、2台目も同じくエントリーが分からず、焦った気持ちで3台目を触ってようやくrootが取れました。そのあとはそれぞれもう一度見直して、AD環境で管理者権限が取れ、個別マシンも途中で気が付いて、結局開始9時間ほどですべて攻略できました。

ここで寝てもよかったですが、スクリーンショットが不足している気がしたので、念のためそのままレポート作成することにしました。内容をチェックして、開始から17時間半くらいでレポートのアップロードを完了し、試験を終了しました。レポートとは27ページになりました。

レポート提出後、2日ほどで合格の通知を受け取りました。紙の証明書の案内はなくなっているようでした。

ラボの印象的に難易度が上がってもそんなに時間はかからないだろうという読みがあったので、最初はかなり焦りましたが、何とか時間内にまとめられてよかったです。

さいごに

勉強や試験を好き勝手やらせてくれた家族に感謝しています。ちょうど直後に立ち合いがあり、無事ちびさんが増えたので、これからもがんばっていきたいと思います。