https://ctf.cpaw.site/index.php
Classical Cipher
(Writeup) The Beginner’s Guide to the picoGym を解く でシーザー暗号をやりました。 https://gchq.github.io/CyberChef/#recipe=ROT13(true,true,false,23)&input=ZnNkentGZGh2ZHVfZmxza2h1X2x2X2ZvZHZ2bGZkb19mbHNraHV9
CyberChef を使ってときます。
Can you execute ?
とあるファイルが渡されるため、それを実行してフラグを得てね、という問題です。
file
コマンドでファイルの形式を調べられるようです。
❯ file exec_me
exec_me: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.24, BuildID[sha1]=663a3e0e5a079fddd0de92474688cd6812d3b550, not stripped
ELF 形式の x86-64 Linux 向けのバイナリでした。 Linux で実行してみます。
scp をつかって macbook から linux (ubuntu) に転送します。 .ssh/config を設定していればそのままホスト名だけで転送できるのですね。
❯ scp exec_me ganyariya-ubuntu:~/
exec_me 100% 8556 589.5KB/s 00:00
Can you open this file ?
同様の問題です。
❯ file open_me
open_me: Composite Document File V2 Document, Little Endian, Os: Windows, Version 10.0, Code page: 932, Author: v, Template: Normal.dotm, Last Saved By: v, Revision Number: 1, Name of Creating Application: Microsoft Office Word, Total Editing Time: 28:00, Create Time/Date: Mon Oct 12 04:27:00 2015, Last Saved Time/Date: Mon Oct 12 04:55:00 2015, Number of Pages: 1, Number of Words: 3, Number of Characters: 23, Security: 0
Windows の Word ファイルとのことでした。 Windows PC を立ち上げるのが面倒だったため、Google Drive にぶち込んで Google Docs として扱いました。
HTML Page
HTML の中身をみればよいです。
River
川の画像が与えられるためその川の名前を当ててください、という問題です。
Exif https://ja.wikipedia.org/wiki/Exchangeable_image_file_format 撮影したときにメタデータを画像に付与できるようです。 日本で開発された規格ですが、海外でも利用されており事実上の標準規格のようです。
緯度と経度が入っているためその座標の川の名前を調べます。
pcap
pcap 形式のファイルが与えられるため、解析してねという問題です。 pcap は packet-sniffing (パケットを監視して中身をみること) するときにその形跡を記録するための保存形式のようです。
https://sysdig.jp/learn-cloud-native/what-is-a-pcap-file/
今回は wireshark で中身をみました。
url: https://hldc.co.jp/blog/2020/04/15/3988/
title: "Wiresharkの使い方~Wiresharkで「TCP/IP」モデルをのぞき見る~ | ハートランド・ザ・ワールド"
host: hldc.co.jp
2 つのデータリンク層のイーサネットフレームがキャプチャされていました。 パケットキャプチャツールとありますが、実際には NIC を通るイーサネットフレームをキャプチャしているようですね。 2つのイーサネットフレームにはそれぞれ1つずつ IP パケットが含まれています。
イーサネット層のフレームとしては
- 送信先 MAC Address = 70:58:…0d
- 送信元 MacAddress = 58:55…
- Type IPv4 = 0x0800
- Padding = 00 00 00 となっています。もちろんこれ以外にも本来はフレームがありますが Wireshark では非表示になっています。
Ethernet 2 > Internal Protocol Version 4 > IPv6 > Application… のように階層的になっている、かつそれが右側のエディタのバイト表示で連結になっているためわかりやすいですね。
ここで IPv6 Hop-by-Hop Option に Cpaw のフラグが埋め込まれているためこれを提出します。 https://network-engineer.jp/archives/1136
HashHashHash!
sha 1 で作成されたハッシュが与えられるため元の文字列を当ててね、というものです。 sha-1 は弱い暗号化であり、現在では使うことが控えられているようです。
レインボーテーブル というものをつかうことで、ブルートフォース攻撃するためのメモリ空間を大幅に減らせるようです。 理解しようといろいろ考えたのですが、まだ自分のなかで腑に落ちてないですね…。
https://ja.wikipedia.org/wiki/SHA-1 https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%A4%E3%83%B3%E3%83%9C%E3%83%BC%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB
https://sha1.gromweb.com/?hash=e4c6bced9edff99746401bd077afa92860f83de3 でリバースさせればいいです。
並べ替えろ!
AI にやらせました。 ソートして連結すればいいです。