Golangを使用した新たなインフォスティーラー「Skuld」

2023年5月、Trellix Advanced Research Centerは、世界中のシステムを危険にさらす新たなGolangスティーラー、通称Skuldを発見しました。これは、他のセキュリティ研究者も注目していたスティーラーでした。

Goとして知られるGolangがマルウェア開発に使用されることは、他のプログラミング言語と比較するとまだ稀です。しかし、Golangは、シンプルで効率的であり、クロスプラットフォーム互換性があるため、マルウェア作成者が幅広いオペレーティングシステムをターゲットとし、潜在的な被害者を広げることができるため、近年、大きな人気を集めています。さらに、Golangはコンパイル型であるため、マルウェア作成者は、解析やリバースエンジニアリングがより困難なバイナリ実行ファイルを作成することができます。このため、セキュリティ研究者や従来のマルウェア対策ソリューションでは、これらの脅威を効果的に検出・軽減することが難しくなっています。

この新種のマルウェアは、被害者から機密情報を盗み出そうとします。このタスクを達成するために、DiscordやWebブラウザなどのアプリケーションに保存されているデータ、システムからの情報、被害者のフォルダに保存されているファイルなどを検索します。一部のサンプルには、暗号通貨資産を盗むためのモジュールも含まれていますが、これはまだ開発中であると考えられます。

Deathinedと名付けられた開発者は、いくつかのオープンソースプロジェクトやマルウェアサンプルからインスピレーションを得て、その機能をGolangに移植してSkuldを構築しました。また、作者は複数のソーシャルメディアアカウントを作成しているようで、今後、マルウェア事業の推進に利用される可能性が高いと推測されます。

以下のスクリーンショットは、このマルウェアファミリーが世界規模で与える影響を明らかにしています。これらの検出は、マルウェアの発生以降、4月下旬のものです。

図 1 Trellix ATLAS における 4 月以降の Skuld の検出。図1 Trellix ATLASで4月以降に検出されたSkuld


テクニカル分析

発見されたSkuldサンプルはGolang 1.20.3で書かれており、さまざまなサポートタスクを完了するために多数のライブラリが使用されています。その中には、一部の構造が破損しており、そのため逆アセンブラでは適切に検出されないことを示唆するような修正も施されているものがあります。そのため、これらのサンプルを分析する前に、分析を支援するための作業を行う必要があります。そのための優れたツールが、Mandiant社が開発したGoReSymで、Golangベースのサンプルからこれらの構造を再構築し、情報を抽出することができます。

次のセクションでは、コードの抜粋とともに、Skuldスティーラーを詳細に分析します。以下の表は、分析されたサンプルのハッシュとその他の情報を示しています。

MD5 8df1e0135851d1a0b66fbaa9be282009
SHA1 1b6523dc8dea8e2f29e8d55819ac75b94da9acbf
SHA256 d11efad7ebe520ccc9f682003d76ebfabd5d18b746a801fefbf04317f7ae7505
コンパイラ Go 1.20.3
ファイルサイズ 11192320バイト(10.6MB)

表 1 Skuld分析参照サンプルの詳細

初期化

起動時に、stealerはいくつかのパラメータ、パス、正規表現を内部の文字列マップ構造に読み込み、後に異なるサポートモジュールによって使用されます。

図 2 Google Chrome ブラウザのパスを設定する Skuld。
図2 Google Chromeのブラウザパスを設定するSkuld

実行環境をセットアップした後、サンプルはバイナリにバグがあるとユーザーを騙すために偽のエラーメッセージを表示します。

図 3 Skuld の実行時に表示される偽のエラー。
図3 Skuld実行時に表示される偽エラー

次に、異なるモジュールを実行し、被害者のシステムから情報を盗みます。

分析防止

サンプルは盗む前に、環境のさまざまなプロパティを通じて、セキュリティ製品または研究者によって分析されているかどうかを確認します。バイナリがこの分析を確認すると、実行は終了します。

図 4 Skuld が使用する分析防止手法。 いずれかのサンプルが分析中であることを検出すると、実行は停止します。

図4 Skuld が使用する分析防止手法。いずれかのサンプルが分析中であることを検出すると、実行は停止。

ブラックリストの使用法

    • ユーザー名
    • PC名
    • ハードウェアID
    • パブリックIPアドレス

ブラックリストの内容は、付録E-Skuld listsに記載されています。

仮想マシンのチェック

サンプルの解析技術を検出するためのもう一つの一般的なアプローチは、ターゲットシステムが仮想マシンであるかどうかをチェックすることです。Skuldは、このチェックを行うために3つの異なるテクニックを使用します。

最初の技法は、システムの画面解像度が200×200ピクセル以上であるかどうかをチェックします。そうでない場合、サンプルは仮想環境で実行されていると想定します。

2つ目は、RAMの合計が2,000,000,000バイト(約1.86GB)以上かどうかをチェックする方法です。

図 5 このサンプルでは、​​RAM が 1.86 GB を超えているかどうかをチェックします。
図5 このサンプルでは、​​RAM が 1.86 GB を超えているかどうかをチェック

3つ目の方法は、システムのビデオおよびディスク情報に関連するさまざまなレジストリキーをチェックします(以下にリストします)。その中にVMwareやVirtual Boxに関連する情報が含まれている場合、アプリケーションは終了します。

    • HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\DriverDesc
    • HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\ProviderNameKey
    • HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum\0

図 6 システムが仮想化されているかどうかを確認するためのレジストリ チェック。図6 システムが仮想化されているかどうかを確認するためのレジストリチェック

プロセスチェック

Skuldが実行するチェックの3番目と最後のブロックは、システムの実行中のプロセスを取得し、ブロックリストと比較することです。この場合、ブロックリストと一致するプロセスがあれば、アプリケーションは自己終了する代わりに、一致したプロセスを強制終了します。

情報の盗用

