Python ベース PyRAT における永続化の手法:Windows/Linux を標的とするマルウェアを検出

Python-based PyRAT with Cross-Platform Capabilities and Extensive Remote Access Features

2026/01/29 CyberSecurityNews — 高度な監視機能とデータ窃取機能を備え、Windows/Linux システムを標的とする、新たな Python ベースのリモート・アクセス型トロイの木馬 (RAT) が出現した。このマルウェアは、暗号化されていない HTTP チャネルを介して Command-and-Control (C2) 通信を確立し、リモートの攻撃者に対してコマンド実行/ファイル窃取/スクリーンショット取得を提供する構成となっている。

このマルウェアが実行されると、直ちに被害システムのフィンガープリント収集が開始され、オペレーティング・システム種別/ホスト名/現在のユーザー名などの詳細情報が窃取される。

これらの情報は攻撃者のサーバへ送信され、セッションをまたいだ被害者の追跡が可能になってしまう。K7 Security Labs の研究者たちは、VirusTotal における定期調査の中でこのマルウェアを発見し、Python で記述された ELF バイナリを特定した。

Imported modules (Source - K7 Security Labs)
Imported modules (Source – K7 Security Labs)

このトロイの木馬は Python 2.7 と PyInstaller 2.1 を用いてパッケージ化されており、正規の実行ファイルを装いながら悪意のコードを隠蔽している。抽出後の専用ツールによる分析の結果として確認されたのは、”agent-svc.pyc” というファイル内にメイン・エントリ・ポイントが存在し、Agent と呼ばれる単一クラスの下に完全なリモート・アクセス機能が実装されていることだ。このマルウェアは、オペレーティング・システムに応じて、各 OS に 最適化された方法で永続化を実現する。

Communication with C2 (Source - K7 Security Labs)
Communication with C2 (Source – K7 Security Labs)

Linux システムでは、正規の Debian パッケージ管理ツールを模倣した名称を、検知回避を目的として使用し、”~/.config/autostart/dpkgn.desktop” に偽装した自動起動エントリを作成する。このファイルはユーザー・ログイン時に自動実行され、管理者権限を必要とせずにマルウェアの常駐を維持する。Windows システムでは、カレント・ユーザーの Run レジストリ・キーに “lee” という名称のエントリを追加し、ユーザー・レベル権限の状態で、起動時の自動実行を確保する。

Command-and-Control インフラストラクチャ

このトロイの木馬は、特定のエンドポイントに対する基本的な HTTP POST リクエストを用いて C2 サーバと通信し、暗号化を行わないプレーンな JSON 形式でシステム情報を送信する設計となっている。この構成により、通信内容はネットワーク監視や検知に対して極めて脆弱となっている。その一方で、被害者のユーザー名と MAC アドレスを組み合わせた半永続的な識別子を生成し、システム情報の一部が変更された場合でも、感染個体の追跡を可能としている。

Windows Persistence (Source - K7 Security Labs)
Windows Persistence (Source – K7 Security Labs)

C2 との通信頻度は、アクティビティ状態に応じて調整される。アイドル状態では間隔を延長してネットワーク上での可視性を低減し、アクティブなセッション中は 0.5 秒ごとにポーリングを実施してコマンドへの即応性を維持する。

このマルウェアは、 広範なファイル操作機能を備えており、その中には multipart/form-data エンコーディングを用いた無制限のアップロード/ダウンロードも含まれる。

ディレクトリ構造全体の列挙/作業ディレクトリの変更/ DEFLATE 圧縮アルゴリズムを使用した ZIP アーカイブ作成による一括データ流出も可能である。スクリーンショット取得機能では、Pillow (PIL) の ImageGrab モジュールを用いて画面全体をキャプチャし、一時的な JPEG ファイルとして保存した後に、攻撃者のサーバへと自動的にアップロードする。

すべての操作は個別のスレッドで実行され、メイン通信ループをブロックしない構成を持ち、既存タスクの実行中であっても、新たなコマンドの受信が可能となっている。