web-dev-qa-db-ja.com

アーカイブファイルを内部に隠すことができるすべてのファイルタイプは何ですか?

This チュートリアルでは、次のコマンドを使用して、画像ファイル内に.Zipなどのアーカイブファイルを「非表示」にする方法について説明しています。

copy /b image.jpg + hide.Zip output.jpg

そうすることで、output.jpgを右クリックし、winzipで開いてアーカイブを読み取ることができます。実際の暗号化に代わるものではないことはわかっていますが、それでもこの手法は役立つ可能性があります。私が知りたいのは、この手法が他にどのようなファイルタイプで機能するかということです。何か案は?

1
WorkerBee

非表示の意味によって異なります。転送のために非表示にし、後で画像を再度削除する場合は、任意のファイルタイプで実行できます。代わりに、ポリグロット、つまり有効な画像と有効な異なるファイルタイプの両方であるファイルを同時に作成する場合は、最初にジャンクデータを許可するタイプ、または有効なイメージがファイルの有効な先頭も。たとえば、ZipとPDF標準の両方が最初にジャンクデータを受け入れますが、すべての実際の実装がこれを受け入れるわけではありません。このようにして、ジャンクを受け入れる別のファイル形式でポリグロットに組み合わせることができます。最後に、いくつかの画像形式だけでなく、gzip圧縮されたデータも同様です。

この方法でファイル形式を組み合わせることができるすべての方法の包括的なリストを私は知りません。しかし、そのようなポリグロットを使用した攻撃の典型的な例は Gifar で、これはGIFとJARを1つのファイルに結合して制限を回避します。そして、興味深いポリグロットの多くの例は、 Funky File Formats 31c3からのトークで見つけることができます。

2
Steffen Ullrich

任意のファイルタイプ。これは基本的に原始的なステガノグラフィです。ファイル拡張子は、ビューアを混乱させる以外の役割はありません。何でもかまいません:.eeks.dee.help.png

0
thel3l

多くのファイルタイプは、基本ファイルの続きとしてコピーできます。ここでは特別なことは何もありません。

実際のコンテンツを検出するのはファイルインタープリター次第です。

あなたの場合(JPEG + Zip)、ほとんどの画像リーダー(画像インタープリター)はコンテンツが完全であるため画像ファイルを正しく表示し、残り(最後のZip)をジャンク/メタデータとして無視します。

Zipエクストラクター(アーカイブインタープリター)は、アーカイブ固有のタグタイプを検索します。ファイルのどこかでそれを見つけると、アーカイブがそこにあることがわかります。今回のアーカイブエクストラクタは、アーカイブシステムによってメタデータとしてインデックス付けされていないものを無視し、インデックス付けされたコンテンツを読み取るため、このトリックが実際に機能します。

基本的に、任意のファイルタイプをJPEGに追加すると、表示時に表示されますが、残りのコンテンツ(どのファイルの後に追加するか)については、それらをどのように解釈するかが問題になります。

0
Overmind