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】Forensics「RED」Writeup

0
Posted at

1. はじめに

  • 対象問題: picoCTF - RED (Forensics / Easy)
  • 一言: 一見ただの赤い画像に隠されたギミックを解く問題

2. 与えられたファイルと初期調査

まずはダウンロードした red.png のメタデータをWSLで調査します。

exiftool red.png
#poemにCrimson heart, ~ Bold in every stroke.と書かれている
strings red.png
#以下
#IHDR
#tEXtPoem
#Crimson heart, vibrant and bold,
#Hearts flutter at your sight.
#Evenings glow softly red,
#Cherries burst with sweet life.
#Kisses linger with your warmth.
#Love deep as merlot.
#Scarlet leaves falling softly,
#Bold in every stroke.x
#IDATx
#IEND 

3. 考察

詩の各行の頭文字を縦に読むと、C-H-E-C-K-L-S-B = 「CHECK LSB」 になります。
ステガノグラフィの手法としてよくある、画像データのLSB(最下位ビット)に暗号データを埋め込むLSB法を使っていると推測。

参考にさせていただいたブログ
Linuxでステガノグラフィ技術を使って画像ファイルの中にテキストファイル埋め込む
https://qiita.com/sabanomisoni/items/a37fd4e522a35987e8fc


4. フラグの抽出(解法)

LSBの抽出には、PNGのステガノグラフィ解析で強力な zsteg コマンドを使用しました。

4-1. zstegによる解析

WSL環境で以下のコマンドを実行し、RedチャンネルのLSBデータを抽出します。

# インストール(初回のみ。Rubyのパッケージマネージャを使いま)
sudo apt install ruby -y
sudo gem install zsteg

# 解析を実行
zsteg red.png

実行結果の text: セクションに、末尾に == が含まれる`"cGljb ~"という怪しい文字列(Base64形式)がありました。

4-2. CyberChefでのデコード

抽出した文字列をCyberChef に投入します。

  1. Input: zsteg で得られたBase64文字列を入力
  2. Recipe: From Base64 を適用

デコードした結果、フラグ文字列が出現しました。


5. まとめ・感想

  • 一見ただの単色画像に見えても、メタデータのテキストに次のステップ(CHECK LSB)への伏線が隠されている良問でした
  • zsteg ツールを使用しましたが、pythonコードで自作する方法もあるようです
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?