OSCP受験記(備忘録)

お久しぶりです。再び英語とは直接関係無い話になります。

 

数日前にOSCP(Offensive Security Certified Professional)という試験に合格しましたので、その備忘録等を色々書いていきたいと思います。

※ホワイトハッカーを育成するような資格試験で、試験では5台のマシンが用意されるので、それをハッキングする事で得点ゲット&合格となる。(試験時間は24時間で、その後24時間以内にレポートをまとめて提出するという計48時間のエクストリームな試験)

 

他にあまり受験記等が無いので、自分の経験を元に記述出来ればと思います。

その試験概要については、他の方がブログで書いていますので、気になった方はそちらをご確認下さい。

blog.drmn.jp

 

noobwanttobeahacker.hatenablog.com

 

自分の場合には、CISSPを取得しITセキュリティの管理(マネジメントサイド)の方の知見や経験はあるけれど、技術的な物も自分のスキルとして磨いて置きたいなと思い、時間もお金もかかるけど、やってみたいという気持ちで受講始めました。

【自分のバックグラウンド】

ーITセキュリティ監査とかシステム監査経験を7,8年ほど

ープログラミングはそこまで出来ないけど基本的な考え方は知っている。

COBOLVBAを業務で使った事がある程度)

CISSPホルダー(ただし、この資格ってマネジメント向けで、今回の試験にはあまり役に立たないですよね。W)

ー大学院でちょっとだけLinux触った事ある。IPS及びIDSの導入設定したことあるよ程度

ー日本の資格だと情報セキュリティスペシャリストは合格してる。かなり昔

 

こんな感じでした。

 

ともかく、ペネトレーションテストの技術的なバックボーンが希薄なので、90日のLABを購入し実際に勉強をスタートすることに。

 

【勉強初期段階 2018年7月~】

ひたすら、テキスト読み&ビデオ視聴で内容を把握する事を意識して取り組みました。それとあわせてEXERCISEとして取り上げられた課題もすべてやりつつスクリーンショットも取りつつ、1か月程度で終了。(このエクササイズはすべてやってレポートを提出するとプラス5点なのでやっておきたかった。) 試験が終わって、今思うのはこの中でもバッファーオーバーフローの章は物凄く大事で、この部分を完璧にしておくことで確実とれる点数があるという事。 あと、テキスト最初の部分は試験に関連はあまりしないので、フーンと簡単に流し読みしても良かったかなと思いました。(試験だけにフォーカスした場合)。ただ、自分の知らなかったテクニックが沢山あって、勉強自体がそこそこ楽しかった感じです。ほんと、シェルとかCLIとはあまり縁のない生活でしたからw

 

【勉強中期段階 2018年8月~】

実際にoscpが用意したLABにアクセスして、ペネトレーションテストをしてみる事に。今、現在50台以上のホストが稼働しているように思います。最初にやってみた所、全く分からないし手掛かりが掴めないやらで、泣きそうになりながら頭を壁にぶつけながら自分の無能さを呪いながらPCに向かっていました。他の外国の方のoscp関連のYOUTUBEを見るとそこまで手間取っていない感じも見受けられたので・・・。(まぁ、それぞれのバックボーンが違いますけど。)

1台、2台とGOOGLEを参考に解いていくうちに、あぁ。。。こんなことかと思ったり。逆にOSCPが用意している生徒向けのforumに行くも基本的には”Try harder"と”enumerate more"と言われて途方にくれたりって感じで1日1ホストも進まずにゆっくりとしたペースで進めて行きました。ここらへん経験者ならもっとサクサクと進められるのだと思います。

forum自体は、OSCPの中の人が監視をしていて、ネタバレが含まれる回答はすべて<spoiler>というタグで隠されてしまいます。結局は、ほぼ自力である程度なんとかしないといけないというw まぁ、自力でなんとかする力をつけるのがOSCPの狙いだったりするので、それはそう思って受け入れるしかないです。確かに、今思うと悩んでいた時こそより深く検証するって事が出来たし、自分のその頭が痛くなりそうな体験を通して理解が進んだんだなと思っています。(分かった時には、外人っぽくaha--!!と言いたくなるような。アハ体験を実感する事ができますw)

 

【勉強後期段階 2018年9月~11月】

reddit, forum, discord,google等々あらゆるチャンネルを駆使しつつなんとか30台ほどのホストのルート権限を取得できたので、このタイミングで1回目の試験を受ける事に

 

