ファイアウォールの新たなゼロデイ脆弱性が話題になっています。ファイアウォールやVPNについて不安をお持ちの場合は、Zscalerの特別オファーをご活用ください。

Zscalerのブログ

Zscalerの最新ブログ情報を受信

購読する
セキュリティリサーチ

Raccoonファミリーの最新世代「Raccoon Stealer v2」

image

はじめに

マルウェア ファミリーの一種であるRaccoonは、2019年初め頃からダーク ウェブでMalware-as-a-Serviceとして販売されてきました。2022年7月初め、このマルウェアの新しいバージョンがリリースされました。これは一般にRaccoon Stealer v2として知られており、主にC++で書かれていた以前のバージョンとは異なり、C言語で書かれています。

Raccoonは、ブラウザーからパスワード、Cookie、オートフィル データなどを盗むことができる強力な情報窃取型マルウェアです。Raccoonは、あらゆる暗号通貨ウォレットからの窃取にも対応しています。

このブログ記事では、ThreatLabzの調査を基に、exe形式のRaccoon Stealer v2に関する分析と、前バージョンとの主な違いについて解説していきます。なお、Raccoonの作成者たちは、DLL形式や他のPEファイルに埋め込んだ形式など、exe以外のバージョンの存在を公表しています。

 

詳細な分析

Raccoon v2は情報窃取型のマルウェアで、2022年7月3日に初めてその存在が確認されました。このマルウェアはC言語とアセンブリー言語で書かれています。

Raccoon v2でも、データ窃取のメカニズムは以前のバージョンで見られたものと同じですが、以下のような新たな特徴がいくつか確認されています。

  1. すべての文字列リテラルに対応するBase64およびRC4暗号化スキーム
  2. WinAPI関数の動的読み込み
  3. Telegram APIへの依存の廃止

コマンド&コントロール サーバーのリスト取得方法に大きな変化が確認されています。Raccoon v1は、Telegramネットワークを悪用してコマンド&コントロール サーバーのリストを取得していることが確認されましたが、Raccoon v2ではTelegramの使用が廃止されています。代わりに、脅威アクターが制御するサーバーのハードコードされたIPアドレスを使用して、次の段階のペイロード(主にDLL)がダウンロードされるコマンド&コントロール サーバーのリストを取得します。

 

ファイル情報

  • マルウェア名:Raccoon Stealer v2
  • 言語:C
  • ファイル形式:exe
  • ファイル サイズ:56832
  • MD5:0cfa58846e43dd67b6d9f29e97f6c53e
  • SHA1:19d9fbfd9b23d4bd435746a524443f1a962d42fa
  • SHA256:022432f770bf0e7c5260100fcde2ec7c49f68716751fd7d8b9e113bf06167e03

 

デバッグ情報

分析したファイルにはデバッグ データがそのまま含まれていました。デバッグ ヘッダーによると、コンパイル日時は、図1に示すように2022年5月26日木曜日の13時58分25秒(協定世界時)でした。

Image

図1:Raccoon v2のデバッグ ヘッダー

また、Raccoon Stealer v2では、本来の意図を隠すための方法にも変化が見られ、API名を静的に読み込むのではなく、動的に解決するメカニズムが使用されています。この情報窃取型マルウェアは、LoadLibraryWGetProcAddressを使用して必要な各関数を解決します(図2参照)。DLLとWinAPI関数の名前は、クリアー テキストとしてバイナリーに格納されます。

Image

図2:Raccoon v2の動的解決

読み込まれたDLLのリスト

  1. kernel32.dll
  2. Shlwapi.dll
  3. Ole32.dll
  4. WinInet.dll
  5. Advapi32.dll
  6. User32.dll
  7. Crypt32.dll
  8. Shell32.dll

Raccoon v1は、使用する関数に動的解決を採用していなかったため、実際に出回っていたものでは、検出メカニズムを回避するためにサンプルを圧縮している例がしばしば確認されていました。逆に、Raccoon v2は圧縮されずに配信されることが多くなっています。図3は、Racoon v1でインポートされたDLLを示しています。

 

Image