Skuldが本物の環境であると判断すると、アプリケーションやシステムから機密情報を盗み出すようになります。

Discord情報

Skuldは、ソーシャルプラットフォームであるDiscordから情報を盗むためにいくつかの方法を用います。まず最初に試みるのは、「discord_desktop_core」モジュールにいくつかのJavaScriptコードを注入することです。しかし、この攻撃を成功させるためには、サンプルは2つのオープンソースのセキュリティアプリケーション、Better DiscordとDiscord Token Protectorを回避する必要があります。

Better Discordは、他の機能の中でも特にセキュリティを強化したDiscordクライアントです。一方、Discord Token Protectorは、悪意のあるアプリケーションがDiscordのセキュリティトークンを盗むのを防ぐためにインストールすることができるプラグインです。

Better Discordのセキュリティ機能を回避するため、サンプルはファイル「%APPDATA%\BetterDiscord\data\betterdiscord.asar」を破損し、文字列 「api/webhooks」を文字列 「ByDeathined」と置き換えています。

図 7 Better Discord のセキュリティ機能をバイパスするための「%APPDATA%\BetterDiscord\data\betterdiscord.asar」ファイルの変更。

図7 Better Discord のセキュリティ機能をバイパスするための「%APPDATA%\BetterDiscord\data\betterdiscord.asar」ファイルの変更

Discord Token Protectorのメカニズムを回避するには、別のアプローチが必要です。この場合、バイナリは以下のファイルを発見して削除します:

    • %APPDATA%\DiscordTokenProtector\DiscordTokenProtector.exe
    • %APPDATA%\DiscordTokenProtector\ProtectionPayload.dll
    • %APPDATA%\DiscordTokenProtector\secure.dat

図 8 Discord Token Protector セキュリティ機能をバイパスするためのファイルの削除。図8 Discord Token Protectorセキュリティ機能をバイパスするためのファイルの削除

そして、「%APPDATA%\DiscordTokenProtector\config.json」ファイルの内容を変更し、Discordの自動起動機能と整合性チェックを無効化し、攻撃者がアプリケーション内にコードを注入できるようにします。変更された変数とその値は、以下のスニペットで確認することができます。

auto_start = False
auto_start_discord = False
integrity = False
integrity_allowbetterdiscord = False
integrity_checkexecutable = False
integrity_checkhash = False
integrity_checkmodule = False
integrity_checkscripts = False
integrity_checkresource = False
integrity_redownloadhashes = False
iterations_iv = 364
iterations_key = 457
version = 69420

図 9 Discord Token Protector セキュリティ機能をバイパスするための「%APPDATA%\DiscordTokenProtector\config.json」ファイルの変更。
図9 Discord Token Protector セキュリティ機能をバイパスするための「%APPDATA%\DiscordTokenProtector\config.json」ファイルの変更。

Discordの保護を無効にすることに成功した後、バイナリはDiscordにJavaScriptファイルをダウンロードし、インジェクトします。しかし、今回のサンプルにはURLが含まれておらず、我々が発見した他の亜種では、Empyrean stealerのJavaScriptバージョンをダウンロードして注入するためのURLが含まれています。

コードを注入した後、Skuldはユーザーの2要素認証コードの代わりとなるDiscordバックアップコードを盗み出そうとします。これは、このようなセキュリティメカニズムを備えたアカウントの盗用プロセスを完了させるために必要なものです。

そして最後に、入手したすべてのデータを流出させます。

ブラウザ情報

Skuldスティラーマルウェアの次のターゲットは、ChromiumおよびGeckoベースのブラウザ(ターゲットとなるブラウザの完全なリストは、付録E – Skuldリストにあります)が保存する情報であり、以下のように分類されることができます。

    • ローカルデータ
    • ログインデータ
    • Cookies
    • 履歴
    • ダウンロード
    • セッション トークン (Chromium ベースのブラウザとのみ互換性がある)

図 10 Skuld が使用する分析防止手法。 いずれかのサンプルが分析中であることを検出すると、実行は停止します。
図10 Gecko ベースのブラウザから盗む情報

情報を取得すると、「browsers.zip」というファイルにアーカイブされて圧縮され、攻撃者に送信されます。

システムインフォメーション

Skuldスティーラーはシステムからスクリーンショットを撮り、以下に示す情報を抽出します。該当する場合は、コマンドラインも含まれています。

    • ホスト名
    • ユーザー名

図 11 ホスト名とユーザー名の検出。
図11 ホスト名とユーザー名の検出

    • ハードウェアID

      C:\> wmic csproduct get uuid
    • CPU情報
    • RAM情報
    • GPU情報

図 12 システム情報の検出。
図12 システム情報の検出

    • Macアドレス
    • パブリックIPアドレス
    • IPアドレスの国

図 13 パブリック IP および MAC アドレスの検出。
図13 パブリック IP および MAC アドレスの検出

  • オペレーティングシステムのバージョン

    C:\> Get-ItemPropertyValue -Path ‘HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion’ -Name ProductName
  • Windowsライセンス キー

    C:\> Get-ItemPropertyValue -Path ‘HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform’ -Name BackupProductKeyDefault

すべての情報が収集されると、ファイルとして攻撃者に送信されます。

システムファイル

サンプルには、初期化部分で設定された以下の値を含む、事前定義されたパスのリストに格納されたファイルを対象とするファイルスティーラーモジュールが含まれています:

  • %USERPROFILE%\Desktop
  • %USERPROFILE%\Documents
  • %USERPROFILE%\Downloads
  • %USERPROFILE%\Pictures
  • %USERPROFILE%\Music
  • %USERPROFILE%\Videos
  • %USERPROFILE%\OneDrive

スティーラーは、これらのパスに格納されているファイルを圧縮されたZIPアーカイブと取得したファイルのリストとして流出させます。

この機能は Skuld スティーラーには珍しく、実装されているサンプルは2つだけでした。

クリッパー