【受験 一回目 2018年11月】

(※この時点では、proctor examではありませんでした。)

5台のホストの前に、全然攻略出来ない自分・・・・。合計点でも多分50点も行かず惨敗・・・24時間経過したときには真っ白になっていました。(レッドブルやら栄養ドリンクの山が目の前にあるし、目は充血してるし、腰は痛いし。)

まぁ、これから再受験することも考えて、examレポート、labレポート、exerciseレポートを提出したものの、完璧な記念受験に。

このタイミングで自分に足りなかったものは、

タイムマネジメントの欠如

ーenumeration skill setsの不足

ーrabbit holeに時間を費やしすぎ

等々・・・・。その後、自分のメモを見直したら、あぁ。。。ここに明らかに問題があるじゃんっていう事に全く気付いてなかったりなんだり。ただ、次回同じホストが来たらこうしようという方針を改めて書き込んだり、googleでexploitの方法を検索してみたりしました。

 

【再勉強 2018年11月~12月】

15日間だけlab期間を延長して、今まで解けなかったホストを攻略することに。それと同時にvulnhubやHTBといった公開されているpen testing practice sites も利用することに。

www.vulnhub.com

 

www.hackthebox.eu

このサイトの良い所は、自分が分からないときに色々な人たちのwalkthroughをみたり、youtube(ippsecがおすすめ)でその方法が紹介されている所です。これによって、自分へのメリットとして、

ーノートテイキングの向上

ーenumeration methods のさらなる理解

ー様々なPrivilege escalation methodsの発見

等々、特に自分が思いつかなかったような方法を、見て学べたのが大きかったです。

また、どのマシンがOSCPと似たマシンなのかも、他の受講生に聞いたりしながら、似たような内容や難易度のマシンについて検証、実際のハッキングを行いました。

その後、OSCPのlabに戻った時に、あぁ。。。こういう事かと思ったりして34台root権限を取った所で、2回目の試験を受験することに決めました。

 

【受験 2回目 2018年12月】

24時間の試験で、3つのルートと1つのユーザー権限を手に入れて、これにlabとexerciseレポートつければ合格点に乗った!!!(と思いました・・・・。(+_+))

ただし、問題だったのは、自分がmeterpreter shellを2回以上使ってしまったという事です。ただ単にmeterpreter上でipconfigやらcatコマンドを実行しただけなんですが・・・・、試験レポートの要件では,metasploitやmeterpreter payloadの使用は5つのターゲットホストの内、1つのホストに限るって事になってまして、自分はその要件に抵触してしまいました。(普段の癖で meterpreter shellをgetしてたんで、そのままshellコマンドで抜ければ問題ないだろ・・・と思ってたのがアダになりました。)今となっては、普通にcmd shellで受け取るようにしておけば、合格してたんだと思います。

 

そんなこんなで、結果を受け取った際には、勝負には勝って、試合に負けた感で真っ白になりました。

 

あと・・・・この試験から、PROCTOR試験になりまして不正監視を目的として、WEBカメラでインターネット越しに試験官が自分の受験の様子を確認する形になりました。(pc前の自分の顔を、常時観察されるのと、自分のPCのスクリーンも常に不正が無いか観察されるという形です。) 試験前に自分のパスポート見せたり、ソフトウェアのコネクションを確認したりするんですけど、それ自体は問題ありませんでした。問題だったのは、その監視ソフトウェアによって自分のPCのCPU使用率がほぼ100%になってしまった事です。その結果、PCのスピードが遅くなった事と、自分のWINDOWS端末からKaliへのコピーアンドペーストに問題が出た事です・・・・。m(__)m 次回に関しては、もう一台PCを用意してそのPCでWEBカメラのアプリケーションを起動することにしました。これで、多少改善されることに。

 

【再勉強 2018年12月~2019年1月】

2回目の受験からの再試験は2週間のクールダウン期間を置かないといけないというOSCPのルールがありまして・・・・。(3回目に落ちるとその期間も3週間にのびる)ほぼ、二週間後に再受験をすることにしました。(実力的には大丈夫なんだから、次受ければ多分行けるという気持ちの元) 運よく他の受験者の試験のキャンセル/変更があった為、2週間過ぎた所で試験の予約が出来たのが良かったです。

