ちょっとした調べ物をしていたところ、バイナリやディスクから中のデータを抽出することができる『foremost』コマンドなるものについて知ったので、ちょっと試してみることにする。 これを利用することで、例えばpdfファイルの中にある画像のみを抽出したりといったこともできるようだ。
1. foremostのインストール
インストールは簡単で、以下のコマンドで行える。
Debian/Ubuntu系の場合
sudo apt -y install foremost
RHEL系の場合(例:CentOS 7)
yum install -y https://forensics.cert.org/centos/cert/7/x86_64//foremost-1.5.7-13.1.el7.x86_64.rpm
MacOS Xの場合
brew install foremost
2. 実際に使ってみる
無事インストールが完了したら、実際に使ってみよう。 いろいろなことができるのだが、今回の例ではpdfファイルから画像を抜き出してみる。 オライリーのサンプルpdfがあったので、とりあえずこれを使うことにしよう。 以下のようにコマンドを実行すると、カレントディレクトリ配下に「output」というディレクトリを作成して、その中に抽出したデータを配置してくれる。
wget ftp://ftp.oreilly.co.jp/download/binary_hacks_smpl.pdf
foremost -t jpg -i binary_hacks_smpl.pdf
blacknon@BS-PUB-UBUNTU-01:~/test_dir$ wget ftp://ftp.oreilly.co.jp/download/binary_hacks_smpl.pdf
--2017-04-09 23:30:29-- ftp://ftp.oreilly.co.jp/download/binary_hacks_smpl.pdf
=> `binary_hacks_smpl.pdf'
ftp.oreilly.co.jp (ftp.oreilly.co.jp) をDNSに問いあわせています... 199.27.145.52
ftp.oreilly.co.jp (ftp.oreilly.co.jp)|199.27.145.52|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。 ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。 ==> CWD (1) /download ... 完了しました。
==> SIZE binary_hacks_smpl.pdf ... 573554
==> PASV ... 完了しました。 ==> RETR binary_hacks_smpl.pdf ... 完了しました。
長さ: 573554 (560K) (確証はありません)
binary_hacks_smpl.pdf 100%[==============================>] 560.11K 564KB/s in 1.0s
2017-04-09 23:30:31 (564 KB/s) - `binary_hacks_smpl.pdf' へ保存終了 [573554]
blacknon@BS-PUB-UBUNTU-01:~/test_dir$ foremost -t jpg -i binary_hacks_smpl.pdf
Processing: binary_hacks_smpl.pdf
|*|
blacknon@BS-PUB-UBUNTU-01:~/test_dir$ ls -la output/jpg/00000981.jpg
-rw-rw-r-- 1 blacknon blacknon 50171 4月 9 23:30 output/jpg/00000981.jpg
中を見てみると、たしかに表紙の画像が抽出されていることが確認できた。 よくCTFなどで利用されるツールというのもあってか、他にもディスクからファイルを救出したり、ファイルの頭から何バイトかを削除してやったりと色々なことができる。