Cisco Japan Blog

Famous Chollima、GolangGhost RAT の Python 版を展開

1 min read



  • 2025 年 5 月、Cisco Talos は北朝鮮系の攻撃者のみが使用する Python ベースのリモートアクセス型トロイの木馬(RAT)、「PylangGhost」を特定しました。PylangGhost は、以前に報告された GolangGhost RAT と機能が似ており、多くの機能を共有しています。
  • 攻撃者 Famous Chollimapopup_icon は、複数のグループで構成されている可能性があり、最近の攻撃では Python ベースのトロイの木馬で Windows システムを標的とし、MacOS ユーザーに対しては Golang 版を展開し続けています。Linux ユーザーは、これら最新の攻撃の標的にはなっていません。
  • これらの攻撃は仮想通貨やブロックチェーンの専門家を標的としています。
  • オープンソース インテリジェンスによると、影響を受けているのは主にインドの限られたユーザーです。シスコ製品のテレメトリでは、影響を受けたシスコユーザーの存在は確認されていません。

2024 年半ば以降、北朝鮮系の攻撃者グループ Famous Chollima(別名 Wagemole)popup_iconが、すでに報告のある複数の攻撃を通じて活発に活動しています。具体的な攻撃事例には、Contagious Interview(別名 DeceptiveDevelopment)の亜種の使用や、偽の求人広告とスキルテストページの作成などがあります。後者の事例では、スキルテストの最終段階に必要なドライバをインストールするために、コマンドラインをコピーペーストするように指示されますが、このコマンドは悪意のあるものです(ClickFix 攻撃)。

2024 年の年末にかけて、複数の研究者が「GolangGhost」と呼ばれる Famous Chollima のリモートアクセス型トロイの木馬(RAT)popup_iconのソースコードについて報告しました。「GolangGhost」は、同グループによる ClickFix 攻撃で最終ペイロードとしてよく使用されています。

2025 年 5 月、Cisco Talos は、トロイの木馬 GolangGhost と同等の機能を持つ Python 版亜種の展開が始まっていることを発見しました。Cisco Talos ではこの亜種を「PylangGhost」と呼んでいます。

偽の就職面接サイトで PylangGhost に感染

Famous Chollima は、2 つの手法で金銭的利益を追求します。1 つは、偽の企業サイトを作って求職者から個人情報を入手する方法、もう 1 つは、標的の企業に偽の従業員を潜り込ませる方法です。

このブログでは、第 1 の方法に焦点を当てます。このケースでは、実際のソフトウェアエンジニアやマーケティング担当者、設計担当者などが標的にされており、応募を進めるためにスキルテストのページにアクセスするように偽の採用担当者から指示されます。

求人広告の職種から判断すると、Famous Chollima は明らかに、仮想通貨やブロックチェーン テクノロジーの経験者を広く対象にしています。スキルテストのサイトは、標的の絞り込みに役立つように、Coinbase、Archblock、Robinhood、Parallel Studios、Uniswap などの実在の企業を装っています。

図 1. 偽の求人サイトの例

各応募者にはテストサイトの招待コードが届きます。テストサイトでは、職種に応じて、詳細情報を入力し、経験とスキルを確認するために質問に答えるように指示されます。偽サイトは React フレームワークで作成されており、職種に関係なく、いずれも見た目のデザインが非常によく似ています。

2. Robinhood の偽のビジネス開発マネージャ募集で行われる質問の例

すべての質問に答えて個人情報を入力すると、面接担当者に見せるビデオの録画案内が表示され、ボタンを押してカメラ利用を許可するように促されます。

図 3. 質問回答後に表示されるカメラ設定ページ

カメラ利用を許可すると、最後に、必要なビデオドライバをインストールするためのコマンド(実際は悪意のあるコマンド)をコピーペーストし、実行するように指示されます。ただしこれは OS がサポートされている場合です。Talos が Windows と MacOS のテストシステムを使用したところ、図 4 と 5 に示す指示が表示されました。Linux のテストシステムでは、別のエラーメッセージが表示され、ペイロードのダウンロードとインストールに関する指示はありませんでした。

図 4. 悪意のあるコマンドをコピーペーストし、実行するように指示(Windows)