スティーラーのもう1つの機能は、暗号通貨ウォレットのコピーを検出したときにユーザーのクリップボードを変更することです。この種の攻撃は、ユーザーがアカウントに送金する際に、送金先のウォレットを攻撃者のウォレットと交換することで、ユーザーからお金を盗もうとします。

現在、Skuldは以下の暗号通貨をサポートしています。 ビットコイン(BTC)、イーサリアム(ETH)、モネロ(MON)、ライトコイン(LTC)、チャ(XCH)、ポップチェーン(PCH)、コインチェイス(CCH)、カルダノ(ADA)、ダッシュ(DASH)です。ただし、ビットコインだけは現在、よく知られた2020年のTwitterハッキングで使われたものと同じウォレットbc1qxy2kgdygjrsqtzq2n0yrf2493p83kfjhx0wlhを使って実装されており、このBTCアドレスがプレースホルダーかアナリストを混乱させるための偽旗だと思われます。

図 14 データ抽出に使用される Discord Webhook。
図 14 クリッパー機能 ビットコインウォレットの設定

ビットコインクリッパーのみが実装されていること、盗まれたウォレットがもともと攻撃者のものではないことから、この機能はまだ開発中であることを示唆しています。

エクスフィルトレーション

モジュールの実行が完了すると、SkuldはDiscord webhookまたはGofileアップロードサービスの2つの方法を使用して、盗んだ情報を攻撃者に送信します。

Discord Webhook

Skuldは、DiscordのWebhookを使用して、攻撃者が制御するチャットに情報をアップロードします。この方法を使用すると、バイナリはチャットボットであるかのようにメッセージを公開したり、ファイルをアップロードしたりすることができます。

図 15 データ抽出に使用される Discord Webhook。
図15 データ流出に使用されるDiscordのWebhook

メッセージを送信するには、サンプルでいくつかの列挙型パラメーターを設定する必要があります。

  • username: Skuld
  • avatar_url: https://cdn.albumoftheyear.org/user/shakabaiano_1674282487.jpg
  • footer.text: Skuld – Made by Deathined
  • footer.icon_url: https://avatars.githubusercontent.com/u/131692814?v=4

図 16 サンプルの Discord アバターを設定するために https://cdn.albumoftheyear.org/user/shakabaiano_1674282487.jpg からダウンロードした画像。
図16 サンプルのDiscordアバターを設定するために、https://cdn.albumoftheyear.org/user/shakabaiano_1674282487.jpg からダウンロードした画像

現在、これはすべてのSkuldサンプルの中で唯一のスタンドアロンの抽出方法です。

Gofile

Skuldがデータを流出させるために採用したもう一つのウェブサービスはGofileで、ファイルスティーラーモジュールが盗んだファイルを圧縮したZIPアーカイブでアップロードするために使用します。

ファイルを送信するには、サンプルはまずURL「https://api.gofile[.]io/getServer」に対してHTTP GETリクエストを作成します。これにより、文字列「store」と1から10までの数字で構成されるサーバー名が返されます。これは、後で別のHTTPリクエストでファイルをアップロードするために使用されますまでが、この場合はPOSTリクエストで、 “https://[server_name].gofile[.]io/uploadFile”となります。

図 17 サンプルの Discord アバターを設定するために https://cdn.albumoftheyear.org/user/shakabaiano_1674282487.jpg からダウンロードした画像。
図17 データ流出に使用されたGofileウェブサービス。

ファイルがアップロードされた後、前述のDiscordのWebhook機能を使って、データを盗むための参照URLが攻撃者に送信されます。

Gofileの使用は、分析したSkuldサンプルでは珍しく、ファイルスティーラーモジュールの場合と同様に、サンプルのうち2つしか実装されていませんでした。


Golangの開発者であるDeathined

Skuldの背後にある攻撃者はDeathined とて知られており、私たちの調査結果によると、競争の激しい窃盗業界でこのビジネスを始めた開発者であるようです。

Deathinedの追跡