図3:Raccoon v1でインポートされたもの(圧縮されていない)

関数の解決が完了すると、Raccoon v2は文字列復号ルーチンを実行します。このルーチンはシンプルなもので、RC4で暗号化された文字列はBase64エンコードを使用してサンプルに格納されます。このサンプルは最初にBase64エンコードをデコードし、次に暗号化された文字列をキー「edinayarossiya」で復号します。また、このルーチンは関数string_decryption()のすべての文字列に対して実行されます。図4には「string_decryption」ルーチンが表示されています。

Image

図4:Raccoon v2の文字列復号ルーチン

Raccoon Stealerの前バージョンでは、ハード コードされたIPアドレス以外の文字列リテラルは暗号化されませんでしたが、Raccoon v2では、プレーンテキストのすべての文字列を暗号化することでこれを克服しています。Raccoon v1のプレーンテキストの文字列を図5にいくつか示します。

Image

図5:Raccoon v1のプレーン テキストの文字列

 

Raccoon v1の文字列のサンプルを手動で復号すると、プレーンテキスト形式で次の文字列(図6および7)が得られました。

Image

図6:Raccoon v2の復号された文字列

Image

図7:Raccoon v2の復号された文字列

コマンド&コントロールのIPアドレスはマルウェアに保存されて同じ復号ルーチンに従いますが、キーは異なります(59c9737264c0b3209d9193b8d6c127)。マルウェアがコンタクトしたIPアドレスは「hxxp://51(.)195(.)166(.)184/)」です。図8は復号ルーチンを示しています。

Image

図8:Raccoon v2のIPアドレス復号

 

 

コマンド&コントロールのIPアドレスの復号

暗号化されたコマンド&コントロールのIPアドレスは、CyberChefなどの公開ツールを使用して簡単に復号できます(図9)。

Image

図9:Raccoon v2のIPアドレス(CyberChefのユーティリティーを使用)

この技法はRaccoonの両バージョンで共通しています。図10に示すルーチンはRaccoon v1で採用されているのと同じものです。

 

Image

図10:IPアドレス復号前のRaccoon v1のセットアップのオーバーヘッド

関数の設定と文字列の復号のすべてのオーバーヘッドが完了すると、Raccoon v2はコマンド&コントロールのサーバーに接続して悪意のあるDLLをダウンロードして情報を窃取する前に、いくつかの確認を行います。

 

窃取前のオーバーヘッド

Raccoon v2では、中核機能の実行前に、決まった内容のチェックを行って実行環境を把握します。その際には、Raccoon v2がそのマシン上でまだ実行されていないことも確認します。さらに、Raccoon v2がNT権限/システムとして実行されるかどうかもチェックします。

Raccoon v2はミューテックスのハンドルを取得して、特定の値と一致するかどうかをチェックし、一致する場合には実行を継続します。

:8724643052

この技法によって、Raccoonのインスタンスが同時に2つ以上実行されないようにしています。図11は、Raccoon v2のミューテックスの確認と作成の手順を示しています。図12に示すのは、Raccoon v1で使用されている同様の手順です。

Image

図11:Raccoon v2のミューテックス チェック

 

Image

図12:Raccoon v1のミューテックス チェック

 

図13に表示されているように、プロセス トークンを取得し「S-1-5-18」のテキストと照合することで、Raccoon v2がSYSTEMユーザーとして実行されているかどうかを判断します。

Image

図13:Raccoon v2によるプロセス トークンの列挙

 

SYSTEMユーザーとして実行している場合は、fun_CreateToolhelp32Snapshotを活用して、実行中のすべてのプロセスの列挙を行います。SYSTEMユーザーとして実行されていない場合は、列挙なしで先に進みます。図14が示すのは「enumerate_processes()」関数の呼び出し、図15が示すのはRaccoon v2によるプロセスの反復処理です。

Image

図14:Raccoon v2によるプロセスの列挙

 

Image

図15:Raccoon v2によるプロセス構造の反復

 

 

ホストのフィンガープリントの取得

