CpawCTFを解く(Level2 Q28 writeup)
GW中に少しでも勉強を進めようと思い、重い腰を上げてCTFに初挑戦してみました。
初心者が手を付けるならCpawCTFがお勧めという話を聞いたので、まずはLevel1から。
フラグとは何ぞや、というMiscのTest Problemに始まり、本当に基礎の基礎を手取り足取り教えてくれる感じ。
緯度経度から川の名前を探すForensicsなど、簡単ながらも問題を解いていく面白さを味わえる良問揃いでした。
次はLevel2に挑戦。Level1は適当に記載の順番で問題を解いていったので、同様にとりあえずStegoのQ13を解いたところで、メニューの上にあるDifficultyタブから問題毎の解いた人数を見れることを発見。
一番解いた人数が少ない(難しいと思われる)Q28のNetwork問題にいきなり手を付けてみることにしました。
無事ヒントを見ずにフラグを手に入れることができたので、自分用兼ねて解き方をメモしておきます。
ちなみにこの問題、つい最近(2021/04/11)更新されたようです。
まず問題文のリンクからpcapファイルをダウンロードします。
中身をWiresharkで眺めます。
なんだかFTPでいろいろやっているみたい。ログインしようとして失敗したりしているのがわかります。
問題文から推測するに、特に暗号化されていない平文のデータが重要になりそうなので、適当にそれっぽいものを探していきます。
フィルタでFTP or FTP-DATAとしてポチポチすると、怪しい文字列を発見しました。
"FLAG file exists in this directory"…どうやらFTPサーバにログインしてFLAGファイルを探し出す必要がありそうです。
ちなみにその際”Current working directory: /”とあるので、ルートディレクトリを見ればよさそうですね。
FTPサーバにログインします。IPは見ての通り118.27.110.77です。
ここで必要になってくるのがユーザとパスワードですが、これも暗号化されていないので筒抜けになっています。
pcapファイルの上の方に戻って…最初にanonymousでログインしようとして失敗し、一回接続を切っています。
その後、No.38でcpaw_userでログインを試みているようです。パスワードはNo.42にまんま書いてあります。コピペして接続。
早速dirを、、と思いましたが、謎のエラー("500 Illegal PORT command")が発生。
調べてみると、"Linux command-line ftp defaults to using active-mode FTP. Try switching to passive mode with the pass
command"とのことなので、その通りにするとdir発行できました。
しかし、あるのはdummyファイルのみ。開いても中身は例の"FLAG file exists in this directory"だったので、一瞬どういうこと?と手が止まってしまいました。
少し冷静になって、どうせ隠しファイルだろうと思い"dir -al"すると案の定".hidden_flag_file"という、いかにもなファイル名で置いてありました。
ダウンロードして中身を開くと、フラグゲット。
お疲れさまでした。
引き続きLevel2を解いて、CpawCTFが終わったらpicoCTFに挑戦予定です。
他にはLPICとCCNAも取りたいし、4月に受けた情報処理安全確保支援士の結果も気になるし、放置気味のHTBもTHMも進めたいし、、いろいろありますが、焦らずゆっくりやっていきたいと思います。