OSCP合格しました ~その2~

前回の続きで、OSCPの受験記です。

 

2度目の受験

 落ちた後は、攻略できなかったホストの受験時のログ等を再チェックして、見落としがなかったかを探したりしました。

新たにラボ期間を延長してホストを追加攻略する気力も湧かず、次受験することばかり考えていました。

私の受験した時期は1回目落ちると、次の受験まで1週間以上開ける必要があったと記憶しています。(今は落ちた後に再受験するルールがもっと厳しくなったようです。)

再試験のことばかり考えていろいろ手につかなくなりそうだったので、前回の試験から2週間後の土曜日に再試験を受けようと決めました。

最初に見たときには予約がいっぱいでしたが、前回の経験からその週の月曜日に再確認したところ、空きがあり無事予約ができました。

 

朝7時から試験がスタート。

2度目の試験は前回の反省を活かし、10点問題を後回しにしました。

40点分のホストを攻略した時点で12時間が経過し、それから25点のホストに取り掛かりました。

ど深夜に急に閃いて低権限シェルが取れ、それから慌ててエクスプロイト開発ホストに取り組んだりといろいろ自分の中ではドラマがありました。

3時間ぐらいを余して一応合格点には達した(レポートで減点されなければという前提)と判断して、レポート用のスクリーンショットを撮影して、ワードに張り付ける作業をしました。必要に応じて、マシンをリセットして再度同じ手順で攻撃をしたりしてスクリーンショットを集めました。

明け方にエクスプロイトを書いているときに全く頭が働かなくなり、シャワーを浴びたりしましたが、24時間ほぼフルに使い、試験を終了しました。

試験終了後はいったん寝て、起きた後レポート作成の続きをしました。

慣れない英語でしたが、google翻訳を頼りに作成して、日曜日の夜アップロードしました。

計40ページ近くになりました。

 

格通知とその後

受験後、3日ぐらいで合格の通知が来ました。

合格証書の名前と配送先の確認後、音沙汰がなくなり不安になりましたが、

60日ぐらいでDHL便で届きました。

 

勉強法?

  • とにかく、スキャンにせよ、低権限のシェル取得にせよ、権限昇格にせよ可能性のあるもの(すべてを試すのはきりがないので、得られた情報から可能性を絞り込むのも重要ですが)を列挙して、可能性をつぶしていき、答えにたどり着くという手法を学ぶことになると思います。(手法を列挙する能力や、得られた情報からの可能性を絞り込むの能力の差によって、人それぞれ答えにたどり着く効率は違うとは思いますが。)
  • 公式がwriteupを掲示板にアップしているホストがあります(以前は1ホストだけだったが、最近2ホスト目がアップされたかも)。列挙のお手本として非常に参考になります。
  • 僕は1つのホストに2日挑戦してわからなければ、掲示板を見てました。ただし、掲示板を見たからといってすぐわかるようなヒントがあるとは限りません・・・。
  • マニュアルのエクスプロイト開発の演習は手を動かして試したほうがいいです。それだけでは不安であればpwnable.twのstartとかやってみればいいと思います。

 

以上です。

今後受講/受験される方の参考になれば。

気力が続けば、参考になったURL等を更新するかもしれません。

OSCP合格しました ~その1~

また更新が1年以上開いてしまったのですが、

昨年の10月に2度目の受験でOSCP(Offensive Security Certified Profiessional)受かりました。

 

受験まで

去年の1月末から30日のラボ期間(1回目)はあっという間に過ぎ、

3月頭ごろに課金($250)してラボ期間を30日延長しました。

(それまでに攻略していたのは10ホストぐらいだったか・・・?)

 

ちなみに、ラボ期間の延長は支払い後、(すでに期限が切れていても)1日も待たされずに接続可能になりました。1時間後とかそんなだったかな。

(「ラボ接続期間終了後xx日以内に試験を受けなければいけない」というようなルールがあったような気がしますが、その期間を過ぎていた場合はどうなるかわかりません。)

 