図 5. 悪意のあるコマンドをコピーペーストし、実行するように指示(MacOS)

この偽の修正プログラムをダウンロードする手順は、ブラウザのフィンガープリントによって異なっており、OS に適したシェル言語(Windows の場合は PowerShell またはコマンドシェル、MacOS の場合は Bash)で提供されます。

図 6. ペイロードをダウンロードするためのコマンドシェル、PowerShell、または Bash

PylangGhost – GolangGhost の Python 版亜種

この RAT の Golang 版亜種についてはすでに十分に報告されているため、このブログでは Python 版と、両者の類似点に着目します。最初の段階ではコマンドラインが使用されており、疑いを持たない応募者が、偽の Web ページでの指示に従って、このコマンドをコピーペーストして実行します。

このコマンドラインは、PowerShell の Invoke-Webrequest または curl を使用して ZIP ファイルをダウンロードします。ZIP ファイルには PylangGhost のモジュールと Visual Basic スクリプトファイルが含まれています。このスクリプトは、「lib.zip ファイル」に格納されている Python ライブラリを解凍し、トロイの木馬を起動します。具体的には、実行対象の Python プログラムである「nvidia.py」というファイルを使って、名前を変更した Python インタープリタを実行します。

図 7. 最初の段階では、Python のディストリビューション ライブラリを解凍して RAT を起動するのみ

PylangGhost は適切に構造化された 6 つの Python モジュールで構成されています。攻撃者が別々のプログラミング言語を使用して 2 つの亜種を作成することにした理由や、どちらを先に作成したかについては、Talos では明確な情報を把握していません。コード内のコメントから判断する限り、攻撃者が大規模言語モデル(LLM)を使用して Python 用にコードを書き換えた可能性は低いと考えられます。設定モジュールファイル(「config.py」)内の文字列では Python 版のバージョンは 1.0 となっていますが、Golang 版の該当する設定変数ではバージョン 2.0 となっています。しかし、Talos ではこれら 2 つのバージョン番号が同等の意味を持つと断定できません。

実行はファイル「nvidia.py」から始まり、いくつかのタスクが処理されます。まず、ユーザーがシステムにログオンするたびに RAT を起動するようにレジストリ値を作成します。次に、コマンドアンドコントロール(C2)サーバーとの通信に使用するシステムの GUID を生成し、C2 サーバーに接続して、サーバーと通信するためのコマンドループに入ります。

8. nvidia.py」が C2 サーバーとの通信のためにメインループを実行

設定ファイル「config.py」には、サーバーから受信可能なコマンドが指定されています。これらのコマンドは、すでに報告されている Golang 版 RAT のコマンドと同じです。これらのコマンドは、感染したシステムをリモート制御し、Metamask、1Password、NordPass、Phantom、Bitski、Initia、TronLink、MultiverseX といったパスワードマネージャや仮想通貨ウォレットなど、80 以上のブラウザ拡張機能から Cookie やログイン情報を窃取できます。

コマンド処理モジュール「command.py」は関数ハンドラを定義し、C2 サーバーから受信したコマンドを処理します。

コマンド 機能
qwer COMMAND_INFORMATION – 感染したシステム、ユーザー名、OS バージョンなどの情報を収集
asdf COMMAND_FILE_UPLOAD – ファイルのアップロード
zxcv COMMAND_FILE_DOWNLOAD – ファイルのダウンロード
vbcx COMMAND_OS_SHELL – 感染したシステムのリモートアクセスと制御のために OS シェルを起動
ghdj COMMAND_WAIT – C2 サーバーから指定された秒数の間スリープ
r4ys COMMAND_AUTO – ブラウザ情報窃取コマンド
89io AUTO_CHROME_GATHER_COMMAND – ブラウザ情報窃取コマンドのサブコマンド
gi%# AUTO_CHROME_COOKIE_COMMAND – ブラウザ情報窃取コマンドのサブコマンド
dghh COMMAND_EXIT

1. コマンドと機能

モジュール「auto.py」には、保存されているブラウザログイン情報とセッション Cookie を窃取する機能のほか、さまざまなブラウザ拡張機能からデータを収集する機能が実装されています。

