CTF初心者がCTFを始めた際のメモ的ななにか
始まり
元々は脆弱エンジニアの日常
のアスースンCTF2のWrite Up動画を見てやりたいな〜というのが始まり
やったこと
アスースンCTF2のWrite Up動画でもおすすめされていた、kurenaifさんの動画を見た
簡単に要約すると
-
CTFはフラグと呼ばれる文字列を探し当てる競技。
-
謎解きに近い感覚で、問題解決を通じて文字列を見つける。
-
picoCTFという初心者向けプラットフォームから始めると良い
-
CTFには常設型とイベント型がある。
-
イベント型CTFで高い順位を目指すことが目標となる。
-
SECCON Beginners CTFで決勝に行くことを目標にするのがおすすめ。
-
まずはAngstrom CTFやBeginners CTFに参加するのがおすすめ。
-
CTFの問題の種類は
- General Skills:基本的な知識を問う問題。
- Binary Exploitation:バイナリファイルを攻撃する問題。
- Reverse Engineering:与えられたプログラムを解析する問題。
- Cryptography:暗号を解読する問題。
- Web Exploitation:Webサイトの脆弱性を利用する問題。
-
CTFを始めたい人へのアドバイス
- picoCTFから始めるのがおすすめ。
- ヒントを見てもわからない場合は、Writeupを参考にする。
ということで、picoCTF[https://picoctf.org/]に登録した
適当に何問か解いたが、謎解きのようで楽しい。
CTF用の勉強などはしてないので、とりあえず解いているがBeginner程度であれば解ける感じ
あと、Mr. Robot CTFというものがあったのでこれもやってみた。
Write Upもあるのでそれらを見つつ、流れを掴むのが良いかと思います。
上記を実施するには、Try Hack Me[https://tryhackme.com]というサイトでpicoCTFと同じようなCTFを解けるサイトです。
Try Hack Meを扱った本もあるので、これらをやりつつ進めると理解が深まると思います。
やっていた感想として、基本的なlinuxコマンドを知っていること(catとパイプラインが理解できていれば)と
どういうハッキングツールのコマンドがあるのか(KaliLinux内にあるものなど)を学んでいけば良いと思います(スクリプトキディ感あリますが、実際そうなのでそれでいいんだと思います)
わからないジャンルはそれこそkurenaifさんの動画を見るといいと思います(crypt系が多め)
使うツール
- KaliLinux
- もうこいつ使っておけばなんとかなる。というか使ってないと困ることの方が多いかもしれない
- 十徳ナイフ的なツール、バイナリやCrypt、アセンブラ系の問題で使う
- Docker
- 環境構築などで使用する
- DevTool
- なんか含みのある文章だなあというときはソースコードを見るとflagのヒントが見えたりする
- ChatGPT(他LLMサービスでも良い)
- こいつを使っていいのか??という気持ちはあるが、普通に解いてくれるのでわからないときは使っちゃうのがいいと思います。最近はこいつを前提に問題が作られていたりするらしいです。
取り組み方
わからなかったら、WriteUp読むなどしてバンバン解いていくのがいいと思います!
(解けなくて、モチベーションがなくなっていくのが一番もったいないので)
最後に
エンジニア向けの謎解きで非常に楽しい!!!
みんなやろう!!!
Discussion