ナビゲーションをスキップする
BlackBerry ThreatVector ブログ

データを狙う ToxicEye RAT

本ブログ記事は、2021年5月20日に米国で公開されたBlackBerryのブログ記事の抄訳版です。原文はこちらからご覧頂けます。

 

概要

ToxicEye と呼ばれる RAT が出現したのは 2020 年の半ばのことです。データの抜き取り、キーロギング、スパイウェアの機能があります。そのソースコードは、ウクライナ在住の LimerBoy(別名: Imperator Vladimir)が GitHub で公開しています。

https://github.com/LimerBoy/ToxicEye

このマルウェアは Telegram というメッセージングシステムをコマンドアンドコントロール(C2)サーバーとして利用し、ホスト名、ユーザー名、パスワード、インターネット閲覧履歴、デスクトップのデータ、ブックマーク、クッキー、ウェブブラウザーに保存されているクレジットカードのデータなど、利用価値のあるデータを被害者のローカルマシンから盗みます。キーロギングやマイクからの盗聴および録音も可能です。盗まれたデータは被害者のマシンから攻撃者の Telegram アカウントにアップロードされます。

弊社で解析したサンプルには、仮想環境で実行されているかどうか、およびアンチウイルス製品がインストールされているかどうかを確認する耐解析メカニズムが含まれていました。

 

オペレーティングシステム

 

リスクと影響

 

技術的解析

ToxicEye は、C++ でコーディングされた 112 KB という小さな .NET の実行可能ファイルです。ファイル自体は難読化もパッキングもされていません。

図 1:コンパイル情報

ファイルのデバッグタイムスタンプを確認すると、次のような ToxicEye の GitHub リポジトリとの関連を示唆するデバッグ用 PDB パスがあります。  

図 2:デバッグタイムスタンプ情報

静的解析を行うと、ファイル中の次の文字列からキーロギングとスパイウェアの機能があることが分かります。

図 3:注目すべき文字列

各サンプルには、攻撃者の Telegram トークンと Telegram チャット ID が埋め込まれています。これは攻撃者がコンパイル時に追加したものです。

図 4:攻撃者の Telegram トークンと Telegram チャット ID

サンプルには、仮想環境で実行されているかどうかを確認する耐分析解析メカニズムが組み込まれています。まず VMware と VirtualBox の存在を確認します。

図 5:仮想環境の確認

Sandboxie で実行されているかどうかも確認します。

図 6:Sandboxie の確認

次にアンチウイルス製品の有無を確認します。

図 7:アンチウイルスの確認

実行されると、「C:\Users\ToxicEye\」にディレクトリを作り、そこに「rat.exe」という名前で自身のコピーを作成します。

永続性を確保するため、「Chrome Update」というタスクを作成してスケジューラに登録します。

図 8:スケジューラのタスクの作成

「AutoStealer」クラスを使って「steal()」関数を呼び出します。ここからスレッドを起動し、インターネットブラウザーから各種データを盗み出すクラスを個々に呼び出します。

図 9:AutoStealer クラスの内容

ToxicEyeは次のブラウザーを標的とします。

図 10:影響を受けるブラウザー

パスワードを盗むために、各ブラウザーで「\User Data\Default\Login Data」に移動します。ホスト名、ユーザー名、パスワードを取得して、「passwords.txt」に保存します。「UploadFile」という関数を呼び出し、「passwords.txt」ファイルを攻撃者の Telegram アカウントにチャット ID - 1550568100 を使ってアップロードします。

図 11:UploadFile 関数

 

データの抜き取り

クレジットカードのデータを盗むために、「\User Data\Default\Web data\」に移動します。次に各ブラウザーを巡回して、クレジットカードの番号、氏名、有効期限を探し出します。この情報をすべて「credit_cards.txt」に保存し、攻撃者の Telegram アカウントにアップロードします。

ユーザーのウェブ履歴を取得するために、各ブラウザーの「User Data\Default\History」を巡回します。そこで、URL、タイトル、閲覧回数、閲覧日時を探し出します。結果を「history.txt」に保存し、攻撃者の Telegram アカウントにアップロードします。

ブックマークについても同様のことを行うため、「User Data\Default\Bookmarks」に移動し、URL、名前、作成日時を取得します。このすべてを「bookmarks.txt」に保存し、攻撃者の Telegram アカウントにアップロードします。

