1. ホーム
  2. スクリプト・コラム
  3. vbs

vbsスクリプトウイルスのウイルス原理の解析

2022-02-08 17:28:08

I. 序文

ウイルスクラスの教師は私たちに分析しようとする暗号化されたvbsスクリプトのウイルスコードを投げた、ここであなたの参照のための分析プロセスを送信するには、テキスト内の任意のエラーを見つけたり、任意の提案を持っている場合、あなたは私に直接メッセージを残すことができます、ありがとうございます!.

II. 目次

分析プロセス全体は、以下のパートに分けられます。

0x00 準備
0x01 復号部
0x02 機能解析

III. 分析プロセス

0x00 準備中

Windows xp用仮想マシン(ご自分のWindowsで可能です。)

vbsの基本的な構文

0x01 復号部分

このファイルは、ウイルスファイルを右クリックして編集するか、サフィックスをtxtに変更して直接開くと、暗号文の大きな部分とdeCryptという関数が表示されます。

コードの一番下までドラッグすると、deCrypt onceがある、つまり、2回暗号化されていることがわかります。ここの実行部分をコメントアウトして、復号化した結果をテキストファイルに出力してください。また、base64で暗号化されていることがわかります。

では、デコード後の結果を見てみましょう。やはり読めないコードであることがわかりましたので、引き続きどのように処理するのか見ていきましょう。

ここでは、先の文字列を"|dz|"で分割してアスキーコードを取得し、そのアスキーコードに対応する文字をつなぎ合わせて結果を得ていることが分かります。同じルーチンで復号化結果をファイルに出力し、解析を続ける。

すると今度は、その結果が本物のウイルスコードになります。次に、彼の機能を解析します。

0x02 機能分析

最初から見ていきましょう。サーバーのドメイン名など、いくつかの設定情報が表示されています。アメリカのサーバーであることがわかります。Pingを打ってみましたが、Pingがうまくいきません。サーバーがPingを打たせない設定になっているのか、サーバーがもう使われていないのか、中国のグレートファイアウォールが直接壁になっているのか、どちらでしょう。

それから、ここではあまり説明しませんが、後で使われる変数があります。

続いて、コード開始部分です。そして、その中でいろいろな関数が呼び出されているので、ここでは読みやすくするために、関数の実行順に番号を振っています。そうしないと、ごちゃごちゃした感じになってしまいます。

ここでは、まずインスタンス関数が呼び出されます。

1. インスタンス機能

前の引数のいずれかに値を割り当てる usbspreading とレジストリへの書き込み

インスタンス関数が実行された後、サーバーからコマンドを読み込んで実行し続けるwhile true deadループに入る。whileの中に入った後、まずインストール・プロシージャが呼ばれます。

2. インストール手順

インストールでは、upstartが再び呼び出されます。戻って見てください。

2.1 アップスタートプロセス

ここでは、ウイルススクリプトがレジストリから起動するように設定されています。

その後、アップスタートプロセスから出てきて、インストールコードの残りを続けて見てください。ちょっと多いので、機能だけを整理しておきましょう。

すべてのドライブをスキャンし、タイプ番号が1であれば、何かをします。1であれば、リムーバブルデバイスを意味し、フラッシュドライブのようなリムーバブルデバイスに感染させたいと考えています。このスクリプトは、リムーバブルデバイスのルートディレクトリにコピーされ、ファイルの属性は、隠しファイルには2、読み取り/書き込み、システムファイルには4、読み取り/書き込みに設定されます。

