はじめに
多くの人は、USBフラッシュドライブを「外国の」コンピュータに接続することで、この恐怖感を知っているでしょう。 さらに、ユーザーの権利のためにこのコンピューターのオペレーティングシステムで何が起こっているかを見ることができず、このコンピューター自体が「公にアクセス可能」である(教育機関の聴衆)。 そして、恐怖が正当化されたときのさらにひどい気持ち:ウイルスは、USBフラッシュドライブへの書き込みに加えて、何らかの方法でそのデータを不正に変更します。
私もこれに遭遇しました。 そして、偽のフラッシュドライブでウイルスのサンプルを入手したので、私は彼が他に何をしていたのか、そして彼の仕事の本質は何なのか、そして最も重要なことには、この感染をコンピューターと「感染した」フラッシュドライブから追い出す方法を理解することにしました。
この記事は、資格やスキルに関係なく、ソフトウェア分析の分野に興味がある人に役立ちます(専門家は自分の経験についてコメントすることができます)。
目に見える行動の分析
サンプルをUSBフラッシュドライブにコピーする前でも、そのようなUSBフラッシュドライブで何が起こっていたかは知っていました。
- 実行可能ファイル(.exe)がRECYCLERフォルダーにスローされます(重量: 79160バイト、MD5: 4fd40d4acdd4c0bb657c7db329035c6a )。
- すべてのフォルダーが非表示になります。 フォルダプロパティを介して以前の属性を返すことはできません。
- autorun.infファイルは、RECYCLERからのファイルへのリンクを含むルートにコピーされます
- ルートからのフォルダアイコンとその名前を含むショートカットが作成されます。 ショートカットは同じ実行可能ファイルを指します。
フォルダーを復元してマルウェアを削除するプログラムを作成することはまったく難しくありません。これはかなり迅速に行われました。
- ディレクトリの走査は、FindFirstFile / FindNextFileを使用して行われました。
- 現在のファイルがフォルダーの場合、属性はFILE_ATTRIBUTE_NORMALにリセットされました。
- すべてのexeファイルは、RECYCLERフォルダーから削除されました。
残念ながら、この闘争の方法は効果的ではなく、迷惑です。 各ペアの後、フラッシュドライブを再度クリーニングする必要がありました。 したがって、仮想マシンで何が起こっているのかを確認し、それに応じて解毒剤を作成することにしました。
VMファイルを調べる
VMとして、Virtual Box上のWindows XP SP3が使用されました。 ところで、VM自体の分析は、AntiVM機能がないことを示しています。 マルウェア分析では、これに非常に標準的なソフトウェアを使用しました。
- ペイド
- Ollyデバッガー
- Wireshark
- リソースハッカー
- Avz
- ルートキット公開者
- プロセスモニター
- プロセスエクスプローラー
- 自動実行
そのため、まず、ファイルのパッケージを確認することにしました。 PEiDが示したもの:

ファイルが何もパックされていないと信じることはもちろん素朴で、Resource Hackerでファイルを開いた後、推測が確認されました。

暗号化されたリソース(おそらく、アンパック、データ、または単なるゴミのキー)。 いずれにせよ、それはもう無実のファイルのようには見えません。 私は分解に強いわけではないので、ollydbgにはあまり時間をかけませんでした:アンチデバッグはないことを確信しました(少なくともシステムへのインストールの段階では、既に目を引いた「993」を除き、読み取り可能な行はなく、ファイルはまだスクリプト化されていました)。
インストールパスが最も一般的です。ファイルは静的名Kmlslc.exeでCSIDL_APPDATAにコピーされ、スタートアップキーはHKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Runの 「Kmlslc」です。 その後、実行中のファイルが削除されます(ほとんどの場合、システムで既に見つかったクリーチャーが削除され、コマンドライン引数を介してパスが渡されます)。
ネットワークトラフィックによると、これはボットであると言えます。 マルウェアはwipmania.comに接続して外部IPアドレスを取得し、その後、デフォルトのファイアウォールをバイパスして、ドメイン名を使用していくつかのサイトにアクセスしようとします。

ところで、対応するドメインをhostsファイルに書き込むとき、ボットはシャットダウンしようとしません。 さらに、HttpSendRequest、InternetWriteFile、URLDownloadToFile、send関数はインターセプトされてトラフィックを分析し、ウイルス対策の更新をブロックし、kaspersky.ru、virustotal.comなどのサイトに移動します。
インストール後、自動実行キーは使用できず、自動実行では認識されず、プロセスリストにKmlslc.exeがありませんでした。 さらに、ファイルはディスク上に表示されませんでした。 RootkitRevealerを使用してシステムをスキャンした後、レジストリおよびディレクトリへのアクセスが傍受され、情報の出力が変更されたことが判明しました。 かなり一般的な手法。 次の関数は、実装のためにインターセプトされます:CopyFile、CreateFile、MoveFile、LdrLoadDll、NtEnumerateValueKey、NtQueryDirectoryFile、NtResumeThread、RegCreateKeyEx、RegCreateKeyEx、GetAddrInfo。

Procmonでフィルターを簡単に構成することにより、マルウェアがインターセプターコードを信頼できるプロセス(explorer.exe)に導入することが明らかになりました。 ログから、コードが定期的にファイルの存在を確認しようとしていることがわかります。

「なぜ?」という原則に基づいて、DeleteFileを使用してファイルを消去しようとしました。 驚いたことに、関数は成功し、埋め込みコードはファイルにアクセスした後、SUCCESSではなくFILE_NOT_FOUNDをスローし始めました。 これにより、埋め込みコードのWinAPIインターセプト以外には何も実装されていないという考えに至りました。 残念ながら、プログラムでフックを撃つ方法はまだわかりませんが、AVZがそれを非常にうまくやることは知っています。 PCを再起動した後、OSはこのマルウェアが除去されたと見なすことができます。
おわりに
上記からどのような結論を引き出すことができますか? APIの傍受、otstukおよびその他の手法の前のドメイン名のチェックにもかかわらず、マルウェアにはまだ多くの欠点がありますが、それに対して利点は実際には意味がありません。
- システムにインストールするときの静的名。
- 削除に対する保護の欠如。
長所と短所を分析すると、少なくとも2つが開発に関与していると想定できます:1つは暗号化され(または3つ目はWinAPIインターセプトを実装し、2つ目はファイルをUSBフラッシュドライブにコピーし、システムにインストールし、管理パネル(またはゲート)と通信します)
悪意のある活動を調査した後、解毒剤が書かれました。 ソース