Raccoon v2は、実行されている環境を認識すると、ホストのフィンガープリントの取得を開始します。以下のような関数を使用します。

  1. RegQueryValueExW (マシンID取得用)
  2. GetUserNameW

Raccoon v2は、RegQueryKeyExWおよびRegQueryValueExW関数を使用して、レジストリー キー「SOFTWAREMicrosoftCryptography」からマシンIDを取得します(図16)。また、Raccoon v2は、GetUserNameW関数を使用してユーザー名を取得します(図17)。

Image

図16:Raccoon v2によるマシンIDの取得

Image

図17:Raccoon v2によるユーザー名の取得

 

Image

図18:Raccoon v2のユーザー名のバッファー

 

こうした処理すべての実行後、Raccoon v2はマシンIDユーザー名などの情報を列挙し、そのデータをリモートのコマンド&コントロール サーバーに送信します。

これを行うために、マルウェアはchar文字列を作成してこれらの値の追加を開始します。まずマシンIDとユーザー名を追加します。図19は、バッファーに組み込まれたペイロードです。

Image

図19:Raccoon v2によるフィンガープリント取得のペイロード

 

次に、RC4暗号化キーであるconfigIdを生成して追加します。

machineId=<MachineGuid>|<UserName>&configId=<RC4 key>

 

コマンド&コントロールとの通信

コマンド&コントロールとの通信は、プレーンテキストのHTTPプロトコルを介して行われ、前の過程で復号されたIPアドレスhxxp://51(.)195(.)166(.)184/はコマンド&コントロールの通信に使用されます。

Raccoon v2は、前の過程で復号されたコマンド&コントロールのIPアドレスのリスト(local_3cに保存)にアクセスします。Raccoon v2はコマンド&コントロールのIPアドレスを1つしか持たないため、図20の通り、POSTリクエストの送信先は1件のみとなります。

Image

図20:Raccoon v2のコマンド&コントロールとの通信

 

コマンド&コントロールのURL

Image

図21:Raccoon v2のバッファー内のURL

 

リクエスト ヘッダー

Image

図22:Raccoon v2のリクエスト ヘッダー

 

リクエストが行われるとRaccoon v2はコンテンツ本文の長さがゼロかどうかを確認します。コマンド&コントロールからコンテンツが受信されない場合や、コンテンツ本文の長さがゼロの場合、Raccoon v2は動作を終了します。このチェックが行われるのは、このマルウェアのデータ窃取メカニズムでは、コマンド&コントロールからの応答に、抜き取ったデータの送信先となるIPアドレスのリストが必要となるためです。図23は、この条件と「ExitProcess()」関数の呼び出しを示しています。

Image

図23:Raccoon v2による応答コンテンツの検証

 

Telegram Botへの依存の廃止

Raccoon v1はTelegram Bot APIの説明ページに依存して、コマンド&コントロールのIPアドレスを取得し、接続を確立していました。Raccoon v2では、バイナリー内のIPアドレスをハードコードすることで、このタスクを実行するようになっています。Raccoon v2は、ハードコードされた5件のIPアドレスを使用および反復処理します。

 

データの窃取

Raccoon v2はコマンド&コントロール サーバーからの応答に応じて、必要なDLLをダウンロードして次のアクションを決定します。

このブログの執筆時点では、このコマンド&コントロールのIPは機能を停止しているため、ホストへのトラフィックの分析は不可能です。追加のペイロードをどこからダウンロードするかや、それ以後の通信にどのIPアドレスを使用するかといった情報をコマンド&コントロール サーバーが提供していることは、以前ThreatLabzで確認済みです。

 

Image

図24:Raccoon v2による抽出されたIPアドレスへのpingの実行

 

grepされたDLL

Image

図25:ダウンロードされたRaccoon v2のDLL

 

Raccoon v2は、SHGetFolderPathWへのWINAPI呼び出しを使用して、C:\Users\<User>\AppDataへのパスを取得し、そこに「Local」を追加して、コマンド&コントロールに送信する前に盗んだ情報を保存するためのパスとして使用します。

 

Image

図26:Raccoon v2のバッファー内のストレージ パス

 

IoC (Indicator of Compromise、侵害指標)