「api.py」は、C2 サーバーとの通信プロトコルを実装する役割を担っており、RC4 暗号を用いて HTTP パケットを暗号化します(C2 サーバーとの HTTP 通信では通常、パケットは暗号化されていません)。HTTP パケット内のデータは RC4 アルゴリズムで暗号化されますが、暗号化キーもパケット構造内で送信されます。パケットは、データの完全性を検証するための 16 バイトの MD5 チェックサム(対象はパケットの残り部分)で始まり、その後に RC4 暗号化キーを含む 128 バイトが続き、最後に暗号化されたデータ BLOB が配置されています。

最後に、「util.py」はファイルの圧縮と解凍を処理します。

Python 版と Golang 版のモジュールの比較

両言語版の類似性を評価するために、各言語で作成されたモジュールの名前と機能を比較しました。構造、命名規則、関数名は非常に似ており、両言語版の開発者が密接に協力しているか、同一人物であることを示しています。

モジュール Python 版の名前 Golang 版の名前
メイン関数モジュール nvidia.py cloudfixer.go
設定モジュール config.py config/constans.go
メインコマンドループ nvidia.py core/loop.go
コマンドハンドラ command.py core/loop.go
ブラウザ窃取機能 auto.py auto/* modules
ファイル圧縮 util.py util/compress.go
Base64 メッセージエンコーディング command.py command/stackcmd.go
重複プロセスチェック nvidia.py instance/check.go
通信プロトコル api.py transport/htxp.go

2. Python 版と Golang 版の RAT モジュール名の比較 

カバレッジ

今回の脅威は、以下の製品で検出してブロックすることが可能です。

Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。

Cisco Secure Email(旧 E メールセキュリティ)は、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。Cisco Secure Email の無料トライアルはこちらからお申し込みください。

Threat Defense Virtual適応型セキュリティアプライアンスMeraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。

Cisco Secure Network/Cloud Analytics(Stealthwatch/Stealthwatch Cloud)は、ネットワークトラフィックを自動的に分析し、接続されているすべてのデバイスで、望ましくない可能性があるアクティビティをユーザーに警告します。

Cisco Secure Malware Analytics(Threat Grid)は、悪意のあるバイナリを特定し、シスコのすべてのセキュリティ製品に保護機能を組み込みます。

Cisco Secure Access は、ゼロトラストの原則に基づいて構築された、最新のクラウド提供型セキュリティサービスエッジ(SSE)です。Cisco Secure Access はユーザーがどこで作業していても、インターネット、クラウドサービス、プライベート アプリケーションへのシームレスかつ透過的でセキュアなアクセスを提供します。Cisco Secure Access の無料トライアルにご興味をお持ちの場合は、シスコのアカウント担当者または認定パートナーまでお問い合わせください。

Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。

Cisco Secure Web Appliance(旧 Web セキュリティアプライアンス)は、危険性のあるサイトを自動的にブロックし、ユーザーがアクセスする前に疑わしいサイトを検査します。

特定の環境および脅威データに対する追加の保護機能は、Firewall Management Center から入手できます。

Cisco Duopopup_icon は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。

オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.orgpopup_icon で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。

ClamAV で、次の脅威を検出できます。

Win.Backdoor.PyChollima-10045389-0

Win.Backdoor.PyChollima-10045388-0

Win.Backdoor.PyChollima-10045387-0

Win.Backdoor.PyChollima-10045386-0

Win.Backdoor.PyChollima-10045385-0

Win.Backdoor.PyChollima-10045384-0

IOC

IOC は、こちらの GitHub リポジトリpopup_iconでも提供しています。

SHA256

a206ea9b415a0eafd731b4eec762a5b5e8df8d9007e93046029d83316989790a - auto.py

c2137cd870de0af6662f56c97d27b86004f47b866ab27190a97bde7518a9ac1b - auto.py

0d14960395a9d396d413c2160570116e835f8b3200033a0e4e150f5e50b68bec - api.py

8ead05bb10e6ab0627fcb3dd5baa59cdaab79aa3522a38dad0b7f1bc0dada10a - api.py

5273d68b3aef1f5ebf420b91d66a064e34c4d3495332fd492fecb7ef4b19624e - nvidia.py

267009d555f59e9bf5d82be8a046427f04a16d15c63d9c7ecca749b11d8c8fc3 - nvidia.py

7ac3ffb78ae1d2d9b5d3d336d2a2409bd8f2f15f5fb371a1337dd487bd471e32 - nvidia.py

b7ab674c5ce421d9233577806343fc95602ba5385aa4624b42ebd3af6e97d3e5 - util.py

fb5362c4540a3cbff8cb1c678c00cc39801dc38151edc4a953e66ade3e069225 - util.py

d029be4142fca334af8fe0f5f467a0e0e1c89d3b881833ee53c1e804dc912cfd - command.py

b8402db19371db55eebea08cf1c1af984c3786d03ff7eae954de98a5c1186cee - command.py

1f482ce7e736a8541cc16e3e80c7890d13fb1f561ae38215a98a75dce1333cee - config.py

ed170975e3fd03440360628f447110e016f176a44f951fcf6bc8cdb47fbd8e0e - config.py

929c69827cd2b03e7b03f9a53c08268ab37c29ac4bd1b23425f66a62ad74a13b - config.py

127406b838228c39b368faa9d6903e7e712105b5ad8f43a987a99f7b10c29780 - config.py

0ec9d355f482a292990055a9074fdabdb75d72630b920a61bdf387f2826f5385 - update.vbs

c2d2320ae43aaa0798cbcec163a0265cba511f8d42d90d45cd49a43fe1c40be6 - update.vbs

e7c2b524f5cb0761a973accc9a4163294d678f5ce6aca73a94d4e106f4c8fea4 - nvidiaRelease.zip

28198494f0ed5033085615a57573e3d748af19e4bd6ea215893ebeacf6e576df - vdriverWin.zip

fc71a1df2bb4ac2a1cc3f306c3bdf0d754b9fab6d1ac78e4eceba5c6e7aee85d - nvidiaRelease.zip

d3500266325555c9e777a4c585afc05dfd73b4cbe9dba741c5876593b78059fd - nvidiaRelease.zip

C2 サーバー

hxxp[://]31[.]57[.]243[.]29:8080

hxxp[://]154[.]58[.]204[.]15:8080

hxxp[://]212[.]81[.]47[.]217:8080

hxxp[://] 31[.]57[.]243[.]190:8080

ダウンロードホスト名

api[.]quickcamfix[.]online

api[.]auto-fixer[.]online

api[.]quickdriverupdate[.]online

api[.]camtuneup[.]online

api[.]driversofthub[.]online

api[.]drive-release[.]cloud

api[.]vcamfixer[.]online

api[.]nvidia-drive[.]cloud

api[.]nvidia-release[.]us

api[.]autodriverfix[.]online

api[.]camdriversupport[.]com

api[.]smartdriverfix[.]cloud

api[.]drivercams[.]cloud

api[.]camtechdrivers[.]com

api[.]web-cam[.]cloud

api[.]camera-drive[.]org

api[.]nvidia-release[.]org

api[.]fixdiskpro[.]online

api[.]autocamfixer[.]online

偽の面接ホスト名

krakenhire[.]com

yuga[.]skillquestions[.]com

uniswap[.]speakure[.]com

doodles[.]skillquestions[.]com

www[.]hireviavideo[.]com

kraken[.]livehiringpro[.]com

quiz-nest[.]com

www[.]smartvideohire[.]com

www[.]talent-hiringstep[.]com

provevidskillcheck[.]com

skill[.]vidintermaster[.]com

digitaltalent[.]review

robinhood[.]ecareerscan[.]com

evalswift[.]com

livetalentpro[.]com

quantumnodespro[.]com

evalassesso[.]com

parallel[.]eskillora[.]com

coinbase[.]talentmonitoringtool[.]com

uniswap[.]testforhire[.]com

coinbase[.]talenthiringtool[.]com

crosstheages[.]skillence360[.]com

parallel [.] eskillprov [.] com

assesstrack [.] com

coinbase [.] talentmonitoringtool [.] com

talent-hiringtalk[.]com

uniswap[.]prehireiq[.]com

fast-video-recording[.]com

 

本稿は 2025 年 6 月 18 日にTalos Grouppopup_icon のブログに投稿された「Famous Chollima deploying Python version of GolangGhost RATpopup_icon」の抄訳です。

 

コメントを書く