web-dev-qa-db-ja.com

JavaScript攻撃コードに遭遇しました-エクスプロイトの詳細に関する情報を検索するにはどうすればよいですか?

それで、私はリンク先をホバーすることを最初に考えないで、見た目が良さそうなLinkedIn招待をクリックしました。通常、電子メールクライアントがそのようなことについて警告するからです。

エクスプロイトページに到達したことに気づいたら、すぐにソース(明らかな有罪のJavaScriptを含む)をコピーし、ウィンドウを閉じ、適切な攻撃コードを解読しました(自作のエンコードされたevalでラップ)。

編集: 難読化されたコードはここにあります 難読化されたコードの後に​​、実際のHTML攻撃ページが続きます。

幸いなことに、私の場合、ペイロードがデプロイされていなかったようです。攻撃のターゲットはPDFおよびJavaブラウザープラグインで、どれもありませんでした( Java sansプラグインがインストールされていますが、いずれにしても、バージョンが攻撃に対して最新ではないようです)。

ただし、私はJSの専門家ではないため(推論によるJSエクスプロイトの専門家ではないため)、影響を受けないように攻撃コードを検索してみました。 これまでに結果はありません。

もちろん、これは理にかなっています。そのような一般公開されているコードは、スキディや悪意のある目的でそれを使用したい人を魅了します。

それでも、JavaScript攻撃コードが与えられた場合、エクスプロイトに関する情報をどのようにして見つけることができますか?

11
mikołak

This は、このマルウェアのかなりの good example のように見え、他の誰かによって逆に(そしてステップバイステップのハウツー)されています。次の on google を検索しました。

基本的には、悪名高い blackholeエクスプロイトキット の新しい変種で攻撃されたようです。

「Java」、「flash」、「pdf」にリンクしたPastebin全体を検索すると、「ダウンロードして開く」に本質的に変換される参照が表示され、多くのエクスプロイトの1つがキットは動作します。私が投稿した最初のリンクは、これがうまく分解されていることを示しています。

上記の著者が分析を行っていなかった場合は、マイケルが提案したルートをたどってVM画像をロードします。それでも、 自身のリスク。 これを定期的に行う場合は、この種の調査に専用の古いラップトップまたはデスクトップマシンを用意することをお勧めします。 この質問 将来的にも役立つかもしれません。

10
NULLZ

VMの使用とは別に、JavaScript自体が悪意があると思われる場合は、 jsunpack などのツールを使用してコードを分析できます。また、Wiresharkを使用してパケットをキャプチャし、シナリオを再作成する場合、ペイロード/悪意のあるバイナリを抽出し、それを VirusTotalAnubis および/または Malwr さらなる分析のため。 (クイックノート:Malwrは、VMでバイナリを実行することにより、カッコウサンドボックスからの結果も提供します)

5

検索で何も役に立たないことが判明した場合、1つの標準オプションはそれを試すことです。

[〜#〜] vm [〜#〜] をAdobeの比較的古いバージョンとJavaプラグインで実行します(PDFおよび/またはJava)をターゲットにしている疑いがある場合は、感染したサイトにアクセスする前にVMのスナップショットを取り、すべてのトラフィックを記録します。イン/アウトVMあなたがサイトにアクセスしたとき(およびその直後))。

を使用してトラフィックを検査します。 Wiresharkにアクセスして、アクセスの前後にファイルシステムの内容を比較します( http://www.honeynet.org/ で役立つリソースが見つかるかもしれません)。

3
Michael

あなたが投稿したJSは、基本的に攻撃対象に攻撃を展開する最初の段階です。これは、JavaScriptを使用してインストールしたすべてのものを列挙しています。

そのようなチェックの1つは

  if ((c.isIE && (c.verIE < 9 || !c.ActiveXEnabled))
                                                || (c.verGecko && 0 > c.compareNums(c.verGecko, c
                                                                .formatNum("2")))
                                                || (c.isSafari && (!c.verSafari || 0 > c.compareNums(
                                                                c.verSafari, c.formatNum("4"))))
                                                || (c.verOpera && c.verOpera < 10)) {
                                        b = [ 1, 1, 1 ]
                                }

ここでは、IE <バージョン9、Firefox、Safari、Operaのいずれであるかを確認し、ブラウザのバージョンを確認しています。

別のそのようなチェックは

if (((javaver >= 500) && (javaver < 633))
                || ((javaver >= 700) && (javaver < 710))) {
        Java1();
} else {
        if ((javaver > 709) && (javaver <= 717)) {
                Java2();

ここであなたのJavaバージョンがチェックされています。そして、あなたのJavaバージョンに基づいています。つまり、それが5.0.0と6.3.3または7.0.0と7.1の間にある場合.0関数Java1をデプロイします。これで、Pastebin出力にJava1関数がありません。これは、どこかで参照されている他の.jsファイルが欠落していたことを示しています。基本的に、Java1関数は、悪用部分が実際に開始する場所です。プラグインチェックは、基本的に、ブラウザにその特定のプラグインをロードできるかどうかを判断するためのものです。

したがって、このスクリプトは実際の悪用の第1段階にすぎません。非常に多くのチェックが実行される理由は、悪用が非常に困難になり、ソフトウェアのバージョンごとに異なるペイロードのセットが必要になるためです。ソフトウェアのバージョンだけでなく、OSのバージョンも同様です。 Windows XP SP2エクスプロイトは、Windows XP SP3のエクスプロイトと同じである必要はありません。MacとLinuxとWindowsはもちろんです。通常、1つのチャンスがあります。リンクをクリックしたユーザーを悪用するには(この場合、悪用に失敗するとブラウザがクラッシュします)したがって、攻撃者はクライアントに適切に展開する必要がある悪用を選択する必要があります。

バージョンを確認すると、ブラウザ、Java、フラッシュ、Adobeリーダーなどの古いアプリケーションを実行している場合は、システムに侵入がないかスキャンする必要があります。

2
Omair .