4月の頭にまたラボ期限が切れたのですが、仕事が忙しくなったため、すぐには延長しませんでした。

5月に再開し、また30日の延長をしました。

ここまでで合計20ホストちょっと程度を攻略できたため、テストを意識し始めました。

ただ、 試験が24時間+レポートを書くのが24時間のため、フルに時間を使った場合、

土日に受験すると月曜日の仕事に影響が出そうだったので、3連休とれるところをさがしていたら9月になりました。

 

9月に受験の前に仕上げとして再度15日のラボ延長($20)を行いました。

最終的には約30ホストほどは攻略していました。

あと、エクササイズレポート(マニュアルの演習問題のレポート)と

ラボレポート(ラボの任意で個別な10ホスト以上の攻略レポート)の

両方を提出すれば、試験時に5点ボーナス加点されるのですが、

マニュアルの演習問題を全くやっていなかったので諦めました。

ちなみに試験は70点合格です。

 

1度目の受験

1度目の受験を9月後半に予約しました。

最初、土曜の朝(日本時間)がいいなと思ってましたが、土日は人気が高いようで変な時間(15時~とか)しか開いてませんでした。

仕方なくその時間で予約していましたが、試験の週の月曜日(5日前?)ぐらいに再度空きを確認したら、朝6時からの回が空いていたので予約変更しました。

試験については、受講者用掲示板にいろいろな人のアドバイスがあるので読んだほうがいいかと思います。

 

試験前日は早く寝て、当日はちょっと早めに起き、シャワーを浴びてコンビニへ24時間分の飲み物や食料を買い出しへ行きました。

試験中はブラウザベースの監視アプリ(Webカメラ+デスクトップ監視)を動かし続けている必要があります。

試験開始15分前までに、監視アプリへログインして試験前の確認(身分証や受験場所の部屋全体をカメラで見せる)を行う必要があります。

試験開始時間になるとメールが届くので、その指示に従って試験を開始します。

(たしか試験官へVPNの接続状況等を知らせたり、連絡を取りつつ、許可をもらってから開始する)

受講者用掲示板にも書いてありますが、監視アプリが重いです。

そのため、PCのスペックが低い場合はサブPCを用意したほうがいいというアドバイスがあったので、試験官にサブPCを使っていいかと尋ねたところ、監視できないPCは使っちゃダメと言われました。(事前に言ってれば、大丈夫だったのかも)

重いなりに何とかなりそうだったので試験を続けました。

私の試験時は10点~25点の計5問で、難易度としてはラボのマシンと同じぐらいでは?という感じでした。

ただ、10点の問題に多くの時間を費やしてしまい、その上その問題を解けず、

諦めて次の問題へ進みましたが、24時間フルに頑張って55点相当の問題しか解けませんでした。

疲れたのと悲しかったのとで、レポートは出しませんでした。

 

2回目の受験は次回更新予定です・・・。

OSCP取得目指してPWK受講記 準備~初日(現在3週目)

7年ぶりにブログを更新します。

 

動機は、現在OSCPの取得に向けてPWKのコースを受講しており(現在3週目)、

日本語で書かれた情報を残そうと思ったためです。

 

 OSCPとは?

Offensive Security社のペネトレーションテスター向けの実践的な認定資格です。

現時点でOSCPやPWKについて日本語で書かれた情報がいくつかあります。

いずれも受講前に読んで、参考にさせていただきました。

blog.drmn.jp

medium.com

noobwanttobeahacker.hatenablog.com

studycanada.hatenadiary.com

 

私のスキルは?

  • 現在30代前半のフリーランスエンジニア(音声系やら、インフラやら)
  • プログラミングはC,perl,ruby,asmがなじみがあって、python,php等もできなくはない
  • セキュリティ分野ではCTFに参加したことはあるものの、ペンテストの実務経験等はなし
  • CTFも主にJeopardy形式のもののみに参加しており、得意分野がRE(reverse engineering)であったため、あまり攻撃手法に詳しくないし、そもそも最近CTF参加していない・・・
  • nmapやmetasploitは触ったことがあるけど、起動したことあるの5回ぐらい
  • ksnctfのVillager Bは解けた
  • 英語の読みはgoogleがあればつたないなりにある程度できる、書くのは自信ない