次に、リムーバブルデバイスのルートディレクトリにあるすべてのファイルを取得し、それらがlnkファイルでない場合、隠しシステムファイル、読み取り/書き込みに設定します。次に、cmd.exe を指す対応するショートカットを作成し、パラメータに "/c start " & replace(installname," ", chrw(34) & " & chrw(34)) & "&start " & replace(file. name," ", chrw(34) & " " & chrw(34)) & " & 終了" つまり、ショートカットをクリックするとまずスクリプトウイルスが起動し、次に本物のファイルが起動して、cmdが終了するということです。

次に、ルートディレクトリのフォルダについても同じようにします。これでサブルーチンインストールの解析は終了し、ファンクションポストへ移行します。

3.ポスト機能

postの機能は、感染したマシンの情報をサーバに送信し、サーバからウイルス作成者のコマンドデータを取得することであることがわかります。感染したマシンの情報を取得するためにinformationという関数が呼び出されていますが、どのように行われているか見てみましょう。

3.1 情報機能

インフォメーション機能は、ハードディスクのシリアル番号、システム関連情報、コンピューターにインストールされているセキュリティソフトを取得するために使用されます。

さて、post関数の外で実行した後、サーバーからコマンドを取得します。次に、コマンドの実行の解析です。次に、異なるコマンドを解析するために、switch ... ... case...の構造でvbsです。

4. 各種コマンドのパース

4.1 実行コマンド

ここでは、受信したコマンドを直接実行します

4.2 updateコマンド

ここでは、ウイルスを更新するためにサーバーからデータを取得します。

4.3 アンインストールコマンド

アンインストール手順は、ウイルスによってレジストリに加えられた以前の変更を復元し、以前に他のいくつかのディレクトリにコピーされたウイルススクリプトを削除するために呼び出されます。

4.4 送信コマンド

サーバーからファイルをダウンロードするために、downloadプロシージャを呼び出します。

4.5 site-send コマンド

これはsitedownloaderプロシージャを呼び出すもので、これもサーバーから何かをダウンロードしますが、これはサイトのソースコードか何かのようなものをダウンロードします。

4.6 recvコマンド

指定されたファイルをアップロードするためにアップロード関数を呼び出します。

4.7 enum-driver、enum-faf、および enum-process の各コマンド

対応する関数を呼び出して、それぞれドライバ関連の全情報、指定したディレクトリ内の全ファイルとフォルダ、システム上の全プロセスを列挙します。

4.8 cmd-シェルコマンド

ここでは、cmdshell関数が呼び出され、cmdコマンドへの入力が実行され、コマンドの結果がサーバーにフェッチバックされています。

4.9 削除コマンド

deletefafプロシージャを呼び出して、指定したファイルまたはフォルダーを削除します。

4.10 exit-processコマンド

指定したプロセスを終了させるためにexitprocessを呼び出す

4.11 スリープコマンド

スクリプトのスリープ時間を設定する

これで全てのコマンドの解析が終了し、対応するコマンドを実行した後、ウィルスは指定された時間だけスリープしてから、サーバからコマンドを取得し続けます。

IV. 概要

ここでは、前回の分析でわかったことをまとめています。

1. まず、base64エンコーディングについて学ぶことです。実際に解析するために実装の詳細を知る必要はありませんが、最低限使ってみましょう。

2.vbsの学習。

3. レジストリを設定することで、指定したプログラムの自己起動を設定します。

4. デバッグの基本スキル。コードの不明瞭な部分は、結果を出力することで理解が早くなる。

その後、ウイルスは実験でも解明された。私の方法は、暗号文の一部を直接傍受して、それを検索し、そのフィールドを含むvbsファイルを削除することで、レジストリは上書き修正されないが、自己起動するファイルは既に削除されているので、問題ない、というものだった。また、アンインストールモジュールをウイルスから取り出して、別途呼び出して、すべての改変を元に戻す方法もある。

すると今度は、ウイルスがvbsを通じて、サーバーとの通信、ファイルシステムの改変、レジストリの改変などを行っていることがわかります。他の言語でも可能ですが、ほとんどのウィンドウズにはvbsのインタプリタがあり、普及しやすいこと、vbsは習得しやすいことから、ウイルス作者が選んで書いたということだと思います。要するに、言語によって特徴があり、その長所が自分のニーズにマッチしているかどうかがポイントになります。

上記はvbsスクリプトウイルスのウイルス原理の分析の小さな紹介です、私はそれがあなたの助けになることを願って、あなたが何か質問がある場合は、私にメッセージを与えてください、私は速やかにあなたに返信されます。皆様がスクリプトハウスのウェブサイトを応援してくださることを感謝します