教育目的での悪意のあるファイルの迅速な分析

まず、難読化された悪意のあるファイル(新鮮な、暑い)の悪意のあるファイルの明示的な分析は、[de]コード難読化の問題に学生を関心を寄せる方法の例です。
アルゴリズムのフローチャートと実行ルート( NDV GTKのRD制御 )の構築を伴う深くて骨の折れる分析はここにはありません。

導入する代わりに


多くの教科書に典型的な人工的な例は、残念なことに、多くの場合、問題を理解する意欲を低下させます。 また、研究中の問題に関する最初の教育課題が非常に複雑であるため、推論のスレッドを失う可能性があります(経験がない場合は明らかに、まだそうではありません)。
上記に基づいて、資料を提示することは教師の仕事であり、責任であることを思い出して、難読化された悪意のあるスクリプトの明確な分析を示すことが望まれていました。 幸いなことに、これを「良い」ものにすることはそれほど大きな問題ではありません。業界全体が創造と流通に懸命に取り組んでいます。
それは受信されました:前週の検疫の印象的な選択と、感染したサイトからの控えめなスクリプトの選択(2015年)。
どこから始めますか? 受け取った「良い」の準備と。

ステップ1(準備)


すべてのアーカイブを解凍します。より正確には、アーカイバ(この場合は7zipを使用)を使用して、アーカイブを認識して解凍します。 他に何をしようとしていますか? 結果のコレクションでは、さまざまな拡張子(zip、rar、arj、lzh、ace、exe、uueなど)を持つファイルがアーカイブになる可能性があるためです。
* .zipファイルは常にzipアーカイブではありません
既存のコレクションでは、あるアーカイバの拡張子特性を持つファイル内で、データが別のアーカイバからのアルゴリズムでパックされたときに、状況が明らかに現れました。 拡張子がさまざまなアーカイブの特徴であるファイルの約50%には、rarアーカイブが含まれていました。
計算は明らかです。通常のユーザーのワークステーション(攻撃のターゲットと見なされる場合)には、拡張子だけでなくファイルヘッダーも分析するアーカイバが通常インストールされます。拡張子のみに焦点を当てたファイルを処理します。
中間ノード上のアンチウイルスからコードを隠すためのこのような手法の有効性は、おそらくほぼゼロです。

として、すべての重複を削除します 定量的な指標には興味がありません。 この段階で取得したリスト、またはファイル名を覚えておきましょう、まだ必要です。

2番目のステップ(ソート)またはメンデレーエフの足跡


ファイルのリストを取得したので、次に何をしますか? ファイルをタイプ別に分割します。

繰り返しになりますが、定量的な指標-どのファイルタイプがより多く-は私たちにとって興味のないものです。 何をすべきかを想像するために、彼らが受け取ったものを何らかの形で整理する必要があります。 「質量」でソートされたメンデレーエフの記憶:


3番目のステップ(分析)または「注視の方法」


長さ順に並べられたファイルのリストに「close look method」を適用する:


デバッガーを使用しない場合、コンパイルされた実行可能ファイルから次のものが取得されます。


スクリプトの大規模なグループに移る前に、単一のhtmlファイルを検討します。 彼は本当に面白いことを喜ばれませんでした:改行文字とたくさんのコメントを削除しました。 これは簡単にクリーンアップされ、攻撃者が使用したい技術がすぐにわかります。
html
<meta http-equiv='refresh' content='0; url=http://bad.url/' /> 

レセプションはシンプルで分かりやすく、長い間知られています。


wsfスクリプトには興味深いものは見つかりませんでした。 複数行コメントの基本的な削除後、同じコードが残っていました(復号化が必要ですが、処理されませんでした)。
wsf
 <job> <script language="JScript.Encode"> #@~^+goAAA==&JNi ... DAA==^#~@ </script> </job> 



JSの難読化解除-サブジェクトはHabréで繰り返し公開されますが、繰り返しすぎても意味がありません。 コレクションにはさまざまなトリックがありました。

面白くて鮮やかなのは、ファイルのグループ「3文字と10桁」に細心の注意を払ったことです。 変数に同じ名前が与えられ、他のいくつかの「化粧」変換が実行された場合(インデントするために、数値に対して算術演算を実行する[1 + 4 + 1 = 2 + 2 + 2 = 3 + 2 + 1 = 6]) 、その後、ファイルの類似性が明らかになりました。 ファイルは明らかに1つの難読化ツールによって処理されました。 これにより、ファイルストリームから類似したグループを特定し、個々のファイルを徹底的に分析して、グループに関する結論を導き出す能力が実証されました。

アーカイブを使用したマルウェアトリックの分離


アーカイブの拡張子の変更については、既に上記で説明しています。
正しい拡張子を持つアーカイブが互いに入れ子になっており、ありません。 ネスティングは著者の想像力に依存し、2つの可能な目標を追求します。

アーカイブ機能を使用した単純な難読化の受信は、phpファイルで特定されました。 この場合、アンチウイルスによる難読化と非表示およびシークに加えて、圧縮によりファイルサイズが大幅に節約されました。
php
 eval(gzinflate(...)); 

コードを少し変更するだけで、実行はされませんが、結果は保存され、数回の反復でコンテンツにアクセスできます。 タスクは難しくなく、すべての生徒が解決できます。 その結果、最初の10kは、30kのphpスクリプトになります。 このスクリプトには、パスワードハッシュ検証付きの認証ブロックが含まれていますが、別の小さな変更により検証が無効になり(またはハッシュが置き換えられ)、実際の「実際のライブハッカーシェルコード」が表示されます:便利なインターフェイスとコマンドを実行できるミニファイルマネージャー

Source: https://habr.com/ru/post/J279717/


All Articles