受講準備

上記の受験記に加えて、OSCPについて調べると下記の受験記が各所で絶賛されていたので事前に読みました。また、この中で提供されているツールは非常に有用です。(古いけど)

www.securitysift.com

なぜか妙な自信に満ち溢れていたので、あまり事前準備することなくPWKの申し込みをすることにしました。

 申し込み

 ここでハマりました。

受講の申し込みをする際に、フリーメールでないメールアドレスが必要となります。

フリーランスで仕事をしているため有効なメアドがなく、その場合"英語で記載された身分証明書"が必要となります。

パスポートを持っていれば済む話だったのですが、パスポートもなかったためメールでやり取りしていると、"公証付きの免許証のコピーでも可"と言われたので、取得し、申し込みが完了しました。

2019/01/09に申し込みが完了して、受講の開始は2019/01/27 9:00~となりました。

ケチったのと、妙に自信を持っていたことと後からでも有料で延長できることから30日のコースを選びました。

 

受講開始(初日:マニュアル読み)

 受講開始するとメールで講義の動画ファイルとマニュアル(380ページのPDF)へのリンクが送られてきます。(受講生専用のフォーラム、ラボのマシンを再起動したりするときに使うコントロールパネルへのログインID/PASSもついてきます)

上記Takahiro Sugiyamaさんの受験記にもありますが、このコース期間中はマニュアルを早々に終わらせて、ラボ内にある約50台のマシンを攻略していく必要がありそうです。

とはいえ、マニュアルよく読め的なレビューもあったため(マニュアルを1か月読んで演習をし終わってからラボのマシンへ入ったという人のレビューもあった・・・)、初日はまずマニュアルを読むことにしました。マニュアルは様々なツールの使い方や攻撃のテクニックがまとまっていて、学ぶことが多いです。

半日ぐらいマニュアルを読んでいたのですが、はやくマシンの攻略へ移りたすぎてだいぶざっくりと読んで、さっそくマシン攻略へ移りました。

ざっくりラボ解説

コースマニュアルとともにKali LinuxVMwareイメージとVPNのキーも送られてくるので、VPNでラボに接続することになります。

ラボには約50台ぐらいのマシン(Linux/Windows)があり、それぞれの脆弱性をついて侵入し、必要であれば権限昇格し(rootやsystem、administrator権限)、各マシン内にあるproof.txtを読み取るのが基本的な目標なのですが、たまにproof.txt以外にも有用な情報が潜んでいるので、proof.txtを読み取ることだけを目標とするのではなく(公式かどこかにPWKのコースはCTFではなく、real worldに近いと書かれていたような・・・)、root後の情報収集も重要となります。

また、どこかにはnetwork-secret.txtというファイルが潜んでいるらしく、それを見つけるとさらに別なネットワークがアンロックされるそうですが、僕はまだ見つけていません。

あと、1日に7回までサーバのリセット(revert)を行うことができます。ほかの人がすでに入って荒らしまわっている可能性があるので、攻撃の対象を定めた後は一度revertしてから攻撃を開始したほうがいいです。

1週目

半日マニュアルを読んだ後、nmapでざっくりとホストのスキャンを行って、al***というホストに挑みました。ここでもさっそくハマりました。

nmapやその他のツールとまだ仲良くなっていない状況でいきなり野に放たれた(出て行った)ので、とりあえずnmapスキャンしてみたものの、その後何をしていいかわからず途方にくれながら3日ぐらいが過ぎ、4日目にMetasploitでいろんなexploitを試していたらたまたま当たった感じで攻撃が成功しました。あ、Metasploitは試験では1度しか使用できないそうです。1台に4日もかけてしまいましたが、1台攻略したことで自信がつきました。

 