「User Data\Default\Cookies」に移動し、各ブラウザーを巡回しながら、クッキーの値、ホスト、名前、パス、有効期限、Secure フラグを取得します。このデータをすべて「cookies.txt」に保存し、攻撃者の Telegram にアップロードします。

さらに、被害者のデスクトップのコピーを作成して「desktop.zip」に圧縮し、攻撃者のアカウントにアップロードして、被害者のマシンから削除します。

次に、FileZilla のインストールの有無を確認します。存在しない場合、FileZillaがインストールされていないというメッセージ(「FileZilla is not installed」)を攻撃者に送ります。FileZilla が存在する場合は、FileZilla のログイン認証情報を取得するために「sitemanager.xml」と「recentserver.xml」の有無を確認します。確認できたら、認証情報を「filezilla.txt」に保存し、攻撃者にアップロードします。

次に、 Telegram セッションの有無を確認します。見つかった場合は「\Telegram Desktop\tdata\」に移動して、その内容をzipに圧縮し、攻撃者のアカウントにアップロードしてから、被害者のマシンからそのzipファイルをを削除します。

Discord tokenを取得するため、「\discord\Local Storage\leveldb\path」の有無を確認し、文字列「token」を含む LDB ファイルを探します。見つかった場合は、被害者の Discord トークンが入ったメッセージを攻撃者に送ります。

次に、Steam のプロセスの有無を確認します。このプロセスがなかった場合、Steam のプロセスが実行されていないというメッセージを攻撃者に送ります。このプロセスがあった場合は、「ssfn*」ファイル(Steam の認証ファイル)、「config\loginusers.*」ファイル、「config\config.*」ファイルを探し、これらのファイルをまとめて「steam.zip」に圧縮します。そして、この ZIP ファイルを攻撃者の Telegram アカウントにアップロードします。アップロードしたら、被害者のマシンから削除します。

その他にも、このマルウェアにはさまざまな機能があります。

  • 権限昇格
  • 自身のアンインストール
  • autorun のインストールとアンインストール
  • ホストの列挙による CPU 名と GPU 名の取得
  • RAM 容量の割り出し
  • HWID(ハードウェア ID)、OS バージョン、アーキテクチャの取得
  • インターネット接続の確認
  • 他のファイルのダウンロード(例: CommandCam.exe - コマンドラインのウェブカメラ画像取り込みツール)
  • マイクを使った盗聴と録音
  • キーロギングの実行

最後は、ブルースクリーンエラー(BSOD)をマシンに表示します。

図 12:ToxicEye が表示する「ブルースクリーンエラー」

 

YARA ルール

以下の YARA ルールは、この記事で説明した脅威を捕捉するために BlackBerry の脅威リサーチチームが作成しました。

import "pe"