最初に見つけたのは、同じエイリアスを持つユーザーのGitHubアカウントでした(https://github.com/deathined)。さらに重要なのは、そのアバター画像のURLが、SkuldのDiscord webhookフッターにある「icon_url」と同じものであることです(https://avatars.githubusercontent.com/u/131692814?v=4)。見ての通り、画像は 「avatar_url」フィールドと同じものですが、配色が異なっています。

図 18 死んだ Github アカウント。図18 Deathined Githubのアカウント

DeathinedのGitHubには、Golangでのプログラムする方法を知っていると記載されており、Skuldのサンプルで確認されたものと一致します。このアカウントは2023年4月に作成され、この記事を書いている時点のわずか3週間前であり、攻撃者の簡単な説明をするもの以外にリポジトリは含まれていません。他にある情報は、Trotzzlerという偽名のフォロワーが1人存在することだけで、このフォロワーは同時期にアカウントを作成したと思われます。しかし、このユーザーについての詳しい情報は見つかっていません。

また、異なるソーシャルメディアへのリンクがいくつか見受けられます。最初のリンクは、deathinewsというTelegramグループへのリダイレクトです。2番目のリンクは、Guilded(Discordの競合)グループにリダイレクトしています。どちらのグループも2023年5月に作成されたもので、この記事の執筆時点ではまだ空でした。とはいえ、これらのグループは今後、Skuldやその他のマルウェア亜種の新バージョンを宣伝や販売に使用される可能性が高いです。最後のものは、@deathined Twitterアカウントへのリンクで、ツイート、いいね、フォロワーは一切含まれていません。唯一目立つのは、このアカウントも2023年4月に作成されており、GitHubのアカウントと同じ作成日であることです。

図 19 死んだ Github アカウント。
図19 DeathinedのTwitterアカウント

ユーザー名Deathinedの他のアカウントを探すと、同じく4月に作成されたRedditのアカウントも確認できます。この場合、ビデオゲーム「Fortnite」に関連するコンテンツを公開していましたが、後に削除されています。Discordは主にゲーマーが使用する一般的なプラットフォームであるため、このような関心事はSkuldによるDiscordの使用と一致しています。

図 20 死亡した Reddit アカウント。図20 Deathined Redditのアカウント


さらに、同じニックネームのTumblrアカウントも見つかります。ここでは、このユーザーはArcaneをテーマにした物語、League of LegendsをベースにしたTVシリーズを書くことに興味を示しており、これはまたDeathinedから見てきたものと一致します。

図 21 死亡した Tumblr アカウント。
図21 Deathined Tumblrのアカウント


また、アカウントページにはCarrdリンク(https://deathined.carrd.co/)があり、既知のTwitterアカウント「@deathined」へのリンクを含む、Deathinedの趣味やソーシャルメディアアカウントが掲載されています。

図 22 死亡したカードの Web ページ。
図22 Deathined CarrdのWebページ

それとは別に、別のArcaneをテーマにしたTumblrのプロフィールへのリンクだけが示されています: Meijki (https://www.tumblr.com/meijki)。しかし、このアカウントとのさらなる関係は見つかっていません。

Skuldのソースコードとソーシャルメディアアカウントの作成日に基づいて、これらのアカウントはSkuldの開発者によって作成され、おそらく将来のマルウェアビジネスを促進する目的で作成されたものであると高い確信を持って評価できます。また、いくつかのアカウントのゲームテーマや、Skuldの盗用者がDiscordユーザーをターゲットにしていることから、Skuldの背後にいる攻撃者は、ゲーム業界に特別な関心を持っていることを示唆しています。

スキルの開発

Skuldには、感染したマシンから資産を盗むための多くのテクニックが含まれています。しかし、この傾向はすべてのサンプルに当てはまるわけではなく、多くのサンプルはいくつかの機能を欠いており、また他のサンプルはそのような機能を部分的に実装しています。このことは、Skuldがまだ開発中であることを示唆しています。

バイナリの分析によると、このマルウェアが使用する技術は、さまざまなGitHubプロジェクトから移植されたものであることが判明しました。

これらのプロジェクトは主にPythonで書かれており、概念実証として、あるいは何らかの知識や製品を紹介するために構築されたスティーラーやグラバーです。その後、Deathinedはそれらのソースコードを取り出し、新しいマルウェアを構築するためにGolangに移植しました。

次の行では、オープンソースプロジェクトであるCreal StealerLuna GrabberBlackCap Grabberとの類似点をいくつか紹介します。なお、これらは公開リポジトリであるため、関連するサンプルやプロジェクトがもっと存在する可能性があります。

分析防止

Skuldが分析を検出するために使用するさまざまな方法は、Creal StealerやLuna Grabberが使用する方法とほぼ同じです。

まず、ユーザー名、PC名、MACアドレスが正規のものであるかどうかをチェックするために、ブロックリストを使用する方法があります。図23では、Creal Stealerが使用するブラックリストの値がほぼ同じであり、図24で確認できるように、Luna Grabberでも同様のことが起こっています。

図 23 Creal Stealer のブラックリスト。図23 Creal Stealerのブラックリスト
図 24 Luna Grabber のブロックリスト。図24 Luna Grabberのブロックリスト

Discordの回避

Discordのセキュリティ機能を回避する際、DeathinedはBlackCap Grabberからヒントを得て、上記の行で説明したBetter DiscordとDiscord Token Protectorという同じ2つの方法を用いています。

図25は、最初の方法であるBetter Discordのバイパス機能を比較したものです。

図 25 Skuld と BlackCap Grabber の間のより優れた Discord バイパス実装の比較。図25 SkuldとBlackCap Grabberのより良いDiscordバイパス実装の比較

図26は、Discord Token Protectorのバイパス機能の実装を比較したものです。

図 26 Skuld と BlackCap Grabber 間の Discord Token Protector バイパス実装の比較。図26 SkuldとBlackCap GrabberのDiscord Token Protectorバイパス実装比較

Luna Grabberには、両方のバイパスの同様の実装が含まれており、広く利用可能なアルゴリズムであることが強調されています。

エクスフィルトレーション

流出に関しては、言及したすべてのプロジェクトがDiscordのWebhookを使用して攻撃者に情報を送信していることがわかりました。しかし、Gofileの場合、Creal Stealerだけがこの手法を含んでおり、図27でお気づきのように、Skuldと同様の実装になっています。

図 27 Skuld と Creal Stealer の間の Gofile 抽出実装の比較。図27 SkuldとCreal StealerのGofile流出実装比較


まとめ

Golangマルウェアの台頭は、絶えず変化するサイバーセキュリティの状況において、重大な懸念材料となっています。Golangの人気が高まるにつれ、サイバー犯罪者はその強みを活かして、ユーザーや企業に深刻な脅威を与える新しいマルウェアの亜種を開発しています。Skuldスティーラーは、ファイルやウェブブラウザやDiscordなどのアプリケーションを含むシステムに保存されている機密情報を狙う、斬新なマルウェアの代表例です。その他の多くの機能は、DiscordインジェクションやClipperモジュールのように、特定のサンプルで部分的に実装されているいくつかの機能に基づいて、まだ開発中であるようです。

作者のDeathinedは、オープンソースプロジェクトからインスピレーションを受け、必要に応じて機能をGolangに移植しながら、常に新しい機能の実装を試みているようです。作者はまだ製品の販売を開始していません。しかし、近い将来、Telegramや他のサービスを通じて、それを開始する可能性が高いです。

Skuldの開発が不完全であるということは、それが無能なマルウェアであることを意味しません。Skuldは、感染したマシンから機密データを盗み出すことができる脅威であり、世界中の多くのユーザーがすでに経験していることなのです。


付録A – Trellix Skuld検出シグネチャー

製品 サイン
Endpoint Security (ENS) Generic pws.aij trojan
Trojan-pws.w trojan
Trojan-pws.v trojan
Trojan.ug trojan
Endpoint Security (HX) Trojan.Generic.33678007
Trojan.Generic.33606823
Trojan.Generic.33674243
Trojan.Generic.33638573
Trojan.Generic.33599705
Trojan.Generic.33638565
Trojan.Generic.33744688
Trojan.Generic.33599076
Trojan.Generic.33620422
Trojan.Generic.33599707
Trojan.Generic.33599826
Trojan.Generic.33614076
Trojan.Generic.33603047
Trojan.Generic.33638556
Trojan.Generic.33677399
Trojan.Generic.33638688
Trojan.Generic.33620152
Trojan.Generic.33616922
Network Security (NX)
Detection as a Service
Email Security
Malware Analysis
File Protect
InfoStealer.Skud
Trojan.Win.Generic.MVX
FE_InfoStealer_Win64_Skuld_1
FE_InfoStealer_Win_Skuld_1

付録B – MITRE ATT&CK

戦術的な目標 ATT&CKテクニック(テクニックID)
実行
T1204.002 Malicious File
T1059.007 Command and Scripting Interpreter: JavaScript
防御回避
T1497 Virtualization/Sandbox Evasion: System Checks
T1562.001 Impair Defenses: Disable or Modify Tools
T1622 Debugger Evasion
クレデンシャルアクセス
T1555.003 Credentials from Password Stores: Credentials from Web Browsers
T1111 Multi-Factor Authentication Interception
T1539 Steal Web Session Cookie
ディスカバリー
T1033 System Owner/User Discovery
T1012 Query Registry
T1057 Process Discovery
T1083 File and Directory Discovery
T1217 Browser Information Discovery
T1082 System Information Discovery
T1016 System Network Configuration Discovery
コレクション
T1113 Screen Capture
T1115 Clipboard Data
T1560 Archive Collected Data
コマンド&コントロール
T1071.001 Application Layer Protocol: Web Protocols
T1573.002 Encrypted Channel: Asymmetric Cryptography
T1102.003 Web Service: One-Way Communication
エクスフィルトレーション
T1567 Exfiltration Over Web Service
T1020 Automated Exfiltration
影響 T1489 Service Stop

付録C:YARAルール

 rule mal_skuld_stealer {
  meta:
     author = “Ernesto Fernandez (L3cr0f) | Trellix ARC”
     threat_name = “Skuld”
     filetype = “Win64 EXE”
     date = “2023-05-15”
     description = “Yara rule for hunting Skuld stealer.”

  strings:
     $a1 = “skuld” nocase
     $a2 = “deathined” nocase

     // Discord exfiltration
     $b1 = “https://discord.com/api/webhooks/”
     $b2 = “avatar_url”
     $b3 = “icon_url”

     // Gofile exfiltration
     $c1 = “https://api.gofile.io/getServer”
     $c2 = “gofile.io/uploadFile”

     // Browser DBs
     $g1 = “masterkey_db”
     $g2 = “login_db”
     $g3 = “download_db”
     $g4 = “history_db”
     $g5 = “card_db”

     $h1 = { 70 61 73 73 77 6F 72 64 } // password
     $h2 = { 72 64 2D 63 68 65 63 6B } // rd-check

  condition:
     uint16(0) == 0x5A4D and
     uint16(0) == 0x5A4D and
     filesize > 5MB and
     (
       all of ($a*) or
       (
         (
           2 of ($b*) or
           all of ($c*)
         ) and
         3 of ($g*)
       ) or (
         3 of ($g*) and
         $h2 in (@h1..@h1+0x20)
       )
     )
}


付録D – IoC

SHA256ハッシュ

4c0af2782e7e02aba3cc182eb485bdd30f22707a7669cf6609e2619bf4f54b2d 421a57666d85b8c956634528ca128283a13c4cb0730d3d498b4658b3ea4b3015 20 c53166133e5bc0a6dad39ba6a754a878c04c2697400b98cfb0fa5fe2f8b06d 13c25ddbaed8579a764b143446a4c2910b5605c78951416f303f000133e56b26 fefd 9 249dbafebc5c7717413a63cc9945eee4006d85fc77b4b4e10587e30aaa7 f8e2c18619f3701542add6f8f822e3d7957b41918d1a1bc03e80622e92afdc41 f7514b9 3fd3 ee6d4df231f2eed022a98d98a518b9ff23c960845d2dd215d4694 dee98d99f9f2915dc8ed7e46606e88f84432232dd329e0283b3ce4e45f54aae4 d98d6149660 0aadf95 235e81c54752c3ddcd1ea3a40ba9eb8978b27f9638f7ee d3ed2f5e3568fb77600894b49da9343243dc468d9aa661b4fcba60540445f3ec d29e69c321d2c5f2e 0b4e284b9 fb399a4b7bf4628916075ab9039be895660626d11efad7ebe520ccc9f682003d76ebfabd5d18b746a801fefbf04317f7ae7505 bfb57e149903bc7c75cbe1dd57bbee030bdfadb6023db37bb2fe163e4bc06bd4 bea3b5a31d 10069 bb70561568349a54582564c21d2a835f65073d6f1d8662eec bdcdd076ccc5f73db7f93dbc298fc48147a04b755fc12fda872d11c6857b512f b8ea26cc2281 23ecb77b46 d325f0ec34dd5c9b37e3e4ec492a4bf51840218025 b786df58db15f749ca922db966741711859616683b8a64390d221fb3af01493c b31290a1b1488 4b1ac2bb00aff079ac 365857cbc94a489a5d361f9e140a54dff a211d8ee2767c83de94cc2b4e07838dd1ea6397ecde15fe0ed3211fe7959eb69 9b6705f27d0d77b766ed5d626 7a8b9992081a7 aa9c1dc2526c524bdf10bd7204 848f0f411cad90e6c7b6e64b27ffb25c81c6bf065c1cd0f9cc2ca413867bc96a 7ca99ab7123d955e31b001e930 231ddfe437b63890263 b984454538b0ab47135 65ae55466beec02a40c9df750a9a08f44b809137437e20eeeaa30fd7532ea37b 5dfe60670571378e6ddfaeb30804d5bd 4a254edde4269e75afb4 b6ce8995d582

Discord webhooks

https://discord[.]com/api/webhooks/1101151106052145214/BIaHrwzWkurP1ifNTfI0S-nV_adpU3L7CtHkZgsoxNh0xWIhQpjX2fdzD9kB7BDNYQi7

https://discord[.]com/api/webhooks/963128514779959316/ruqcIVO-IzGEWVxFyDIITM7YCzbyrnmAu55FnFdc4inoDqbx2o3dSOjAkc1lGOf9ytAf

https://discord[.]com/api/webhooks/1101120631296237639/mesriMSa71vT7Vf_chsUKzwpQEbKiBcK1y1GiKUCoC360ZH8EuTmJQKMDSmB-LGAqbJw


付録E – Skuldリスト

このセクションでは、マルウェア解析アプライアンスを検出したり、特定のブラウザアプリケーションから機密項目を盗むために、Skuldスティーラーが使用するさまざまなリストを見つけることができます。

対象ブラウザ

クロームベース

 Chrome  Vivaldi  Liebao  Amigo
 Chrome (x86)  Kometa
 QIP Surf
 Torch
 Chrome SxS  Elements  Orbitum  Sputnik
 Maple  Epic Privacy Browser  Dragon  Edge
 Iridium  Uran  Maxthon  DCBrowser
 7Star  Fenrir  K-Melon  Yandex
 CentBrowser
 Catalina  CocCoc  Opera
 Chedot
 Coowon
 Brave  OperaGX
Geckoベース

 Firefox  K-Meleon  Cyberfox
 SeaMonkey  Thunderbird  BlackHaw
 Waterfox  IceDragon  Pale Moon

ユーザーのブロックリスト

WDAGUtilityAccount 8Nl0ColNQ5bq lmVwjj9blocation BvJChRPnsxn Louise
Abby Lisa PqONjHVwexsS Harry Johnson User01
hmarc
John
3u2v9m89765625 SqgFOf3G test
patex george Julia Lucas RGzcBUyrznReg
RDhJ0CNFevzX PxmdUOpVyx HEUeRzl mike Robert
kEecfMwgj 8VizSM fred PateX Peter Wilson
Frank w0fjuOVmCcP5A servers h7dk1xPr JOHN-PC

PC名のブロックリスト

azure-PC SERVER1 DESKTOP-WG3MYJS DESKTOP-CBGPFEE MARCI-PC
BEE7370C-8C0C-4 LISA-PC DESKTOP-7XC6GEZ SERVER-PC
ACEPC
DESKTOP-NAKFFMT JOHN-PC DESKTOP-5OV9S0O TIQIYLA9TW5M MIKE-PC
WIN-5E07COS9ALR DESKTOP-B0T93D6 QarZhrdBpj DESKTOP-KALVINO DESKTOP-IAPKN1P
B30F0242-1C6A-4 DESKTOP-1PYKP29 ORELEEPC COMPNAME_4047 DESKTOP-NTU7VUO
DESKTOP-VRSQLAG DESKTOP-1Y2433R ARCHIBALDPC DESKTOP-19OLLTD LOUISE-PC
Q9IATRKPRH WILEYPC JULIA-PC DESKTOP-DE369SE T00917
XC64ZB WORK d1bnJkfVlH EA8C2E2A-D017-4 test42
DESKTOP-D019GDM 6C4E733F-C2D9-4 NETTYPC AIDANPC DESKTOP-CDLNVOQ
DESKTOP-WI8CLET RALPHS-PC DESKTOP-BUGIO LUCAS-PC

HWIDブロックリスト

00000000-0000-0000-0000-000000000000 49434D53-0200-9036-2500-369025003AF0 ADEEEE9E-EF0A-6B84-B14B-B83A54AFC548
00000000-0000-0000-0000-50E5493391EF 49434D53-0200-9036-2500-36902500F022 AF1B2042-4B90-0000-A4E4-632A1C8C7EB1
00000000-0000-0000-0000-AC1F6BD048FE 49434D53-0200-9065-2500-65902500E439 B1112042-52E8-E25B-3655-6A4F54155DBF
00000000-0000-0000-0000-AC1F6BD04972 4C4C4544-0050-3710-8058-CAC04F59344A B6464A2B-92C7-4B95-A2D0-E5410081B812
00000000-0000-0000-0000-AC1F6BD04986 4CB82042-BA8F-1748-C941-363C391CA7F3 BB233342-2E01-718F-D4A1-E7F69D026428
00000000-0000-0000-0000-AC1F6BD04D98 4D4DDC94-E06C-44F4-95FE-33A1ADA5AC27 BB64E044-87BA-C847-BC0A-C797D1A16A50
02AD9898-FA37-11EB-AC55-1D0C0A67EA8A 4DC32042-E601-F329-21C1-03F27564FD6C BE784D56-81F5-2C8D-9D4B-5AB56F05D86E
032E02B4-0499-05C3-0806-3C0700080009 5BD24D56-789F-8468-7CDC-CAA7222CC121 C249957A-AA08-4B21-933F-9271BEC63C85
03DE0294-0480-05DE-1A06-350700080009 5E3E7FE0-2636-4CB7-84F5-8D2650FFEC0E C6B32042-4EC3-6FDF-C725-6F63914DA7C7
050C3342-FADD-AEDF-EF24-C6454E1A73C9 5EBD2E42-1DB8-78A6-0EC3-031B661D5C57 C7D23342-A5D4-68A1-59AC-CF40F735B363
05790C00-3B21-11EA-8000-3CECEF4400D0 60C83342-0A97-928D-7316-5F1080A78E72 CC5B3F62-2A04-4D2E-A46C-AA41B7050712
07E42E42-F43D-3E1C-1C6B-9C7AC120F3B9 63203342-0EB0-AA1A-4DF5-3FB37DBB0670 CE352E42-9339-8484-293A-BD50CDC639A5
08C1E400-3C56-11EA-8000-3CECEF43FEDE 63FA3342-31C7-4E8E-8089-DAFF6CE5E967 CEFC836C-8CB1-45A6-ADD7-209085EE2A57
0934E336-72E4-4E6A-B3E5-383BD8E938C3 6608003F-ECE4-494E-B07E-1C4615D1D93C CF1BE00F-4AAF-455E-8DCD-B5B09B6BFA8F
11111111-2222-3333-4444-555555555555 67E595EB-54AC-4FF0-B5E3-3DA7C7B547E3
D2DC3342-396C-6737-A8F6-0C6673C1DE08
119602E8-92F9-BD4B-8979-DA682276D385 6ECEAF72-3548-476C-BD8D-73134A9182C8 D7382042-00A0-A6F0-1E51-FD1BBF06CD71
12204D56-28C0-AB03-51B7-44A8B7525250 6F3CA5EC-BEC9-4A4D-8274-11168F640058 D8C30328-1B06-4611-8E3C-E433F4F9794E
12EE3342-87A2-32DE-A390-4C2DA4D512E9 777D84B3-88D1-451C-93E4-D235177420A7 D9142042-8F51-5EFF-D5F8-EE9AE3D1602A
1D4D3342 – D6C4 – 710C – 98A3 – 9CC6571234D5 79AF5279-16CF-4094-9758-F88A616D81B4 DBC22E42-59F7-1329-D9F2-E78A2EE5BD0D
2DD1B176-C043-49A4-830F-C623FFB88F3C 7AB5C494-39F5-4941-9163-47F54D6D5016 DBCC3514-FA57-477D-9D1F-1CAF4CC92D0F
2E6FB594-9D55-4424-8E74-CE25A25E36B0 84FE3342-6C67-5FC6-5639-9B3CA3D775A1 DD9C3342-FB80-9A31-EB04-5794E5AE2B4C
365B4000-3B25-11EA-8000-3CECEF44010C 88DC3342-12E6-7D62-B0AE-C80E578E7B07 DEAEB8CE-A573-9F48-BD40-62ED6C223F20
38813342-D7D0-DFC8-C56F-7FC9DFE5C972 8B4E8278-525C-7343-B825-280AEBCD3BCB E08DE9AA-C704-4261-B32D-57B2A3993518
38AB3342-66B0-7175-0B23-F390B3728B78 8DA62042-8B59-B4E3-D232-38B29A10964A EADD1742-4807-00A0-F92E-CCD933E9D8C1
3A9F3342-D1F2-DF37-68AE-C10F60BFB462 907A2A79-7116-4CB6-9FA5-E5A58C4587CD EB16924B-FB6D-4FA1-8666-17B91F62FB37
3F284CA4-8BDF-489B-A273-41B44D668F6D 921E2042-70D3-F9F1-8CBD-B398A21F89C6 F5744000-3C78-11EA-8000-3CECEF43FEFE
3F3C58D1-B4F2-4019-B2A2-2A500E96AF2E 96BB3342-6335-0FA8-BA29-E1BA5D8FEFBE FA8C2042-205D-13B0-FCB5-C5CC55577A35
42A82042-3F13-512F-5E3D-6BF4FFFD8518 9921DE3A-5C1A-DF11-9078-563412000026 FCE23342-91F1-EAFC-BA97-5AAE4509E173
44B94D56-65AB-DC02-86A0-98143A7423BF 9C6D1742-046D-BC94-ED09-C36F70CC9A91 FE455D1A-BE27-4BA4-96C8-967A6D3A9661
4729AEB0-FC07-11E3-9673-CE39E79C8A00 A15A930C-8251-9645-AF63-E45AD728C20C FED63342-E0D6-C669-D53F-253D696D74DA
48941AE9-D52F-11DF-BBDA-503734826431 A7721742-BE24-8A1C-B859-D7F8251A83D3 FF577B79-782E-0A4D-8568-B35A9B7EB76B
49434D53-0200-9036-2500-369025000C65 A9C83342-4800-0578-1EE8-BA26D2A678D2
49434D53-0200-9036-2500-369025003865
ACA69200-3C4C-11EA-8000-3CECEF4401AA

IPアドレスのブロックリスト

88.132.231.71 95.25.204.90 34.105.72.241 34.85.243.241 35.229.69.227
78.139.8.50 34.145.89.174 109.74.154.92 34.141.245.25 34.138.96.23
20.99.160.173 109.74.154.90 213.33.142.50 178.239.165.70 192.211.110.74
88.153.199.169 109.145.173.169 109.74.154.91 84.147.54.113 35.237.47.12
84.147.62.12 34.141.146.114 93.216.75.209 193.128.114.45 87.166.50.213
194.154.78.160 212.119.227.151 192.87.28.103 95.25.81.24 34.253.248.228
92.211.109.160 195.239.51.59 88.132.226.203 92.211.52.62 212.119.227.167
195.74.76.222 192.40.57.234 195.181.175.105 88.132.227.238 193.225.193.201
188.105.91.116 64.124.12.162 88.132.225.100 35.199.6.13 34.145.195.58
34.105.183.68 34.142.74.220 92.211.192.144 80.211.0.97 34.105.0.27
92.211.55.199 188.105.91.173 34.83.46.130 34.85.253.170 195.239.51.3
79.104.209.33 109.74.154.91 188.105.91.143 23.128.248.46 35.192.93.107

MACアドレスのブロックリスト

00:15:5d:00:07:34 00:15:5d:00:01:81 00:50:56:a0:61:aa 42:01:0a:8e:00:22 7e:05:a3:62:9c:4d
00:e0:4c:b8:7a:58 4e:79:c0:d9:af:c3 42:01:0a:96:00:22 00:50:56:b3:4c:bf 52:54:00:b3:e4:71
00:0c:29:2c:c1:21 00:15:5d:b6:e0:cc 00:50:56:b3:21:29 00:50:56:b3:09:9e 90:48:9a:9d:d5:24
00:25:90:65:39:e4 00:15:5d:00:02:26 00:15:5d:00:00:b3 00:50:56:b3:38:88 00:50:56:b3:3b:a6
c8:9f:1d:b6:58:e4 00:50:56:b3:05:b4 96:2b:e9:43:96:76 00:50:56:a0:d0:fa 92:4c:a8:23:fc:2e
00:25:90:36:65:0c 1c:99:57:1c:ad:e4 b4:a9:5a:b1:c6:fd 00:50:56:b3:91:c8 5a:e2:a6:a4:44:db
00:15:5d:00:00:f3 08:00:27:3a:28:73 d4:81:d7:87:05:ab 3e:c1:fd:f1:bf:71 00:50:56:ae:6f:54
2e:b8:24:4d:f7:de 00:15:5d:00:00:c3 ac:1f:6b:d0:49:86 00:50:56:a0:6d:86 42:01:0a:96:00:33
00:15:5d:13:6d:0c 00:50:56:a0:45:03 52:54:00:8b:a6:08 00:50:56:a0:af:75 00:50:56:97:a1:f8
00:50:56:a0:dd:00 12:8a:5c:2a:65:d1 00:0c:29:05:d8:6e 00:50:56:b3:dd:03 5e:86:e4:3d:0d:f6
00:15:5d:13:66:ca 00:25:90:36:f0:3b 00:23:cd:ff:94:f0 c2:ee:af:fd:29:21 00:50:56:b3:ea:ee
56:e8:92:2e:76:0d 00:1b:21:13:21:26 00:e0:4c:d6:86:77 00:50:56:b3:ee:e1 3e:53:81:b7:01:13
ac:1f:6b:d0:48:fe 42:01:0a:8a:00:22 3c:ec:ef:44:01:aa 00:50:56:a0:84:88 00:50:56:97:ec:f2
00:e0:4c:94:1f:20 00:1b:21:13:32:51 00:15:5d:23:4c:a3 00:1b:21:13:32:20 00:e0:4c:b3:5a:2a
00:15:5d:00:05:d5 a6:24:aa:ae:e6:12 00:1b:21:13:33:55 3c:ec:ef:44:00:d0 12:f8:87:ab:13:ec
00:e0:4c:4b:4a:40 08:00:27:45:13:10 00:15:5d:00:00:a4 00:50:56:ae:e5:d5 00:50:56:a0:38:06
42:01:0a:8a:00:22 00:1b:21:13:26:44 16:ef:22:04:af:76 00:50:56:97:f6:c8 2e:62:e8:47:14:49
00:1b:21:13:15:20 3c:ec:ef:43:fe:de 00:15:5d:23:4c:ad 52:54:00:ab:de:59 00:0d:3a:d2:4f:1f
00:15:5d:00:06:43
d4:81:d7:ed:25:54 1a:6c:62:60:3b:f4 00:50:56:b3:9e:9e 60:02:92:66:10:79
00:15:5d:1e:01:c8 00:25:90:36:65:38 00:15:5d:00:00:1d 00:50:56:a0:39:18 00:50:56:a0:d7:38
00:50:56:b3:38:68 00:03:47:63:8b:de 00:50:56:a0:cd:a8 32:11:4d:d0:4a:9e be:00:e5:c5:0c:e5
60:02:92:3d:f1:69 00:15:5d:00:05:8d 00:50:56:b3:fa:23 00:50:56:b3:d0:a7 00:50:56:a0:59:10
00:e0:4c:7b:7b:86 00:0c:29:52:52:50 52:54:00:a0:41:92 94:de:80:de:1a:35 00:50:56:a0:06:8d
00:e0:4c:46:cf:01 00:50:56:b3:42:33 00:50:56:b3:f6:57 00:50:56:ae:5d:ea 00:e0:4c:cb:62:08
42:85:07:f4:83:d0 3c:ec:ef:44:01:0c 00:e0:4c:56:42:97 00:50:56:b3:14:59 4e:81:81:8e:22:4e
56:b0:6f:ca:0a:e7 06:75:91:59:3e:02 ca:4d:4b:ca:18:cc ea:02:75:3c:90:9f
12:1b:9e:3c:a6:2c 42:01:0a:8a:00:33 f6:a5:41:31:b2:78 00:e0:4c:44:76:54
00:15:5d:00:1c:9a ea:f6:f1:a2:33:76 d6:03:e4:ab:77:8e ac:1f:6b:d0:4d:e4
00:15:5d:00:1a:b9 ac:1f:6b:d0:4d:98 00:50:56:ae:b2:b0 52:54:00:3b:78:24
b6:ed:9d:27:f4:fa 1e:6c:34:93:68:64 00:50:56:b3:94:cb 00:50:56:b3:50:de

プロセスのブロックリスト

x96dbg cmd vmusrvc pestudio http
fiddler ksdumperclient joeboxcontrol wireshark vboxservice
vmsrvc processhacker hacker vmtoolsd procmon
regmon ksdumper vmacthlp df5serv packet
ollydbg debugger x32dbg ida regedit
prl_cc qemu-ga taskmgr xenservice dumper
vgauthservice traffic vmwareuser prl_tools dbg
VGAuthService ida64 httpdebuggerui vmwaretray
diskmon debuger vboxtray joeboxserver
※本ページの内容は2023年6月13日(US時間)更新の以下のTrellix Storiesの内容です。