SOC Prime Bias: 重大

05 Jun 2026 15:40 UTC

C0XMO:クロスプラットフォーム拡散を持つ新しいGafgyt亜種

Author Photo
SOC Prime Team linkedin icon フォローする
C0XMO:クロスプラットフォーム拡散を持つ新しいGafgyt亜種
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

FortiGuard Labs は、DD-WRT ルーターのバッファオーバーフローの脆弱性を悪用して広範に感染を拡大させる C0XMO と呼ばれる新しい Gafgyt ボットネットの亜種を特定しました。この脆弱性は CVE-2021-27137 として追跡されています。このマルウェアは、異なる CPU アーキテクチャ間で感染を広げるために、別の Python ベースのスキャナーを使用し、弱い認証情報への攻撃、いくつかの DDoS 機能、および競合するマルウェアを排除するルーチンに依存しています。感染後は、コマンド&コントロールサーバーに接続する前に、隠しファイル、クロンジョブ、シェルのプロファイル変更を通じて永続性を確立します。このレポートには、公開された IoT デバイスを運用している組織向けのインジケーターと防御の指針も含まれています。

調査

この解析により、C0XMO が初期アクセスを得るために DD-WRT UPnP サービスの CVE-2021-27137 を悪用していることが示されました。このスキャナーは、 217.160.125.125:15527から Python スキャナーを取得し、Telnet および SSH のブルートフォース攻撃を実行し、複数の HTTP ベースのエクスプロイトリクエストを開始し、対象環境に応じてアーキテクチャ固有のバイナリを展開します。永続性は、隠しファイルを /tmp, /var/tmp, /dev/shm、ユーザーホームディレクトリなどに配置し、クロンジョブのエントリやシェルプロファイルの編集によって維持されます。その後、マルウェアは 85.215.131.70 の C2 インフラストラクチャとカスタムハンドシェイクシーケンスを使用して通信します。

緩和策

組織は DD-WRT ファームウェアをチェンジセット 45723 以降のリリースにアップグレードし、関連するすべての CVE に対処する修正を適用するべきです。可能な限り、UPnP、Telnet、および SSH などの不要なリモートサービスはインターネットに面したデバイスで無効にすることが推奨されます。すべてのエッジデバイスで強力で一意の資格情報を強制し、公開されているサービスは定期的に確認されるべきです。特定された IP アドレス、ポート、ならびにキャンペーンに関連する悪意のあるコマンドパターンに対するネットワークベースの検出も展開する必要があります。

対応

防御者は、既知の C2 インフラストラクチャおよびスキャナーのダウンロードポートへの接続のためのアウトバウンドトラフィックを監視するべきです。また、 .sysという名前の隠しファイル、15 分ごとに実行されるクロン変更、およびスキャナースクリプトの実行についてアラートを設定するべきです。特定された悪意のある IP およびドメインはファイアウォールでブロックされ、侵害されたデバイスは法医学調査および完全なクリーンアップのために隔離されるべきです。

