本記事は、OSINTを用いたC2(Command and Control)サーバハンティングの実例として、Shodanで観測された管理パネル「Stealer Panel」を起点に、関連するサーバや検体を分析したものです。調査を進めた結果、これらは単一の攻撃基盤ではなく、3つの異なる攻撃活動に分類されると考えています。
本記事では、個々のマルウェアの詳細解説よりも、1つの気になる観測から出発して、検体やインフラの特徴を手がかりに関連ホストへ「ピボット」し、それらを慎重に切り分けていく調査プロセスをご紹介したいと考えています。
攻撃活動A:Django製の Stealer Panel 群。配布・収集API・管理画面が役割分担された情報窃取基盤。
攻撃活動B:Hidden0wn / EsqueleSquad 系。Node.js製の窃取・RAT基盤で、2023年の攻撃者名が検体内に残存。
攻撃活動C:SheetRAT / NonEuclid RAT 系。C2サーバの管理パネル名称は「Stealer Panel」だが、実態はRAT運用基盤。
これらを同一の攻撃者として束ねる訳ではなく、「似ているツールを使う別々の攻撃活動」として切り分けて扱います。
1. 本稿の目的:ハンティングとクラスタリング
本稿では、OSINT調査手法の1つであるC2サーバハンティングの一例を解説します。C2サーバハンティングとは、攻撃者が攻撃に使用するために準備している公開サーバを、能動的な侵入行為を伴わずに、Shodanなどの検索エンジン型サービスや受動的な脅威情報から事前に検出する取り組みを指します。
攻撃インフラを準備段階で捕捉できれば、次のような対応が可能となります。
- 今後発生し得る攻撃キャンペーンの予測
- 攻撃規模(感染端末数・対象地域など)の推定
- 実際の攻撃活動の詳細把握と、事前ブロックによる予防的防御
本稿でもう1つ重視するのが 「クラスタリング」 です。ピボットで関連しそうなホストが増えていくと、つい1つの大きな攻撃基盤として描きたくなります。しかし、表面的に似ているだけのものを安易に束ねると、誤った全体像や誤帰属につながります。本稿では、何をもって「同じ」とし、何をもって「別」とするかを意識しながら、観測を独立した攻撃活動へ切り分けていきます。
2. 起点:Stealer Panel の発見
調査の起点は、Shodanで確認された管理パネル「Stealer Panel」です。次のクエリで該当ホストを列挙できます。
該当したホストのうち、調査時点でアクセス可能だったものは限られていました。攻撃インフラは短命であることが多いため、観測できた時点で速やかに記録・保全することが重要です。ここでは、そのうち中身を確認できたホストを起点に調査を進めます。
3. 攻撃活動A:Django Stealer Panel 群
最初に観測内容を具体的に確認できたのは 167.99.146[.]109 です。このホストは、Shodanの観測情報から、次のようなサービスを公開している(または公開していた)ことが分かりました。
記載の通り、中にはオープンディレクトリになっていたサービスも存在していました。
このオープンディレクトリには、Shodanで確認する限り次のようなファイルが並んでいました。単なるブラウザ情報窃取ツールにとどまらず、シェルコード的なペイロードやWebDAV連携スクリプトも含まれています。
- chromelevator.exe — Chromiumの資格情報復号に用いる公開ツール ChromElevator を武器化したビルド
- hbd.bin — Donut系のシェルコード/ペイロードコンテナとみられるバイナリ
- agent.bin・calc.bin・webdav_runner.ps1 — 追加のペイロードや実行補助スクリプト
VirusTotalで関連検体を確認すると、これらのファイルは実際にマルウェアのコールバック先として参照されていました。収集APIへの送信も含め、配布・収集・管理が同一ホスト上で完結する構成です。
3.1 同一パネルを持つ別ホスト
Shodanで同じパネルのフィンガープリント(title hash・DOM hashなど)を手がかりに探すと、178.128.173[.]9:443 が同一のDjangoアプリケーションを稼働させていることが分かりました。これらのフィンガープリントが一致することから、同一のパネルキットを展開したホストである確度は高いと評価します。
3.2 検体内部から得た予備インフラ
武器化された chromelevator.exeを解析すると、稼働中のホストに加えて 174.138.33[.]139 が、同じ3ポート構成(443, 8000, 8080)と同じAPIパス /api/receive/ とともに埋め込まれていました。旧C2・予備C2・開発環境のいずれかとみています。
4. 検体を起点とした横展開
クラスターAが「配布ディレクトリ+公開ツール」で構成されていることから、同じような公開ディレクトリで検体を配る別のホストがあるのではないかと考え、配布物の1つであるchromelevator.exeをファイル名で横断検索しました。
複数のホストが該当しましたが、その中に、まだ調査していなかった 163.245.206[.]209 が含まれていました。このホストは調査時点でもマルウェアを公開していたため、次の対象として掘り下げます。
実際、後述のとおり 163.245.206[.]209 は攻撃活動Aとは実装・ハッシュ・送信方式・パネルが異なり、別と評価しています。ここではあくまで次の調査対象を見つけるための「ピボットの足がかり」として扱います。
5. 攻撃活動B:Hidden0wn / EsqueleSquad
163.245.206[.]209 は、:6666 にPython SimpleHTTPの公開ディレクトリを持ち、autoplay.exe・chromelevator.exe・encryptor.exe・hack-browser-data.exe・Windows_Get_Update.exe などを配布していました。
5.1 検体内の EsqueleSquad / Hidden0wn 文字列
これらの検体を静的に解析したところ、内部に次の特徴的な文字列が残存していました。
「EsqueleSquad」は、2023年にPyPIやnpmを介して不正パッケージ経由でマルウェアを配布した攻撃者の名称(別名 Skeleton Squad)です。[6][7][8]
関連ドメイン hidden0wn[.]xyz は2026-03-15に取得されています。以上から、当該攻撃者による新しい活動、あるいは名称の模倣の可能性が考えられます。EsqueleSquad は広く知られた攻撃者とは言い難く、模倣の動機は相対的に小さいと考えられるため、模倣の可能性はやや低いと評価しますが、断定はできません。
5.2 Hidden0wn パネル
:3000 では「Hidden0wn」というタイトルのExpress製HTTPサーバが稼働していました。調査中、このパネルには複数のセッションが表示されました。
パネルには、シェル実行・プロセスやファイルの確認・任意コマンド送信といったリモート操作機能と思われる要素が確認されました。ただし、UI操作で外部へのリクエスト送信が発生しないことから、現状ではモック(見せかけの実装)である可能性が高いと考えます。とはいえ、今後は実際のマルウェア配布とC2運用に転用される可能性があります。
5.3 セッションIPの地理的分布
表示されたセッションが実際の感染端末である可能性を考慮し、接続IP(5件)を国ベースで確認したところ、5 IPのうち3つがロシアでした。
実IPであれば:攻撃対象(被害者)を示している可能性があります。
モックであれば:攻撃者の趣向、場合によっては所属国などを示唆している可能性があります。
いずれにせよサンプル数が少なく、現時点でここから確定的な結論を導くことはできません。
5.4 調査中のインフラ閉鎖
調査を進める中で、攻撃者が自身の運用ミスに気づいたとみられ、オープンディレクトリは閉鎖されました。準備段階のインフラが露出している期間は限られるため、露出を検知した時点での迅速な観測・保全がこの種のハンティングでは特に重要です。
5.5 攻撃活動Aとの違い
発見した攻撃活動AとBの違いを考えると、chromelevator.exe という同じ名前のツールを配る点では共通しますが、実体は明確に異なります。
EsqueleSquad / Hidden0wn
評価: 両者は同じ公開技術をそれぞれ別々に武器化した攻撃活動とみるのが妥当です。公開しているファイル名の一致だけでは同一の攻撃者とは言えません。
6. 攻撃活動C:SheetRAT / NonEuclid RAT
Stealer Panel を探す過程では、名称は同じでも実態の異なるホストも見つかりました。2.26.99[.]25 は、urlscan.ioの保存結果で「Stealer Panel」を表示していましたが、関連する検体の挙動を確認すると、情報窃取専用パネルというより RAT(遠隔操作型マルウェア)の運用基盤 でした。
このホストの証明書CNは fragment[.]sbs で、直接IPと当該ドメインの保存スクリーンショットは一致していました。
6.1 関連マルウェアの一致
VirusTotal上で、少なくとも4件の関連PEが 2.26.99[.]25:9797 にTCP接続していました。これらは次を共有しています。
- .NETアセンブリ名 SystemInformer、共通の vhash・imphash
- C:\Program Files\xdwdSearch.exe / C:\Windows\xdwdSearcher.exe へのマルウェア設置
- スケジュールタスク ShellHost(1分周期)・CookieManager(30分周期)による永続化
- Windows Firewallへの受信許可ルール追加
これらのファイル名・タスク名・永続化方式は、Triageが SheetRAT(別名NonEuclid RAT) として公開している挙動と一致し、またimphashも一致していました。ファミリー判定の確度は高いと評価します。
「Stealer Panel」というパネルのタイトルは一致するものの、別物であると考えます。
7. 各攻撃活動の関係評価
以上の観測を、攻撃活動間の関係として整理します。CTIの原則に従い、観測事実と推定を区別し、断定を避けています。
8. まとめ
本事例では、Shodanで見つけた1つの「Stealer Panel」を起点に、検体やインフラの特徴を手がかりにピボットを重ねることで、少なくとも3つの独立した攻撃活動を発見しました。同時に、表面的に似ているものも、詳細に確認すると違いが出ることから、帰属を考える際には慎重な切り分けが重要であることも示しています。
公開サーバを継続的に調査することは、攻撃活動が実行される前にそれを検出する有効な手法の1つです。悪性サーバを早期に検出してブロックすることで、予防的な対策が可能となります。
- 防御者の皆さまは、付録AのIOCを自組織のプロキシ/EDR/ネットワーク監視に投入し、ヒットの有無を確認されることを推奨します。
- パネルのフィンガープリント(title/DOM/Server hash)やポート構成も含めて同一実装であれば、Stealer PanelなどといったHTMLタイトルによる調査よりも精度の高いハンティングになりえます。
本レポートが、組織のセキュリティをより堅固にするための一助になれば幸いです。
付録A:IOC 一覧
防御的な検知・ハンティング目的でご利用ください。ネットワークインジケータはデファング表記としています。
A.1 ネットワークIOC
A.2 ハッシュ(SHA-256)
名称のファイル
14c2d48751b5c0475a03457edcfdabea1860f07af3210e293be0a5283cb554ef
3f3792bd665e94961087621a2f1c0ded1b47970b0bf33f9c8ce69e9912515f79
9486e101efa0b00ae1013f78baa78cc00337097c00aeb0797035fc0fb1f35295
参考(2023年 EsqueleSquad 検体):
- WindowsCache.exe / Esquele.exe: 8ab8ddfa3f61334cf9386b62aea3a761852b3d785d9f21b8a638cc42b0af7afd
update.exe: 51162376051669cbf4d2b11b1300ba7be6758ca0ca1979ce736fe70ae7289bc2
参考文献
[1] Shodan - StealerPanelを検索
https://www.shodan.io/search?query=title%3A%22Stealer+Panel%22
[2] Shodan - 167.99.146[.]109
https://www.shodan.io/host/167.99.146.109
[3] VirusTotal - 167.99.146[.]109へアクセスする検体情報
https://www.virustotal.com/gui/file/1958f58afa200959029990e27bb5fcb180065e3e6eba99430e0b7a59d6d9c428/relations
[4] Shodan - chromelevator.exeをホストしているサーバの発見
https://www.virustotal.com/gui/file/1958f58afa200959029990e27bb5fcb180065e3e6eba99430e0b7a59d6d9c428/relations
[5] VirusTotal - autoplayfull.exe の検体情報
https://www.virustotal.com/gui/file/fe1a09913268d56b3d54972b54a1557292e95206842cdae27a6ac255a21a79bc/relations
[6] Checkmarx: The “Skeleton Squad” — 5,000超の悪性PyPIパッケージ
https://zero.checkmarx.com/the-skeleton-squad-tracing-the-origins-and-scope-of-5000-malicious-packages-on-pypi-7516c16e4da9
[7] Socket: The “Skeleton Squad” is now targeting NPM
https://socket.dev/blog/skeleton-squad-npm
[8] Sonatype: Attacker Floods PyPI with 450+ malicious packages
https://www.sonatype.com/blog/attacker-floods-pypi-with-450-malicious-packages-that-drop-windows-trojan-via-dropbox
[9] Shodan - 163.245.206[.]209
https://www.shodan.io/host/163.245.206.209
執筆者プロフィール
大芝 大(おおしば ひろし)
担当領域:サイバーセキュリティインテリジェンス
専門分野:サイバーセキュリティインテリジェンス
CyIOCサービスにてCTIアナリストとして従事。