- 2018/06/06
- サイバー攻撃
Fauxpersky:Kasperskyアンチウイルスソフトウェアを装うAutHotKeyで書かれたクレデンシャル窃盗マルウェアが、感染したUSBドライブを通じて拡散中
Post by : Amit Serper、Chris Black
攻撃者は常に、Windowsシステム上でファイルを実行する新たな方法を探しています。ある方法ではAutoITやAutoHotKey(AHK)を利用しています。これらは、ユーザーがWindows上であらゆる種類のGUIやキーボード自動化タスク用の小規模なプログラムを作成できるようにするツールです。
たとえば、AHKを使うと、ユーザーは、Windowsと対話し、Windowsからテキストを読み取り、キーストロークを他のアプリケーションへと送信するようなプログラムを(各自のスクリプト言語を使用して)作成できます。
なお、注目すべきは、AHKを使うことでユーザーは各自のコードから「コンパイル済みの」実行可能ファイルを生成できることです。
今この記事を読んでいるあなたが攻撃者であるなら、おそらくあなたは、簡単で効率性の高いクレジット窃盗マルウェアを作成するためにAHKが非常に役立つことに気付くでしょう。
ご存知でしょうか?我々は、Kasperskyアンチウイルスソフトウェアを装うAHKで書かれたクレジット窃盗マルウェアが、感染したUSBドライブを通じて広まっていることを発見しました。
我々は、このマルウェアを「Fauxpersky」と名付けました。以下の節では、Fauxperskyに関して詳しく紹介します。
我々は、顧客の環境に次の4つのファイルが侵入しているのを見つけました。各ファイルにはそれぞれWindowsのシステムファイルに似た名前が付けられていました。
- explorers.exe
- svhost.exe
- taskhosts.exe
- spoolsvc.exe
explorers.exe:自己伝播とパーシステンス
このAHKを使ったキーロガーは、非常に単純な自己伝播方式を使用して拡散します。初めて実行された後、このキーロガーは、マシン上のリストされたドライブを収集し、それらに対して自分自身を複製し始めます。このプロセスを詳しく見てみましょう。
リムーバブルドライブの収集:
リムーバブルドライブのリネーム:
ファイルをリムーバブルドライブにコピー:
上記の方法を通じて、このキーロガーは、ホストマシンから、同マシンに接続されているあらゆる外部ドライブへと広がります。このキーロガーが外部ドライブへと伝播すると、ドライブ名をその命名規則に合わせてリネームします。
たとえば、あるマシンが「Pendrive」と言う名前の8GBのUSBドライブをマウントしている状態でこのキーロガーを実行した場合、ファイルが複製を完了した後、このUSBドライブの名前は命名規則に合わせてリネームされます。このUSBドライブの新しい名前は「Pendrive 8GB (Secured by Kaspersky Internet Security 2017)」に変更されます。これは、現在出回っている貴重なIOCです。
また、このマルウェアは、次の内容を含むバッチスクリプトを指すautorun.infファイルを作成します。
start /d “.\System Volume Information\Kaspersky Internet Security 2017” taskhosts.exe
マルウェアのexplorers.exeコンポーネントで採用されているパーシステント方式の分析
explorers.exe の内部には、CheckRPath()という名前の関数があり、キーロガーはこの関数を通じて、ドライブ上にファイルが存在しない場合にファイルを作成します。上記の図に示すように、ファイルは渡されたパスに従って作成された後、AHK関数であるFileSetAttrib()を使用して、「System(システムファイル)」および「Hidden(隠しファイル)」であることを表す属性が各ファイルに設定されます。
また、キーロガーは同じ方法を使用して、渡されたパラメータ「RSH」(“Read-Only”、“System”、かつ“Hidden”)を使って必要なディレクトリを作成します。
ファイルの作成準備が整ったら、すべての必要なコンポーネントを通じて処理を繰り返し、それらをディスクに提供します。下記に示すようにコードブロックを分割することで、これがどのように行われるかを確認できます。
コンポーネントファイルの作成プロセス(HideRFiles())を開始する場合、まずループを開始します。このループを通じて、キーロガーは、構造化された方法でディスクに書き出す必要がある各種の出力ファイルに関する反復処理を実行できます。また、リンク(.lnk ショートカットファイル)、テキストファイル、バッチファイルが、起動するディスクごとに作成されることが分かります。
続いて、関数に渡される値がインクリメントされることにより、ファイルが作成済みのディレクトリ内に配置された時点で、同ディレクトリ全体が移動されます。
これは、ディレクトリ全体を宛先に移動する際に、すべてのファイルが存在することを保証する極めて基本的な方法です。FileMove()やFileMoveDir(”の各コマンドについての詳細はこちらをご覧ください。
4つのファイルは、「Kaspersky Internet Security 2017」という名前のディレクトリ内に存在していました。これらの実行可能ファイルに加えて、2つの実行可能でないファイルが存在していました。その1つが、次の画像を含む「Logo.png」という名前のファイルでした。
もう1つのファイルが、以下の手順を含む「Readme.txt」というファイルでした。
ファイル/フォルダを正しく開始できない場合、お使いのアンチウイルスプログラムを無効にしてください。
ソース:
https://www.bleepingcomputer.com/forums/t/114351/how-to-temporarily-disable-your-anti-virus-firewall-and-anti-malware-programs/
Logo.pngファイルの内容は、感染したマシンがWindowsにログインした際に表示されるスプラッシュ画面であり、これにより、あたかもKasperskyがインストールされ実行されているようにユーザーに思わせることが可能となります。
Readme.txtファイル内の手順に続いて、「Kaspersky Internet Security 2017と互換性のない」セキュリティ製品の長大なアルファベット順のリストが示されています。皮肉なことに、このリストにはKaspersky Internet Security自体が含まれています。
詳細に調査すると、これらのファイルは64ビット版Windows PEファイルであることが判明します。IDA Proを使用してこれらのファイルを検査すると、これらのファイルはほとんど同じものであることが示されます。この類似性は、mutex作成ルーチンを調査することにより確認できます。
上記で見たように、作成されるmutexは「AHK Keybd」と呼ばれます。Googleで検索すると、これは標準的なAHKでコンパイルされた実行可能ファイルであり、実際のAHK言語コードは各PEのリソースセクション内にある RCDATAリソース内に存在しています。
この実行可能ファイル内にあるAHKコードを取り出すために、Amitはahk-dumper という名前の小規模なツールを作成しました。このツールは、PE内部のRCDATAリソースに関して単純な反復処理を実行し、内容を標準出力に書き出します。
各PEファイルからコードを取り出す明確な方法を確保できたため、個々のPRファイルとそれが何を実施するかを明確に対応付けることができます。
explorers.exe: | USBドライブを通じた伝播 |
svhost.exe: | キーロギング、キーロギングしたデータをファイル(Log.txt)に出力 |
taskhost.exe: | パーシステンス(?) |
spoolsvc.exe: | データ流出 |
AHKコードの重要な部分に関する分析
svhost.exe:キーロギング
このファイル内のコードは極めてシンプルです。svhost.exeはAHK 関数WinGetActiveTitle()を使用して、現在ユーザーがその中にいるフォーカスされた(現在アクティブである)ウィンドウを監視し、続いてAHK 関数input()を呼び出すことで、そのウィンドウに対するユーザー入力を(キーストローク形式で)監視します。その後、各キーストロークは「Log.txt」という名前のファイルにアペンドされます。このファイルは、「%APPDATA%\Kaspersky Internet Security 2017」という名前にフォルダ内に保存されます。
キーロギングされたデータは次のような見かけになります。
taskhost.exe:パーシステンス
この部分のプログラムはパーシステンスを取り扱います。最初のステップは、マルウェアのCWDを%APPDATA%に変更し、ハードコーディングされている「Kaspersky Internet Security 2017」という名前のディレクトリを作成することです。
このファイルには、別のルーチンであるCheckLCoreも含まれています。このルーチンは、%APPDATA%内にファイルがすでに作成されているかどうかをチェックします。
ファイルがコピーされていない場合、このマルウェアはFileCopy()関数を使用して当該ファイルをその場所にコピーした後、続いてFileSetAttrib() f関数を使用して各ファイルの属性を設定します。上記に示すように、この関数に渡される第1引数は「+RSH」であり、これは「Readonly、System、かつHidden」を意味します。
spoolsvc.exe:データ流出、ウォッチドッグ、より多くのパーシステンス
spoolsvc.exeには複数のルーチンが含まれています。レジストリキーの値を変更することで、HiddenおよびSuperHiddenファイルの有効化/無効化を切り替えます。
上記の画面ショットに示すように、本マルウェアは、レジストリパス
「HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced」内にある2つのキーを編集します。変更されるキーは次の通りです。
- Hidden – 値が「2」に変更され、システムが隠しファイルを表示しないようになります。
- SuperHidden – 値が「0」に変更され、システムファイルが表示されなくなります(マルウェアによりファイルが作成された際に、それらのファイルが受け取った「system」属性との相関があります)。
レジストリ値が変更された後、本マルウェアは、explorers.exeがすでに実行されているかどうかをチェックします。同プログラムがまだ実行されていない場合、その実行が開始されます。これは、マルウェアのパーシステントな実行を保証しようとするウォッチドッグです。
CheckLProcess()関数により、本マルウェアのすべてのコンポーネントがすでに稼働しているかどうかがチェックされます。稼働していない場合、AHK関数Run() を呼び出すか、またはLoop/Parse呼び出しを使用することで、すべてのコンポーネントが実行されます。
パーシステンスを達成するために、本マルウェアは、「スタート」メニューの「スタートアップ」ディレクトリ内に、自分自身へのショートカットを作成します。
このファイルのもう1つの重要な部分(おそらく最も重要な部分)は、Log.txtファイル内にあるキーロギングされたデータをGoogleフォームへと流出させる部分です。
この攻撃フローを下記の図に示します。
Googleフォームにデータを流出させることは、データ流出にまつわる多くの「ロジスティック」を克服するための簡単で賢明な方法です。この手法を使用すると、匿名化されたコマンドおよび制御サーバーを維持する必要がなくなるほか、docs.google.com へのデータ転送が暗号化されるため、各種のトラフィック監視ソリューションにより疑われることもなくなります。
データを送信しているのは、本ファイル内の次のコードブロックです。本ファイルはバッファ内に読み込まれた後、ディスクからは削除されます。その後、同バッファがGoogleフォームへと送信されます。
結論
このマルウェアは、決して高度ではなく、ステルス性が高いわけでもありません。このマルウェアの作者は、ファイルにアタッチされているAHKアイコンのような、最も些細なことを変更する努力すら行っていません。しかし、本マルウェアは、USBドライブへの感染、キーロガーからのデータの収集、Googleフォームを通じたデータの流出、攻撃者の着信トレイへのデータの配布に関しては極めて効率的です。感染したマシンの台数は現時点で判明していませんが、新しい情報が入り次第、この記事をアップデートします。
対処法
我々は、この悪意あるフォームに関してGoogleに報告しました。Googleのセキュリティチームは、我々が彼らに連絡してから1時間以内に同フォームを削除しました。もしあなたが本マルウェアに完成している場合、%appdata%\Roaming\に移動し、ディレクトリ「Kaspersky Internet Security 2017\」を削除してください。また、関連するファイルを「スタート」メニュー内の「スタートアップ」ディレクトリから削除する必要があります。
既知のハッシュ
5b983981d565e0606c12b2e94231ac4226fd3b36dcd0ed40dee69d85d2c43b03
6fa2437f224d22127efc81da99f178c6c83408bc6316acae892d76f64879bbb1
3b88c248c18f6180a707cd4b8b5ad33a3482f1cc0405f9d2ff7b976de90c9889
d0dd1ac2b543f408382c138fe27e6192f2f5265426fb3260b16e2273c7fe0dbd
b93bb18f600a637d4d7ffe493e693335065418ea5b07f21dfe4faa78d1bbb418
3872d58bf4aa14680b9f58bfd1efae14fc31fa6605a9ae5ef85a3755309a4173
2acb8d091c2b362bab4f8167378b32c8e05db9b6ba0198fa7fe9abf31d2be16a
「次世代エンドポイント(EDR)のメリット」とは? Cybereasonの関連情報を公開中
CybereasonのEDR(Endpoint Detection and Response)プラットフォームが提供する7つのユニークな機能をご紹介するホワイトペーパーを公開しております。ぜひご活用ください。
https://www.cybereason.co.jp/product-documents/white-paper/1033/