graph TB %% Class definitions classDef technique fill:#ffcc99 classDef action fill:#99ff99 classDef malware fill:#ff9999 classDef tool fill:#ccccff classDef process fill:#ffdd66 %% Nodes tech_scanning[“<b>テクニック</b> – <b>T1595.002 アクティブスキャン</b><br/><b>説明</b>: オープンポートおよび脆弱なサービスを検出するためにIPアドレス範囲をスキャンする。”] class tech_scanning technique tech_exploit_upnp[“<b>テクニック</b> – <b>T1546.017 イベントトリガー実行: Udevルール</b><br/><b>説明</b>: CVE-2021-27137 を悪用した細工済みUDP M-SEARCHによりコード実行を引き起こす。”] class tech_exploit_upnp technique tech_exploit_other[“<b>テクニック</b> – <b>T1210 リモートサービスの悪用</b><br/><b>説明</b>: CVE-2015-2051 や CVE-2022-35914 などの追加のHTTP/UPnP脆弱性を悪用する。”] class tech_exploit_other technique tech_hijack_exec[“<b>テクニック</b> – <b>T1574.005 実行フローの乗っ取り: 実行可能インストーラーファイル権限の脆弱性</b><br/><b>説明</b>: 実行権限を持つ悪意のあるELFバイナリを隠し場所に配置する。”] class tech_hijack_exec technique tech_persistence_cron[“<b>テクニック</b> – <b>T1053.003 スケジュールタスク/ジョブ: Cron</b><br/><b>説明</b>: 15分ごとにペイロードを実行するcronジョブを作成する。”] class tech_persistence_cron technique tech_shell_mod[“<b>テクニック</b> – <b>T1546.004 イベントトリガー実行: Unixシェル設定の変更</b><br/><b>説明</b>: ~/.bashrc、~/.profile、~/.bash_profile にコマンドを追加する。”] class tech_shell_mod technique tech_compromise_binary[“<b>テクニック</b> – <b>T1554 ホストソフトウェアバイナリの侵害</b><br/><b>説明</b>: 制御を維持するために隠し場所へバイナリをインストールまたは置き換える。”] class tech_compromise_binary technique tech_bruteforce[“<b>テクニック</b> – <b>T1110 ブルートフォース</b><br/><b>説明</b>: Telnet および SSH に対して認証情報推測攻撃を実行する。”] class tech_bruteforce technique tech_forced_auth[“<b>テクニック</b> – <b>T1187 強制認証</b><br/><b>説明</b>: デフォルトまたは脆弱な認証情報を利用してアクセス権を取得する。”] class tech_forced_auth technique tech_remote_ssh[“<b>テクニック</b> – <b>T1021.004 リモートサービス: SSH</b><br/><b>説明</b>: 盗んだ認証情報を使用してSSH/Telnet経由で他のデバイスへログインする。”] class tech_remote_ssh technique tech_indicator_removal[“<b>テクニック</b> – <b>T1070.009 痕跡削除: 永続化の削除</b><br/><b>説明</b>: 競合するマルウェアのバイナリおよび永続化メカニズムを終了・削除する。”] class tech_indicator_removal technique tech_exclusive_control[“<b>テクニック</b> – <b>T1668 排他的制御</b><br/><b>説明</b>: 単独で制御を維持するため、競合するボットネットのファイルやcronジョブを削除する。”] class tech_exclusive_control technique tech_nonstandard_port[“<b>テクニック</b> – <b>T1571 非標準ポート</b><br/><b>説明</b>: 独自プロトコルを使用し、TCPポート15527経由でC2通信を行う。”] class tech_nonstandard_port technique malware_c0xmo[“<b>マルウェア</b> – C0XMO<br/><b>役割</b>: スキャン、悪用、永続化を実行するボットネットペイロード。”] class malware_c0xmo malware process_upnp_exploit[“<b>プロセス</b> – 細工済みUDP M-SEARCHの送信”] class process_upnp_exploit process process_elf_deploy[“<b>プロセス</b> – ELFバイナリを /tmp/.sys、/var/tmp/.sys、/dev/shm/.sys に配置”] class process_elf_deploy process process_cron_setup[“<b>プロセス</b> – 15分ごとのcronエントリを書き込む”] class process_cron_setup process process_shell_mod[“<b>プロセス</b> – シェル設定ファイルへペイロード呼び出しを追加”] class process_shell_mod process process_brute[“<b>プロセス</b> – IPをスキャンしTelnet/SSHへブルートフォース攻撃を実施”] class process_brute process process_c2[“<b>プロセス</b> – ポート15527でC2チャネルを維持”] class process_c2 process %% Connections tech_scanning –>|につながる| tech_exploit_upnp tech_scanning –>|さらに起動する| tech_exploit_other tech_exploit_upnp –>|実行する| process_upnp_exploit process_upnp_exploit –>|配置する| malware_c0xmo malware_c0xmo –>|配置する| tech_hijack_exec tech_hijack_exec –>|結果として生じる| process_elf_deploy process_elf_deploy –>|有効化する| tech_compromise_binary tech_compromise_binary –>|支援する| tech_persistence_cron tech_compromise_binary –>|支援する| tech_shell_mod tech_persistence_cron –>|作成する| process_cron_setup tech_shell_mod –>|作成する| process_shell_mod malware_c0xmo –>|実行する| tech_bruteforce malware_c0xmo –>|実行する| tech_forced_auth tech_bruteforce –>|有効化する| process_brute tech_forced_auth –>|有効化する| process_brute process_brute –>|認証情報を取得する| tech_remote_ssh tech_remote_ssh –>|他のホストへ拡散する| malware_c0xmo malware_c0xmo –>|競合を排除する| tech_indicator_removal malware_c0xmo –>|排他的制御を維持する| tech_exclusive_control malware_c0xmo –>|C2通信を行う| tech_nonstandard_port tech_nonstandard_port –>|使用する| process_c2

攻撃フロー

シミュレーション実行

前提条件:テレメトリーとベースラインの事前飛行チェックが通過している必要があります。

根拠:このセクションでは、検出ルールをトリガーするために設計された攻撃者技術(TTP)の正確な実行を詳細に説明します。コマンドと物語は、TTP が特定され、それらによって期待される正確なテレメトリーを生成することを反映する必要があります。

  • 攻撃の物語とコマンド:
    攻撃者のボットは、サービスの実行(T1546.007)によって既に侵害されたホストにインストールされており、ハードコーディングされたサーバー 217.160.125.125 でポート 15527 を使用して C2 のハンドシェイクを開始します。接続はプレーンな TCP ソケットを使用してコマンドをプルし、規則の条件を正確に満たします。この活動は C0XMO ボットネットの「フェノム」行動の典型です。

  • 回帰テストスクリプト:

    # C0XMO C2 通信シミュレーション - Sigma ルールをトリガーします
    $c2Ip = "217.160.125.125"
    $c2Port = 15527
    
    # TCP 接続を開き、最小限のペイロードを送信し、次に閉じる
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($c2Ip, $c2Port)
    
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::ASCII.GetBytes("PING`n")
    $stream.Write($payload, 0, $payload.Length)
    
    # リアルな待機時間を模倣して一時停止
    Start-Sleep -Seconds 2
    
    $stream.Close()
    $client.Close()
  • クリーンアップコマンド:

    # 永続的な変更は行われていません; ただし、開いているソケットがあれば閉じることを確認
    # (スクリプトは既にソケットを閉じています; これは安全網です。)
    Get-Process -Name "powershell" | Where-Object { $_.MainWindowTitle -eq "" } | Stop-Process -Force