SteghideとStegseekを使ってみる
概要
ステガノグラフィ関連のツールであるSteghideとStegseekの使い方のメモ。Steghideで画像に秘密情報を埋め込み、埋め込んだ画像から秘密情報が得られることを確認する。また、Stegseekを使い、Steghideで秘密情報を埋め込んだ画像を解析してみる。
Steghideとは
画像(BMP, JPEG)と音声(AU, WAV)ファイルに対して秘密情報を埋め込むことができる、ステガノグラフィ用のツールである。
次のコマンドでインストールできる。
$ sudo apt install steghide
以下のコマンドで、秘密情報を埋め込むことができる。
$ steghide embed -cf <埋め込み先のファイル> -ef <埋め込む秘密ファイル>
上記コマンドを実行すると、パスフレーズの入力が求められる。 このパスフレーズは、埋め込んだ秘密ファイルを抽出する際に必要となる。 パスフレーズの入力が完了すると、秘密ファイルを埋め込んだ旨が表示される。なお、埋め込み先の元ファイルは残らないので、必要であればバックアップを取っておく。
一方で、埋め込んだ秘密ファイルを抽出する場合は、以下のコマンドを使う。
$ steghide exract -sf <秘密情報を埋め込んだファイル>
これを実行すると、パスフレーズの入力が求められ、埋め込み時に指定したものを入力することで、埋め込んだ秘密情報ファイルが同ディレクトリに生成される。
実際に、以下の画像ファイル(arowana.jpg)に対して、秘密情報を埋め込んでみる(画像ファイルは参考リンク先より)。必要に応じて、元ファイルのバックアップをとっておく。
埋め込む秘密情報ファイル(secret.txt)は次の通り。
steg test
以下のコマンドで、秘密情報を埋め込むことができる。パスフレーズは「password」とした。
$ steghide embed -cf arowana.jpg -ef secret.txt
秘密情報が埋め込まれたarowana.jpgを確認してみる。元の画像と同じようにしか見えない。
次に、この画像から秘密情報を抽出してみる。
$ steghide exract -sf arowana.jpg
パスフレーズ「password」を入力すると、抽出が完了し、同ディレクトリ内にsecret.txtが生成されたことが確認できる。
Stegseekとは
Steghide用のクラックツールである。Steghideで秘密情報が埋め込まれたであろうファイルがあるものの、パスフレーズが分からない場合に利用できる。具体的には、辞書ファイルを用いて、パスフレーズの総当たりを行ってくれる。
参考リンクより、最新の.debファイルをダウンロード後、次のコマンドでインストールできる。
$ sudo apt install ./stegseek_0.6-1.deb
以下のコマンドで、対象ファイルのクラックを試みることができる。
$ stegseek <解析対象のファイル> <辞書ファイル>
なお、辞書ファイルには「rockyou.txt」を用いる。hydraやgobusterなどを使ったことがあれば知っているであろう有名な辞書ファイルの一つである。
ここでは、先ほど秘密情報を埋め込んだarowana.jpgに対し、パスフレーズをクラックしてみる。
$ stegseek arowana.jpg /usr/share/wordlists/rockyou.txt
簡単なパスワードであるため、クラックが成功したことが分かる。同ディレクトリ内にarowana.jpg.outというファイルが生成され、秘密情報が含まれていることが分かる。
感想
理論を知らなくても気軽にステガノグラフィを体験できる点が良かった。CTFでステガノ問が出てきたときは、zstegやStegSolveに加え、Stegseekも試してみたい。