ペネトレーションテスト&バグバウンティCpawCTF,ctf
貴方もひょっとして「CTF」が気になってしょうがないのでは・・・
セキュリティの動作確認に、仮想環境のOracle VM VirtualBoxにKali Linuxとやられサーバの環境を作成して、ごにょごしょしています。(^^;;
いろいろ調べているうちに、ペネトレーション、バグバウンティ、CTFなどのキーワードが目に付くようになりました。
- ペネトレーション(テスト)とは
対象のサーバーに疑似的に攻撃を行い、外部からの侵入を試み脆弱性を見つけます。
- バグバウンティとは
ペネトレーションテストと同様に対象のサーバーに疑似的に攻撃を行い、外部からの侵入を試み脆弱性を見つけ、報奨金をいただきます。
- CTFとは
Capture The Flagの略で「旗とりゲーム」のことで、高度なセキュリティの技術を磨くゲームなんです。
「旗とりゲーム」って面白くないですか。
システムやソフトウェアの脆弱性を探し、脆弱性を利用してシステム上のさまざまな「隠しフラグ」を見つける論理ハッキングゲームです。
国内で有名なCTFとして「CpawCTF」というサイトがあります。
はじめてCTFにチャレンジする初心者にピッタリのサイトだそうです。
自分の仮想環境でテストするのもいいですが、自分がどのくらいの実力か、測ってみて面白いと思います。
あなたもチャレンジしてみませんか?
CpawCTFとは
サインアップすることで、いつでも自分のペースでCTFが学習できます。
論理ハッキングゲームといっても簡単ではありません。
問題にはヒントが書かれているので、知らない用語や知識を検索して調べられます。
CpawCTFは時間の制約がないので、時間をかけてじっくり考えられるがの良い点ですね。
高得点を取ってランキング上位を目指しましょう。
CpawCTFのサイトはこちらから
CpawCTFサインアップ
簡単ですね。SignUpのボタンを押下して
- ScreenName
- UserID
- Password
- password(again)
を入力して下部のSignUpボタンを押下するだけです。
簡単ですね。
CpawCTFの回答方法
すべての回答(フラグ)は次のような形式で回答します。
cpaw{example} cpaw{回答}になるのですね。
問題からflagの文字列を探し、各問題のページでflagをsubmitすれば得点が入ります。
CpawCTFを受けるにあたって
CpawCTFを受けるにあたってヒントがありましたので、詳しく見ていきたいと思います。
CpawCTFのジャンル
ジャンルは以下の11種類に分類され出題されるそうです。
・Web(ウェブ技術)
・Crypto(暗号技術)
・Reversing(リバースエンジニアリング技術)
・Pwn(Pwnable:ソフトウェアの脆弱性またはセキュリティ上の欠陥を利用する技術)
・Forensic(セキュリティ事故が起きた際に、端末やネットワーク内の情報を収集し、被害状況の解明や犯罪捜査に必要な法的証拠を取得する技術)
・Network(ネットワーク技術)
・PPC(アルゴリズムやコーディング技術)
・Steganography(情報隠蔽技術)
・Recon(偵察技術)
・Trivia(雑学問題)
・Misc(その他の問題)
ハッキングゲームの「武器」というところでしょうか。
Web(ウェブ技術)
ウェブサイトの脆弱性を探し、攻撃することでflagを見つける問題です。 SQLi、XSSなどと呼ばれる脆弱性を探したり、HTTPヘッダーに隠されたflagを見つけ出すなどの問題があります。
【CTFの解析で利用できるツール】
Fiddler(Web デバッグ プロキシ ツール)
Burp(プロキシツール)
OWASP ZAP(Web脆弱性診断ツール)
Crypto(暗号技術)
古典暗号から現代暗号、またはオリジナルの暗号などを攻撃し、flagを求める問題です。 鍵の長さが短い、アルゴリズムに脆弱性がある、など問題に使用されている暗号の穴をついて解読する問題や、 そもそもどのようなアルゴリズムで暗号化されているのかを調べる問題などがあります。
【CTFの解析で利用できるツール】
pythonのcryptoモジュール(暗号化ライブラリ)
PARI/GP(計算機代数アプリケーションであり因数分解、 代数的数理論、楕円曲線等I
利用)
Reversing(リバースエンジニアリング技術)
実行ファイルを解析し、flagを探し出す問題です。 様々な実行ファイル形式の問題があり、デバッガなどを駆使して動きを解析する技術が必要です。
【CTFの解析で利用できるツール】
IDAdemo(逆アセンブラ)
Pwn(Pwnable:ソフトウェアの脆弱性またはセキュリティ上の欠陥を利用する技術)
プログラムの脆弱性を攻撃し、flagを取る問題です。 サーバーでプログラムが動いていて、そのプログラムを手元で解析し、 脆弱性を見つけてプログラムに異常な動作をさせることによりshellを取るのが大まかな流れですが、 深い知識が必要となるため初心者には少し敷居の高いジャンルとなっています。
【CTFの解析で利用できるツール】
IDAdemo(逆アセンブラ)
gdb-peda(バイナリの解析デバッガー)
python(プログラム言語)
ruby(プログラム言語)
orensic(セキュリティ事故が起きた際に、端末やネットワーク内の情報を収集し、被害状況の解明や犯罪捜査に必要な法的証拠を取得する技術)
様々なデータの中に隠されているflagを探し出す問題です。 ゴミ箱で削除されたデータを復元し、flagを探したり、大量のパケットの中からflagの情報が書いてあるパケットを見つけ出したりする問題が主です。
【CTFの解析で利用できるツール】
Autopsy(ディスクイメージの解析)
FTKimager(メモリデータ取得)
バイナリエディタ
Wireshark(ネットワークプロトコルアナライザー)
Network(ネットワーク技術)
ネットワークに関する知識を用いてflagを取る問題です。 pcapファイルと呼ばれるネットワークを流れているデータを保存したファイルからflagを見つけ出したり、 特定のターゲットに通信をし、様々な攻撃をすることでflagを取る問題があります。
【CTFの解析で利用できるツール】
Wireshark(ネットワークプロトコルアナライザー)
Network Miner(パケット解析ツール )
Scapy(通信プロトコルに対応したパケット操作プログラム)
PPC(アルゴリズムやコーディング技術)
プログラミング力を図る問題です。 何をやればflagが出るのかは自明になっていて、それを実際に実装してflagを取れるかを試される問題で、競技プログラミングに類似しています。
【CTFの解析で利用できるツール】
エディタ [Vim, emacs, Sublime Text, VisualStudio Code, atom, …]
IDE [VisualStudio, IntelliJ, …]
各言語コンパイラ,インタプリタ
Steganography(情報隠蔽技術)
音声や画像のデータに隠されたflagを探し出す問題です。 画像のバイナリデータにflagが埋め込まれていたり、 音声の波形がflagの文字になっていたりとユニークな方法でflagを探しだす問題が多い特徴があります。
【CTFの解析で利用できるツール】
GIMP2(画像編集ソフト)
sonic visualizer(オーディオ・音楽データの分析)
stegsolve(画像を分析)
Recon(偵察技術)
特定の人物の情報を集めて答える問題です。 その人の住んでいる国の地域をSNSなどで情報収集し特定するなど近年問題視されているSNSの危険性などを知ることができるジャンルです。
【CTFの解析で利用できるツール】
Twitter
facebook
Trivia(雑学問題)
雑学問題です。 クイズが出されて回答するというのが通常の形式です。 Googleをうまく使ってときましょう!
【CTFの解析で利用できるツール】
Google
Misc(その他の問題)
いわゆる「その他」の問題です。 通常あまり細かくジャンル分けしないCTFが多いため、ジャンル分けされていない問題などはすべてMiscに分類されます。
CTF初心者の方にぜひ推奨したいCpawCTFのまとめ
カンニングはOKなので、いかに解決方法のインデックスが頭にあるかということですね。
「CTF初心者」と書きましたが、いろいろな技術が必要になります。
まずは、自分の得意分野を伸ばしても良いと思います。
でも、貴方はホワイトハッカーの入り口に来ています。
あとは門を開けて、階段を一段ずつ昇るだけですね。