rule Mal_Infostealer_Win32_ToxicEye
{
    meta:
        description = "Detects W32 ToxicEye infostealer"
        author = "Blackberry Threat Research team "
        date = "2021-23-04"

    strings:        

        //ToxicEye-master\TelegramRAT\TelegramRAT\obj\Release\TelegramRAT.pdb
        $x1 = {546f7869634579652d6d61737465725c54656c656772616d5241545c54656c656772616d5241545c6f626a5c52656c656173655c54656c656772616d5241542e706462}
        //OVERWRITEBOOTSECTOR_CONFIRM
        $x2 = {4f005600450052005700520049005400450042004f004f00540053004500430054004f0052005f0043004f004e004600490052004d00}
        //FORKBOMB
        $x3 = {46004f0052004b0042004f004d004200}
        //SPYING:
        $x4 = {53005000590049004e0047003a00}
        ///Webcam <camera> <delay>
        $x5 = {2f00570065006200630061006d0020003c00630061006d006500720061003e0020003c00640065006c00610079003e00}
        ///Keylogger
        $x6 = {2f004b00650079006c006f006700670065007200}
        ///ClipboardSet <text>
        $x7 = {2f0043006c006900700062006f0061007200640053006500740020003c0074006500780074003e00}
        ///ProcessKill <process>
        $x8 = {2f00500072006f0063006500730073004b0069006c006c0020003c00700072006f0063006500730073003e00}
        //STEALER:
        $x9 = {53005400450041004c00450052003a00}
        ///GetPasswords
        $x10 = {2f00470065007400500061007300730077006f00720064007300}
        ///GetCreditCards
        $x11 = {2f0047006500740043007200650064006900740043006100720064007300}
        ///GetHistory
        $x12 = {2f0047006500740048006900730074006f0072007900}
        ///GetBookmarks
        $x13 = {2f0047006500740042006f006f006b006d00610072006b007300}
        ///GetCookies
        $x14 = {2f0047006500740043006f006f006b00690065007300}
        ///GetDesktop
        $x15 = {2f004700650074004400650073006b0074006f007000}
        ///GetFileZilla
        $x16 = {2f00470065007400460069006c0065005a0069006c006c006100}
        ///GetDiscord
        $x17 = {2f0047006500740044006900730063006f0072006400}
        ///GetTelegram
        $x18 = {2f00470065007400540065006c0065006700720061006d00}
        ///GetSteam
        $x19 = {2f0047006500740053007400650061006d00}
        ///DownloadFile <file/dir>
        $x20 = {2f0044006f0077006e006c006f0061006400460069006c00650020003c00660069006c0065002f006400690072003e00}
        ///RunFileAdmin <file>
        $x21 = {2f00520075006e00460069006c006500410064006d0069006e0020003c00660069006c0065003e00}
        ///Shell <command>
        $x22 = {2f005300680065006c006c0020003c0063006f006d006d0061006e0064003e00}
        ///BlockInput <seconds>
        $x23 = {2f0042006c006f0063006b0049006e0070007500740020003c007300650063006f006e00640073003e00}
        ///Monitor <on/off/standby>
        $x24 = {2f004d006f006e00690074006f00720020003c006f006e002f006f00660066002f007300740061006e006400620079003e00}
        ///EncryptFileSystem <password>
        $x25 = {2f0045006e0063007200790070007400460069006c006500530079007300740065006d0020003c00700061007300730077006f00720064003e00}
        ///DecryptFileSystem <password>
        $x26 = {2f004400650063007200790070007400460069006c006500530079007300740065006d0020003c00700061007300730077006f00720064003e00}
        ///BSoD
        $x27 = {2f00420053006f004400}
        ///Shutdown
        $x28 = {2f00530068007500740064006f0077006e00}
        //Installed antivirus:
        $x29 = {49006e007300740061006c006c0065006400200061006e0074006900760069007200750073003a00}
        //VirtualBox:
        $x30 = {5600690072007400750061006c0042006f0078003a00}

     condition:
        uint16(0) == 0x5a4d and
        pe.imphash() == "f34d5f2d4577ed6d9ceec516c1f5a744" and
        pe.number_of_sections == 3 and
        pe.section_index(".text") == 0 and
        pe.section_index(".rsrc") == 1 and
        pe.section_index(".reloc") == 2 and        

        filesize < 180KB and
        all of ($x*)
}

 

侵入の痕跡(IOC)

作成されるファイル:

  • C:\Users\ToxicEye\rat.exe 

ミューテックス:

  • ADMIN:[a-z0-9]{32}
  • for example: ADMIN:196cf8be5daecabfe059de4082d7954e

要注意プロセス:

  • taskmgr, processhacker, netstat, netmon, tcpview, wireshark, filemon, regmon, cain

スケジューラのタスクの作成:

  • "C:\Windows\System32\schtasks.exe" /create /f /sc ONLOGON /RL HIGHEST /tn "Chrome Update" /tr "C:\Users\ToxicEye\rat.exe"

 

BlackBerryによるサポート

お客さまが ToxicEye のような脅威にさらされているなら、BlackBerry にお任せください。現在弊社の製品を利用していなくても問題ありません。

BlackBerry のインシデント対応チーム は、世界的に活躍するコンサルタントから構成され、ランサムウェアや持続的標的型攻撃(APT)など、さまざまなインシデントへの対応と封じ込めのサービスを専門としています。

弊社はグローバルコンサルティングチームを常に待機させており、ご希望があれば、24 時間サポートと現地支援を提供できます。次の URL からご相談ください。  https://www.blackberry.com/ja/jp/forms/enterprise/contact-us

 

 

・お問い合わせ:https://www.blackberry.com/ja/jp/forms/enterprise/contact-us

・イベント/セミナー情報:https://www.blackberry.com/ja/jp/events/jp-events-tradeshows

・BlackBerry Japan:https://www.blackberry.com/ja/jp

The BlackBerry Research and Intelligence Team

About The BlackBerry Research and Intelligence Team

BlackBerry の Research and Intelligence Team は、新たに生じている脅威と持続的な脅威を検証し、セキュリティ担当者とその所属企業のために、インテリジェンス解析を提供しています。