分析したRaccoon v2のサンプルがコンタクトしたIP

55(.)195(.)166(.)184

他のサンプルでC2として機能するその他のIPのリストはこちらをご覧ください。

ダウンロードされたDLL

  1. nss3.dll
  2. sqlite3.dll
  3. GdiPlus.dll
  4. Gdi32.dll

Raccoon v2で使用されるパス

  1. C:\Users\<USERNAME>\AppData\Local

使用が確認されたRaccoon v2の他のサンプル

  1. 0123b26df3c79bac0a3fda79072e36c159cfd1824ae3fd4b7f9dea9bda9c7909
  2. 022432f770bf0e7c5260100fcde2ec7c49f68716751fd7d8b9e113bf06167e03
  3. 048c0113233ddc1250c269c74c9c9b8e9ad3e4dae3533ff0412d02b06bdf4059
  4. 0c722728ca1a996bbb83455332fa27018158cef21ad35dc057191a0353960256
  5. 2106b6f94cebb55b1d55eb4b91fa83aef051c8866c54bb75ea4fd304711c4dfc
  6. 263c18c86071d085c69f2096460c6b418ae414d3ea92c0c2e75ef7cb47bbe693
  7. 27e02b973771d43531c97eb5d3fb662f9247e85c4135fe4c030587a8dea72577
  8. 2911be45ad496dd1945f95c47b7f7738ad03849329fcec9c464dfaeb5081f67e
  9. 47f3c8bf3329c2ef862cf12567849555b17b930c8d7c0d571f4e112dae1453b1
  10. 516c81438ac269de2b632fb1c59f4e36c3d714e0929a969ec971430d2d63ac4e
  11. 5d66919291b68ab8563deedf8d5575fd91460d1adfbd12dba292262a764a5c99
  12. 62049575053b432e93b176da7afcbe49387111b3a3d927b06c5b251ea82e5975
  13. 7299026b22e61b0f9765eb63e42253f7e5d6ec4657008ea60aad220bbc7e2269
  14. 7322fbc16e20a7ef2a3188638014a053c6948d9e34ecd42cb9771bdcd0f82db0
  15. 960ce3cc26c8313b0fe41197e2aff5533f5f3efb1ba2970190779bc9a07bea63
  16. 99f510990f240215e24ef4dd1d22d485bf8c79f8ef3e963c4787a8eb6bf0b9ac
  17. 9ee50e94a731872a74f47780317850ae2b9fae9d6c53a957ed7187173feb4f42
  18. bd8c1068561d366831e5712c2d58aecb21e2dbc2ae7c76102da6b00ea15e259e
  19. c6e669806594be6ab9b46434f196a61418484ba1eda3496789840bec0dff119a
  20. e309a7a942d390801e8fedc129c6e3c34e44aae3d1aced1d723bc531730b08f5
  21. f7b1aaae018d5287444990606fc43a0f2deb4ac0c7b2712cc28331781d43ae27

 

まとめ

Malware-as-a-Serviceとして販売されているRaccoon Stealerは、ここ数年間でよく使用されるようになってきており、このマルウェアによるインシデントが一定数確認されています。また、作成者はこのマルウェア ファミリーに常に新機能を追加しています。Raccoon v2は、2019年の最初のリリースに続く、このマルウェア ファミリーの2つ目のメジャー リリースです。このような状況を踏まえると、Raccoon Stealerが今後も進化していき、組織にとって脅威となり続ける可能性が考えられます。

 

Zscalerの対応

このような攻撃で見られるペイロードには、高度な脅威シグネチャと当社の高度なクラウドサンドボックスによって確実に対応します。

 

Image

図27:Zscalerのサンドボックスによる検出

 

Zscalerの多層クラウド セキュリティ プラットフォームは、さまざまなレベルで指標を検出します。詳細は以下のページでご確認ください。

Win32.PWS.Raccoon (英語)

form submtited
お読みいただきありがとうございました

このブログは役に立ちましたか?

dots pattern

Zscalerの最新ブログ情報を受信

このフォームを送信することで、Zscalerのプライバシー ポリシーに同意したものとみなされます。