OSCP受験記(2020年9月15日)
2020年9月15日に受験したOSCPに合格したので、受験記を書こうと思います。個人的な感想や反省点が多いため、役に立たないかもしれませんが、少しでも参考になれば幸いです。
- OSCPを受験する人へ
- OSCP(Offensive Security Certified Professional)とは
- OSCPを受験するきっかけ
- OSCP合格までの流れ
- OSCP labs(new)について
- OSCPの試験を受ける前にやったこと
- OSCP exam(1回目)
- OSCP exam(2回目)
- 最後に
OSCPを受験する人へ
私が一番伝えたい内容のため、一番最初に書こうと思います。また、OSCPに取り組んでいる方へ書くため、すでに内容を知っている前提で書きます。
- 一番重要なのは、攻略手順ではなく、攻略手順を見つけるまでの過程
OSCPにおいて攻略手順はそこまで難しくありません。むしろ簡単だと思います。OSCPの難しい点は、攻略手順を探すところだと思います。なぜそのexploitを見つけられたのか、なぜそのexploitが失敗したのかなどを考えていかないと、metasploitに頼ることになったり、exploitが成功しなかったりします。
- pdfのBOFの部分は読んでおく
私は一度OSCPの試験に落ちています(2020年8月6日受験)。OSCPの試験のBOFは、pdfドキュメントに記載されている形式で出題されます。一回目の試験の時、pdfをほとんど読んでいませんでした。そのため、アプリケーションをクラッシュさせるコードを作成する必要がないにもかかわらず、コード作成に1時間以上費やしてしまいました。
- Proctoring toolのテストをする
試験時にパスポートをカメラで写す必要があるので、事前にパソコンのカメラの性能をチェックしておくことをお勧めします。試験時に画質が悪くて文字が認識できないとなったら大変なので。。。
Offsensive SecurityにProctoring toolのテストをしたいという旨のメールを送信したらできました。
OSCPの練習としてmini shareやfreefloatftpserver、brainpanなどで練習していると思います。しかし、試験のBOFのbad charactersの数は、それらのアプリケーションのbad charactersよりはるかに多いと思います。さらに試験のBOFはbad charactersを目視で見つけづらくなっているため、必ずmona.pyを使用することをお勧めします。1回目の試験で2回もbad charactersを確認する羽目になりました。
- できるだけ多くのマシンに取り組み、自分のcheat sheetを作成する
個人的にOSCPの権限昇格は作業だと思っています。その理由は、CTFと違ってトリッキーな問題や試験範囲外の問題は出題されないためです。できるだけ多くのマシンに取り組み、自分の権限昇格のcheat sheetを作成することで大幅に時間を短縮できます。
実際、cheat sheetのおかげで2回目の試験の時の権限昇格に費やした時間は、合計で30分くらいだったと思います。
- OSCP labs reportについて
OSCP labs reportを提出すると5点もらえます。しかし、新しいバージョンのOSCPのpdfは約800ページもあり、すべてのExerciseを完了させようとすると膨大な時間がかかります。個人的な意見として、やらないほうがいいと思います。一度レポートを作成しようとしましたが、とてつもない量に挫折しました。ただ、マシンの攻略手順のレポート作成は練習としてやっておいたほうがいいと思います(点数にはなりませんが)。
- 注意事項をよく読む
どの試験にも注意事項がありますが、私は面倒くさくてあまり読んでいませんでした(自動ツールの使用禁止とmetasploitの使用制限くらいしか頭にありませんでした)。試験ではproof.txtとlocal.txtの両方をコントロールパネルで送信しなければ点数が得られません。しかし、試験終了間近までproof.txtのみ送信すれば良いと勘違いをしており、危うく不合格になるとこでした。試験時のコントロールパネルに書かれてることをしっかり読むことをおすすめします。
また、注意事項に関しては、以下のサイトで確認できます。
support.offensive-security.com
OSCP(Offensive Security Certified Professional)とは
OSCPとは、Offensive Securityが提供するペネトレーションテストの資格のことです。試験は、2日間で行われます(自宅で受験します)。内容は、試験時に5個のマシンが割り当てられ、それらのマシンを24時間以内に攻略し、残り24時間でレポートを作成するといった内容です。マシンにはそれぞれポイント(10点、20点、20点、25点、25点)があり、root/SYSTEM権限のshellをとると点数が取得できます(low privilege shellまでだと部分点があるらしいが詳細は不明?)。70点以上で合格です。OSCPの試験にはレポートを提出しますが、それとは別にOSCP labsのレポートを提出すると5点もらえます。OSCP labsのレポートは、OSCP labsの最低10個のマシンの攻略手順とpdfのExerciseの答えを文書化したものがレポートとなります(私は提出していないのでよくわかりません)。
OSCPの試験には様々な制限があります。以下のサイトで確認できます。
support.offensive-security.com
OSCPの受験料は3か月で約1,400ドルでした。1か月プラン、2か月プラン、3か月プランと選べます。OSCPを申し込むと数週間後(私の場合2週間後)に約800ページのpdfとビデオ(pdfと同一の内容)とVPN用のファイルが渡され、OSCP labsにアクセスできるようになります。OSCP labsと渡されたドキュメントをもとに学習をして試験の対策をするといった流れです。
OSCPを受験するきっかけ
会社の同じチームの方がCEHを受験する予定と知り、私も何か資格が欲しいなぁと思ったので受験しようと思いました。
また、20歳のうちにそれなりの資格を取っておきたいと思い、受験を決意しました。
OSCP合格までの流れ
OSCP合格までの流れは以下のようになりました。私はpdfとビデオを一切読まずに、いきなりOSCP labsに取り組みました。
日程 | 内容 |
---|---|
2020/6/1 | OSCP申し込む |
2020/6/14 | OSCP labsに取り組む |
2020/7/5 | OSCP labs 41個攻略完了 |
2020/7/6 | OSCP labs report作成開始 |
2020/7/10 | OSCP labs report作成をあきらめる |
2020/7/11 | vulnhubに取り組み始める |
2020/7/20 | HTBに取り組み始める |
2020/8/6 | OSCP exam(1回目)→不合格 |
2020/8/9 | OSCP labsの別ネットワークのマシンに取り組み始める |
2020/8/28 | すべてのOSCP labs(66個のマシン)の攻略完了 |
2020/9/1 | VHL(Virtual Hacking labs)を開始 |
2020/9/10 | すべてのVHLのマシン(40個)を攻略完了 |
2020/9/15 | OSCP exam(2回目)→合格 |
OSCP labs(new)について
OSCP labsには古いバージョンと新しいバージョンがあります。私が購入したのは新しいバージョンのOSCP labsなのでそちらについて書こうと思います。
Lab Networkには、主にStudent Network、IT Department、Development Department、Administrative Departmentの4つがあります。最初はStudent Networkのみにアクセスでき、Student Networkのマシンを踏み台にしてIT DepartmentとDevelopment Departmentにアクセスできます。IT Departmentのマシンをさらに踏み台にすることでAdministrative Departmentにアクセスできます。詳しくは以下のサイトで確認できます。
support.offensive-security.com
その他にもSandboxやPrivate Student Segmentもありますがよくわかりませんでした。
練習用のラボマシンにはproof.txtがあり(local.txtはありません)、コントロールパネルで送信することができます。
4つのネットワークのマシンは合計で66個あります(proof.txtをコントロールパネルで送信できるマシンの数)。IT、Development、Administrative Departmentにアクセスするためにはnetwork-secret.txtをコントロールパネルで送信する必要があります。このファイルは、踏み台にするマシンに存在しており、それを見つける必要があります。
また、OSCP labsの攻略方法の答えは一部を除いてありません。2個のマシンについてはOffensive Securityが攻略手順をStudent Forumで公開しています。Student Forumとは、OSCP受験者がログインできるサイトで、お互いにヒントを出し合ったりする場となっています。しかし、ネタバレは禁止で、ネタバレをするとネタバレの部分が"spoiler"に置き換わります。
OSCP labsの新しいバージョンのデメリットですが、Student Network以外のネットワークのマシンのヒントはForumにほとんどありませんでした。そのため、私はOSCPのDiscordチャンネルでヒントをもらってました。
最終的には66個のマシンをすべて攻略しましたが、Metasploitを極力使わないことをお勧めします。理由は、試験でMetasploitは1回しか使えないためです。
また、複数のラボマシンには、他のマシンの情報が必要になってくるものがあるため、注意が必要です。ラボマシンにアクセスできる時間が限られているため、一通り試して無理だったらヒントを見たほうがいいと思います。
OSCPの試験を受ける前にやったこと
私はOSCPを申し込む前にある程度vulnhubとHTBをやっていたため、いきなりOSCP labsに取り組み始めました。どの程度かというとvulnhubを50~60個とHTBを30個ほど完了していました。最終的にOSCPの試験を受ける前にやったことを具体的に挙げると以下のようになります。
- OSCP labs(66個)
最終的にmetasploitを使ったのは3個のマシンのみでした。また、練習のために複数の攻略方法も見つけるよう努力しました。実際に取り組んだ日数でいうと42日間で66個のマシンをすべて攻略できました。個人的にはかなり速いペースだったと思います。
- vulnhub(80~100個くらい)
以下のサイトを参考にOSCPに似たようなマシンをひたすら取り組みました。他にもvulnhubの説明欄にOSCPの単語が記載されてるマシンをやりました。
docs.google.com
- HTB(56個)
vulnhubと同様にOSCPに似たようなマシンを中心に取り組みました。
Reddit - oscp - OSCP like boxes on Hack The Box (Credit @TJ_Null on Twitter)amp.reddit.com
- VHL(40個)
OSCPの試験2週間前にやることがなくなったため、VHLを購入しました。VHLを購入するとOSCPと同じようなラボマシンを合計40個与えられます。残りが2週間だったため、できるとこまでやろうと思いましたが、なんやかんやで10日間で40個のマシンをすべて攻略できました。
OSCP exam(1回目)
1回目の試験は落ちました。反省点として以下が見つかりました。
- BOFのアプリケーションをクラッシュさせるコードを作成する必要がないのに1時間以上費やした。
- bad charactersを見つけるときに目視で探したため、見逃しがあった(おそらく試験のBOFのbad charactersは数が多いと思います)。
- Webの列挙のcheat sheetを作成しておらず、何度も同じコマンドを実行していた。
- 30分やって進捗がなければ別のマシンに移っていたが、時間の感覚が短すぎて混乱した。それにより何度も同じところを確認して時間をロスした。
最終的に55点(25点、20点、10点)でした。20ポイントのlow privilege shellをとれていたため、もう少し上の点数だったかもしれませんが70点には届きませんでした。
OSCP exam(2回目)
2回目の試験は順調に行き、開始から5時間で試験を終了しました。流れは以下のようになりました。
9:00-9:45 BOF(25 point)
9:45-11:10 (20 point)
11:10-11:30 (20 point)
11:30-13:30 (25 point)
13:30-13:40 (10 point)
13:40-14:00 スクリーンショットと手順の見直し。試験を終了
14:00-21:00 レポート作成して送信
9/16 9:00 レポート受け取りの確認メール受信
9:17 18:30 合格メール受信
1回目の試験のマシンは2回目では出題されませんでした。体感として1回目のマシンよりはるかに簡単に感じました。また、すべてのマシンで私のcheat sheetの一番最初にやるべき項目で権限昇格できたため、予定よりかなり早く終わりました。また、10ポイントと20ポイントのマシンも「nmapでバージョンを確認」→「exploit dbからexploit codeを見つける」→「実行」→「shellがとれる」のようにあっさり終わりました。
最後に
vulnhub, HTB, VHL, OSCPのマシンに取り組んできましたが、OSCPのマシンはどのマシンも内容が素晴らしかったです。最初はOSCPが雲の上の存在でしたが、実際受けてみるとそうでもありませんでした。
試験には合格しましたが、自分の弱点が色々見つかりました(面倒くさくて注意事項読まなかったり、試験のドキュメント読まなかったり、、、)。この反省点を次につなげたいと思います。
この記事が少しでも役に立てば幸いです。
最後まで読んでいただきありがとうございました!