Python に PY#RATION というマルウェア:WebSocket でスティルス C2 通信

New stealthy Python RAT malware targets Windows in attacks

2023/01/25 BleepingComputer — Python ベースの新しいマルウェアが発見されたが、侵入したシステムを操作するための (RAT:Remote Access Trojan) 機能を備えていることが判明した。脅威分析会社 Securonix の研究者により、PY#RATION と名付けられた新しい RAT は、WebSocket プロトコルを用いて C2 Server と通信し、被害者のホストからデータを流出させるものだ。同社の技術レポートでは、このマルウェアの動作が分析されている。PY#RATION キャンペーンが始まった 2022年8月以降において、複数のバージョンが確認されていることから、この RAT が活発に開発されていると、研究者たちは示唆している。


ショートカットファイル経由の配布

PY#RATION マルウェアは、画像に偽装された2つのショートカット .LNKファイル (front.jpg.lnk/back.jpg.lnk) を取り込み、パスワード保護された、ZIP ファイルを添付するフィッシング・キャンペーンで配布されている。

The two LNK files that fetch the two batch files
The two LNK files that fetch the two batch files (Securonix)

このショートカットを起動すると、被害者は2つの画像をを見ることになる。しかし、悪意のコードが実行され、C2 (後の攻撃では Pastebin) への接続が行われ、2つの.TXTファイル (front.txt/back.txt) がダウンロードされる。このファイルは、最終的に BAT ファイルにリネームされ、マルウェアの実行に対応するようになる。

そしてマルウェアが起動されると、ユーザーの temp ディレクトリ内に “Cortana” および “Cortana/Setup” ディレクトリが作成され、その場所から追加の実行可能ファイルがダウンロード/解凍/実行される。

さらに、ユーザーの Startup ディレクトリにバッチファイル “CortanaAssist.bat” が追加され、永続性も確立される。Windows 上の Microsoft のパーソナル・アシスタント・ソリューションである Cortana を悪用することで、マルウェアのエントリをシステムファイルとして偽装する。

The campaign's complete infection chain
The campaign’s complete infection chain (Securonix)
ステルス型PY#RATION RAT

ターゲットに配信されるマルウェアは、”pyinstaller” や “py2exe” といった自動パッカーを使用して、実行ファイルにパックされた Python RAT である。このパッカーにより Python コードは、実行に必要なライブラリを含む Windows 実行ファイルへと変換される。

この手法を用いることで、ペイロードのサイズは、バージョン 1.0 (初期) で 14MB に、バージョン1.6.0 (最新) で 32MB になる。最新のバージョンでは、追加コード (+1000行) と Fernet 暗号のレイヤーを備えているため、より大きくなっている。

Securonix のテストによると、バージョン 1.6.0 のペイロードを検出できたのは、VirusTotal にある1つのアンチウイルス・エンジンのみであり、その他では検出されずに展開されたとのことだ。Securonix はマルウェア・サンプルのハッシュを共有していないが、このキャンペーンのものと思われる、以下のファイルを BleepingComputer は発見できた。

PyRation malware detection rate
Detection rate for Py#Ration RAT (BleepingComputer)​​​​

Securonix のアナリストたちは、ペイロードの内容を抽出し、pyinstxtractor ツールを用いてコードの関数を調べ、マルウェアの機能を特定した。

Extracted modules of the executable
Extracted components from the executable (Securonix)

PY#RATION RAT のバージョン 1.6.0 に見られる機能には、次のようなものがある。

  • ネットワーク列挙の実行
  • 侵入したシステムと C2 との間でのファイル送受信
  • 被害者のキーストロークを記録するキーロガーの実行
  • シェルコマンドの実行
  • ホスト列挙の実行
  • Web ブラウザからのパスワードとクッキーの抽出
  • クリップボードからのデータ窃取
  • ホスト上で動作しているアンチウイルス・ツールの検出
Stealing data from Chrome, Brave, Opera, and Edge
Stealing data from Chrome, Brave, Opera, and Edge browsers (Securonix)

Securonix の研究者たちは、「このマルウェアは、クライアント/サーバの双方に WebSocket 通信を提供する、Python の built-in Socket.IO フレームワークを活用 している。このチャネルは、通信とデータ流出の両方に使用される」と述べている。

WebSocket の利点は、ネットワークで一般的に開放されている ポート 80/443 などを使用し、単一の TCP 接続上でマルウェア と C2 サーバが同時にデータを送受信できることんびある。

研究者たちは、マルウェアのバージョン 1.0〜1.6.0 までのキャンペーンを通じて、脅威アクターが同じ C2 アドレス (169[.]239.129.108) を使用していることに気付いた。

研究者によると、この IP は IPVoid のチェック・システムでブロックされていないため、数ヶ月間にわたり PY#RATION は検出されなかったことになる。

現時点において、このマルウェアを使用した具体的なキャンペーンの詳細や、ターゲット/配布量/運営者などについては、不明なままである。

Securonix は、PY#RATION キャンペーンの IoC (indicators of compromise) も発表している。

ショートカット .LNKファイルと、パスワード保護された ZIP ファイルの組み合わせが、最近の初期侵入における定番パターンになっているようです。それにより、エッジやエンドポイントでの検出を巧みに回避しているようです。このペイロードを検出できたのは、VirusTotal にある1つのアンチウイルス・エンジンのみという調査結果が、その能力を裏付けています。さらに、Microsoft の正規製品である Cortana を隠れ蓑に使い、WebSocket で C2 通信を行うという、手強い RAT の登場です。

%d bloggers like this: