0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📘 picoCTF writeup: Hidden in plainsight を完全解説(Exif → Base64 → steghide)

Posted at

📝 はじめに

本記事は picoCTF のステガノグラフィ問題
「Hidden in plainsight」 の writeup です。

画像ファイルに隠された情報を読み解くために、

  • Exif 情報の解析
  • Base64 の二段階デコード
  • steghide を用いた埋め込みファイルの抽出

といったステップを順に踏んでフラグを取得しました。

macOS と Windows(WSL) の両方に対応した解析手順 を掲載しているため、環境に依存せず再現可能です。
ステガノ系の CTF 問題でよく使うテクニックが一通り経験できる構成なので、学習目的にも最適です。

🔍 1. メタデータ(Exif)を確認

まずは画像 img.jpg のメタデータを調べます:

exiftool img.jpg

すると、次のような怪しい Comment を発見します:

Comment                         : ****(Base64 らしき文字列)

→ ここが最初の手がかりです。

🔑 2. Base64 をデコード(1 回目)

echo **** | base64 --decode

上記コマンドでComment の文字列をデコードすると、次のような形式の文字列になります:

steghide:****

ここで重要なのは:

🎯 steghide: の後ろに続く文字列が Base64 っぽい形式のまま残っていること

  • 英数字 + = で終わる
  • 長さが4の倍数
  • Base64 特有の文字構成(A–Z, a–z, 0–9, +, /, =)に一致

この特徴から、コロン : の右側も Base64 でエンコードされた文字列であると分かります。

つまり:

  • 最初の Base64 → steghide のヒント
  • 2つ目の Base64 → steghide のパスワード

という 2段階構造です。

ステガノ問題では「ヒントの中にさらにヒント(Base64)」という
多層構造がよく使われる定番パターンです。

🔑 3. Base64 をデコード(2 回目)

右側の Base64 をもう一度デコードすると、埋め込み解除に必要なパスワードが得られます。

echo **** | base64 --decode
# 出力
****

🐳 4. steghide の実行環境(macOS / Windows WSL)

macOS の場合:Homebrew では steghide が入らない → Dockerで解決

macOS には公式 formula が無いため、Docker 上で Ubuntu を動かすのが確実です。

docker run --rm -it -v "$(pwd)":/work ubuntu:22.04 bash

コンテナ内で:

apt update
apt install -y steghide
cd /work
steghide extract -sf img.jpg -p <デコードしたパスワード>

成功すると:

wrote extracted data to "flag.txt".

Windows(WSL あり)の場合:WSL が一番簡単

WSL(Ubuntu など)を使える場合、

sudo apt update
sudo apt install steghide

だけでインストール可能です。

あとは Linux と同じ:

steghide extract -sf img.jpg -p <パスワード>

→ macOS や Docker より圧倒的に楽です。

Windows(WSL なし)の場合:steghide for Windows を利用

steghide の Windows バイナリは配布されています(自己責任領域がやや強め)。

例:
https://steghide.sourceforge.net/

※ 公式だが古いため antivirus による誤検知が出ることがあります。

これを回避したい場合:

  • WSL を有効化して Ubuntu を入れる
  • あるいは Docker Desktop を使う

のが現代的な選択肢です。

🚩 5. フラグを確認

フラグを取得できればクリアです。

🧠 まとめ

  • Exif 情報→ Base64 → steghide はステガノの鉄板ルート
  • Base64 の多段構造は picoCTF でよく使われる
  • macOS で steghide を使うなら Docker が一番確実
  • 画像から情報を抜く時はまず Comment / UserComment を疑う
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?