その2回目から3回目の試験の間には、OSCPのLABは購入せず。以下の事をしていました。

ーVulnhubでOSCPに似たホストを自力で攻略する事

HTBはwalkthroughやらYoutubeをみて自分が知らないenumeration方法やshellの手に入れ方をメモする事

ー自分独自のメモを作り上げる事

 1.効率的なnmapの仕方

 2.各ポートでのenumeration 方法をまとめる(FTP,SSH,SMTP,HTTP等)

 3.必要となりそうなコマンドを上記に併せて記載する。

 4.privilege escalationの方法を自分のOSCP lab メモとvulnhub,HTBからまとめる

ーwindow8server, window2000サーバーを立ち上げて、eternalblue(MS17-10)をmetasploitを使わずにexploit する方法の習得

ー上記サーバーに脆弱性のあるソフトを入れてみて、exploit検証

等々

あと、この勉強期間で自分と同じように頑張っている人と親交を深める事が出来たり、自分がこれまで見落としていた技術的な内容の補完が出来たりと、この2週間でそれなりに成長出来たと感じられたのはケガの功名でした。(雑煮をモグモグ食べながらw)

 

【受験 3回目 2019年1月】

もぅ、怖いものはないぞ!!と思いつつ開始。1台目は簡単にクリアして次のターゲットホストへ移る。簡単なターゲットホストの攻撃方法は直ぐになんとなくわかったので、そのホストに集中。途中、立ち止まったものの2台目も開始から4時間以内に攻略。3台目は、簡単にユーザー権限まで手に入れたものの、ルートユーザーの手に入れ方がニントモカンとも。情報をまとめた所、これだ!という物がみつかり試すもうまくいかず・・・・。うーん。なんでだろうと考えてエラーメッセージにヒントが。そのおかげで、ルートユーザーもゲット(Googleで発見したexploitを実行するだけじゃなくて、その内容を把握する事が大事だよというoscpからのメッセージ・・・・キット)

4台目は、これだろうなと思っている攻撃方法がうまくいかず・・・。自分のスクリプトは正しいはずと検証しながら修正していったらなんとかなりました。その後、ルートもどうにかこうにかゲット。この時点でまだ12時間以上の残り時間が!!

 

ただ、もぅ合格には十分だった&あと1台がどうしても手掛かりが得られなかったので、あえてのレポート作成に移ることに。

(レポート作成しながら、足りないスクリーンショットが無いかどうかを確認する目的で、4台のホストからどうやってルート権限を取得したかをレポートにまとめていくことに。)

これも注意しながら作成して3、4時間ほどでドラフト版が完成!!(前回のような問題がないかも確認しつつ)

 

この時点で結構疲れてたので、あえての睡眠を選択w

試験官にチャットでこれから寝ます宣言をしてから4,5時間の仮眠。

起きてから、改めてレポートのチェックと最後の1台についてもう一度観察(悔しいから)。まぁ、結局最後の1台はどうしてもshellが取れず終了。

 

疲れつつも、やることはやった感に包まれて終わることに。

 

その後、レポートを2,3度見直して試験終了後5時間程度で提出、3時間後ぐらいにOSCP事務局からレポートは受領したから3営業日以内に合否出しますというメールが。

 

【48時間後】

まだかなー、まだかなーと思いつつも胃が痛くなりつつも待った結果。

おおよそ48時間後にOSCP事務局から合格しましたメールが!!!

やったぜ!!

その後は、合格証書の送付先を入力したり、Degital budgeの申請をしてLinkedINに表示させてみたり、自分の履歴書にOSCPの文字を入力したりして歓喜のひと時を味わっていました。(合格証書がくるのは、何時になるかは謎、60日以内には届くよ!とメールには書いてあるんですけど遅すぎW)

 

あとは、CISSPCPEポイント(40ポイント)としても登録が出来るので、それも即効で登録。w

 

そんなこんなで、勉強がひと段落したので就職活動をこれから行いますw

 

これからOSCPの勉強を始めようとする人達に向けてのお勧めやら、注意点やら

【試験メモ】

1.もしも1つのホストで2時間以上止まったら、他のホストへ
 →一つのホストが出来なくても合格できるし、気分も変えた方がいい。

2.90分とか120分とかに1度は休憩を10分でも5分でも入れた方がいい。24時間は集中できないから、適宜休憩した方が良い。