2台目はpe***を調査しましたが、とっかかりが少なかったのでスキップして、b**に着手しました。

b**は比較的簡単に低権限のシェルは奪えましたが、権限昇格の方法を探すのに手間取り、3日かかりました・・・。

 

1週目学んだこと

  • nmapの基本的なオプション
  • ncの基本的な使い方
  • Metsploitでexploitの実行の仕方
  • exploit dbの使い方
  • nikto
  • reverse shell(下記のページを参考にしました)

pentestmonkey.net

  • 権限昇格の基本(Linux)

blog.g0tmi1k.com

www.fuzzysecurity.com

1週目攻略済みマシンリスト⇒al***,b**

どこかのタイミングで、役立つリンク集とか作りたい・・・。

AVTOKYO 2012

チームRUIのメンバーと2人でAVTOKYO 2012にいってきました。
事前に調べずに行ったので知らなかったのですが、
会場がロングセッションのフロアと、ショートセッションのフロアに分かれており、
見たいものがそれぞれ違っていたので一緒には行ったもののほぼ別行動になりました。

grep・・・。

唯一最後は見たいものが揃い、目grepについてのセッションを一緒に見に行きました。
その中でsutegoma2のmurachueさんとucqさんの目grep頂上対決という企画があり、
問題をその場でどちらが早く解けるかという趣旨の対決でした。
またその問題を解いている最中、両者の画面をプロジェクタで投影しているのでどういう解き方をするのか見れます。
対決の結果はタイムアップで同点だったかな?
問題のファイルをもらってくることができたのと、解説を聞くことができたので復習を兼ねてといてみました。

問題

問題ファイル
L1.pdf

level1

問題のL1.pdfですが、バイナリエディタで開いて見ていくとファイル末尾のほう、0xBB05に"PK"という文字列がみえます。
よく見るとその周りにもいくつか"PK"が見えます。
余談ですが、解説の際「なんでそんな末尾の"PK"に気づくの?」と誰かが質問して、
どちらのかただったか忘れましたが、「先頭に怪しいところが無かったら末尾をみます。」と答えていました。
そして「末尾に無かったら中のほうをみていきます。」とも言ってました。
問題に戻って、ファイルの先頭から"PK"を検索すると0x7790に最初の"PK"があり、その前に"%%EOF"もあります。
0x7790からファイル末尾まで別ファイルにコピーしてzipにすると解凍できます。

level2

level1を解いてできたzipを開くとL2.pngとL2.binというバイナリが出てきます。
「ファイルを見てると0xFFが多いから、" xor 0xFF"してみようと思った」そうで、
0xFFとxorをとるスクリプトをすごいスピードで書いていました。
案の定出力されたファイルはzipで解凍できました。
僕ではどんだけ時間かけても出てこなさそうな着眼点です・・・。

level3

level2のzipを解凍するとL3.pngがでてきます。
バイナリエディタで開くとわかる、ある仕掛けがしてありました(笑)。興味ある方はぜひ見てください。
で、ここから先の解説がうる覚えで正しい解き方ではないかもしれませんが、
level1と同様に先頭から"PK"を探していきます。
0x1740に"PK"が見えるので、ここから末尾までを別ファイルにコピーして.zipにします。
そのzipを普通に解凍しようとすると失敗するのですが、中身のx.exeだけを取り出すことはできました。

level4

x.exeの"xor 0xFF"をとります。
できたファイルをバイナリエディタで開き、また"PK"で検索すると0x1618で見つかります。
終わりはどこまでかというと0x24E6に"password.pngPK"という格納されたファイル名らしき文字列があります。
もう少し先に行って0x2508あたりからは0xFFが連続するゾーンなのでこの手前までがzipぽい?です。
そこを抜き出して別ファイルにコピーしてzip解凍するとpassword.pngがでてこれがゴールです。

答え

password.png

所感

着眼点やらスクリプトを書くスピードやらに驚かされ、勉強になりました。
目grepperになりたい。