
- 2025 年 5 月、Cisco Talos は北朝鮮系の攻撃者のみが使用する Python ベースのリモートアクセス型トロイの木馬(RAT)、「PylangGhost」を特定しました。PylangGhost は、以前に報告された GolangGhost RAT と機能が似ており、多くの機能を共有しています。
- 攻撃者 Famous Chollima
は、複数のグループで構成されている可能性があり、最近の攻撃では Python ベースのトロイの木馬で Windows システムを標的とし、MacOS ユーザーに対しては Golang 版を展開し続けています。Linux ユーザーは、これら最新の攻撃の標的にはなっていません。 - これらの攻撃は仮想通貨やブロックチェーンの専門家を標的としています。
- オープンソース インテリジェンスによると、影響を受けているのは主にインドの限られたユーザーです。シスコ製品のテレメトリでは、影響を受けたシスコユーザーの存在は確認されていません。
2024 年半ば以降、北朝鮮系の攻撃者グループ Famous Chollima(別名 Wagemole)
が、すでに報告のある複数の攻撃を通じて活発に活動しています。具体的な攻撃事例には、Contagious Interview(別名 DeceptiveDevelopment)の亜種の使用や、偽の求人広告とスキルテストページの作成などがあります。後者の事例では、スキルテストの最終段階に必要なドライバをインストールするために、コマンドラインをコピーペーストするように指示されますが、このコマンドは悪意のあるものです(ClickFix 攻撃)。
2024 年の年末にかけて、複数の研究者が「GolangGhost」と呼ばれる Famous Chollima のリモートアクセス型トロイの木馬(RAT)
のソースコードについて報告しました。「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 Duo
は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org
で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。
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 リポジトリ
でも提供しています。
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 Group
のブログに投稿された「Famous Chollima deploying Python version of GolangGhost RAT
」の抄訳です。