3.確実に準備が出来るBOFのホストは最初に片づけた方がいい。

4.PROCTOR EXAMのカメラとスクリーンをキャプチャするソフトのcpu使用率が高いので、ハイスペックなPCでは無い場合には、カメラだけでも他のPCを使った方がいい。

5.どんなホストにも落とし穴や時間を浪費させる罠があるので気を付ける事。

6.最終的にレポートにまとめる必要があるので、ノートやらScreenShotには慣れておくこと(多分大丈夫だろうけど)

7.Exam Requirementsを熟読しておくこと。labを行う前に読むのが理想。

実際にどんなスクリーンショットが必要かとか、使用制限がされているソフトウェアとか確認しておいた方が良いです。

 

【試験以外でのお勧めやら注意点】

1.試験日の設定について

試験日は出来れば3週間以上前に決めて予約した方がいい。近い試験日程は大抵埋まっていて取れないです。キャンセル待ちして取ることも可能ですが、運しだいになります。

2.Labの期間について

ペネトレーションテストの経験者でなければ、断然90日コースがおすすめ。覚えるべき事とlabで物凄く時間が取られてしまう為。

3.Metasploitについて

もちろん便利なので、使い方を覚えたりすることは大事です。ですが出来るだけ、OSCPlabではmetasploitを使わないようにすること。一度metasploitでshell を手に入れる事が出来たら、次にはmetasploitを使わない方法もできる限り試す事。本番ではたった1つのターゲットホストにしか使えない為。

4.家族や友人の協力

勉強している間は、平日、休日問わず時間に追われると思います。家族・友人・親戚に事前に話して了解を得た方が絶対にいいです。w

5.OSCP Lab以外も役に立つから利用した方が良い。

vulnhub, HTB等々の他のpen testing practice sites で勉強したりするのは物凄く有効では。また、自分でwindows machine をVMwareに入れてbofの勉強をしたりするのもいい勉強になります。

※自分は3回目の試験時に自分の作成したwindowsホストにターゲットホストに入っていた脆弱性を持ったソフトをインストールして、そこで実際に自分の作ったスクリプトが動くかどうかを検証しました。(もちろん、ターゲットサーバーもrevertingが25回まで出来るんですが、そういう事を気兼ねなく何度でも検証できるという事と、より詳細にそのスクリプトの動きを観察出来るというメリットがありました。ターゲットサイドの動きが検証出来ますしね。)

6.OSCPのLabのホストは出来る限り攻略する事

自分の場合には、OSCPは34 hosts, vunlhubは13 hostsのrootを取得したのと、HTBに関しては10以上のyoutube videoをみてexploit の方法を確認しました。他の人が言うように少なくとも30以上のホストを攻略後に受験するのをお勧めします。

 

7.試験に失敗してもめげない事。(一番大事)

ノートは確実に取ること。そして、どういった攻撃方法が存在するか試験後に考えてみる事。(試験で出るホストは、ローテーションされているらしく、次回受験する際には同じターゲットホストが出る可能性があります。) try harder!!

あとは、公式ページにもありますが、何度も受験する人もいるので落ちる事をそんなに悲観的に考える必要は無いかと思います。その試験時にあたったターゲットが難しいものが当たったという事もあり得ますし。

 

8.ディスプレイはマルチディスプレイ推奨

多くのウインドウを開くのと、検索しながらスクリプトを書いたり等結構スペースを使うので、ディスプレイの大きさが十分か?マルチディスプレイは?とか考えた方がいいです。もちろん1台だけでも別にへっちゃらなら良いですが、色々な人のblogやyoutubeをみてると大体2台以上のディスプレイを駆使していることが多いです。自分もノートPCとそれに外部のディスプレイを繋げて勉強と試験を受けました。

 

9.不正行為は危険だし情報流出は自己責任だし

これも公式ホームページに記載がありますが、結構な数の人が資格はく奪(停止)されているようです。おそらくですが、試験での不正行為や、自分の持っているOSCPテキストやムービーの横流し(テキストにもムービーにも自分のID入りの透かし文字が入っている。) によって発覚するのだと思います。提出レポートも他の人の物のパクリだと疑われるでしょうしね。自分も気を付けないと。(だから、試験やlabの内容はブログ内で詳しく書くことは出来ないです。他の人のブログでも見たことはない。)

 

こんなところでしょうか。なんか思いついたら追記しますw