Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Loki — 🧙♂️ スクリプトジャッキングの脆弱性があるElectronアプリケーション向けNode.jsコマンド&コントロール | Kitploit
ツール/GitHubGitHub/boku7/loki
永続化メカニズムエクスプロイトIDS/IPS回避シェルコードポストエクスプロイトコマンド&コントロールレッドチーミングペイロード開発
GitHubboku7/loki

Loki

🧙♂️ スクリプトジャッキングの脆弱性があるElectronアプリケーション向けNode.jsコマンド&コントロール

リポジトリを見る
1.4k220226ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

🧙‍♂️ Loki Command & Control

Lokiは、Node.jsで書かれたステージ1のコマンド&コントロール(C2)フレームワークで、脆弱なElectronアプリをスクリプトジャックするために構築されています MITRE ATT&CK T1218.015。レッドチーム運用向けに開発されたLokiは、信頼された署名済みElectronアプリを悪用することで、セキュリティソフトウェアの回避とアプリケーション制御のバイパスを実現します。

スクリプトジャックは、実行時に読み込まれるJavaScriptファイルを任意のNode.jsコードで改変することにより、Electronアプリの実行フローを乗っ取ります。この手法は以下の目的に利用できます:

  • Electronアプリへのバックドア設置
  • Electronアプリのホローイング
  • 別プロセスへのチェーン実行

スクリプトジャックを利用して別プロセスへのチェーン実行を行うツールはすでにいくつか存在しますが、Lokiは、コード署名を無効化することなく署名済みElectronアプリへのバックドア設置とホローイングを可能にする初めてのツールです。

Lokiの仕組みの詳細については、こちらのブログ記事をチェックしてください:

  • Loki C2でWindows Defender Application Controlをバイパスする

🚀 コントリビューター

名前貢献内容
Bobby Cooke開発者兼メンテナー
Dylan Tran開発者
Ellis Springeアルファテスター
Shawn Jonesアセンブリ実行コード
Trusted SecCOFFLoaderコード
Simon Exleyビデオ制作者
Clinton Elvesビデオ制作者
John Hammondビデオ制作者

ビデオ

John Hammondによる、Loki C2でCursor AIにバックドアを仕掛けるビデオをチェックしてください! 🎩

  • このビデオでは、新しい脆弱なElectronアプリケーションの発見、Loki C2によるバックドア設置、クライアントGUIでのセットアップまでを解説しており、さらにアプリをバックグラウンドで永続的に実行し続ける2つの方法も考案しました 🪄 -- エンドユーザーから見るとCursorは正常に動作しています! 🥷

Cursor AIにバックドアを仕掛けた

Simon Exley & Clinton Elvesによる、Loki C2のセットアップから使い始めるまでのビデオをチェックしてください! 🧙‍♂️

Loki C2でWindows Defender Application Controlをバイパスする

機能と詳細

  • Azure Storage Blob C2チャネル
    • C2ストレージアカウントを保護するSASトークン
  • AES暗号化されたC2メッセージ
  • プロキシ対応エージェント
    • エージェント、シェルコード実行、アセンブリのfork-n-run方式の実行にChromiumレンダラーの子プロセスを使用します -- Chromiumのプロキシ対応機能を継承します。
  • チームサーバーレス
    • エージェントがTeamserverにメッセージを送信する従来のC2とは異なり、Teamserverは存在しません
    • GUIクライアントとエージェントの両方が同じデータストアにチェックインします
  • 隠密実行 -- バックグラウンドで動作します

コマンド

すべてのエージェントコマンドはネイティブなNode.JSで記述されており、追加の依存関係やライブラリのロードイベントを必要としません。ただし、scexecコマンドとassemblyコマンドは例外で、keytar.nodeとassembly.nodeのライブラリロードを行います。

  • すべてのコマンドは/を使用したパスを受け付けます。パス内の\は機能しません。
コマンド説明
helpヘルプを表示します。使用法: help または help scan
pwd現在の作業ディレクトリを表示
lsファイルとディレクトリの一覧表示
catファイルの内容を表示
envプロセスの環境変数を表示
spawn子プロセスを生成
drivesドライブを一覧表示
mvファイルを新しい宛先に移動
sleepジッター付きで秒単位でスリープ
cpソースファイルを宛先にコピー
exit-allエージェントを終了し、以降コールバックしなくなります
loadディスクからNode PEファイルをプロセスにロード
scexecシェルコードを実行
assembly.NETアセンブリを実行しコマンド出力を取得
uploadローカルのオペレーターマシンからリモートのエージェントマシンへファイルをアップロード
downloadリモートのエージェントマシンからローカルのオペレーターマシンへファイルをダウンロード
scan選択したポートでCIDRレンジに対してTCPネットワークスキャンを実行
dnsDNSルックアップ。システムのDNS設定を利用
setassemblyノードとscexecノードのNodeロードパスを設定
bofCOFFファイルを実行して出力を返す

Set - アプリケーション制御の除外パスからのノードのロード

  • ノードファイルに対するライブラリのロードを妨げるアプリケーション制御ルールがある場合、setコマンドを使用してassembly.nodeとscexec.nodeのロードパスを変更できます。
  • ls、cat、cp、mvを使用することで、アプリケーション制御ルールを列挙し、除外対象となっている書き込み可能なディレクトリを発見できる可能性があります。
  • これにより、ノードファイルを除外ディレクトリに配置し、setコマンドでロードパスを除外ディレクトリに変更することで、アプリケーション制御をバイパスできます。
  • この攻撃ベクトルの詳細については、Daniel Duggan (@_RastaMouse)によるCRTO2コースを参照してください。
[04-04-2025 8:50AM MST] advsim$ help set
Set the Node load paths for assembly node and scexec nodes
	set scexec_path C:/Users/user/AppData/ExcludedApp/scexec.node
	set assembly_path C:/Users/user/AppData/ExcludedApp/assembly.node
[04-04-2025 8:51AM MST] advsim$ set scexec_path C:/Users/user/AppData/ExcludedApp/scexec.node
SCEXEC Node Load Path Set to : C:/Users/user/AppData/ExcludedApp/scexec.node

エージェントの機能

エージェントの機能の詳細はこちらをクリック

クライアントの機能

クライアントの機能の詳細はこちらをクリック

🧙‍♂️ イリュージョンの展開

まず、Microsoft TeamsのようにASARのセキュリティ整合性チェックを行わない、脆弱なElectronアプリケーションを特定する必要があります。新しいアプリケーションには、バックドア設置を防ぐ整合性チェックが含まれている場合があります。対象アプリの古いバージョンの方が脆弱である可能性が高くなります。

  • 脆弱なElectronアプリの発見ガイド

簡単な手順

Electronアプリにバックドアを仕掛ける場合、エージェントをコンパイルする必要はありません。{ELECTRONAPP}/resources/app/の内容をLokiエージェントのファイルに置き換えるだけです。

詳細な手順

ステップ1 : Azure Storage Blobアカウントの作成とSASトークンの取得

  • Azure Portalを使用してAzure Storage Accountを作成
  • Azure CLIを使用してAzure Storage Accountを作成

ステップ2 : 難読化されたLokiペイロードの作成

  • このリポジトリをクローンしてcdで移動します
  • Node.JSをインストールします
  • javascript-obfuscatorモジュールをインストールします
npm install --save-dev javascript-obfuscator
  • create_agent_payload.jsスクリプトを実行して、ストレージアカウント情報を含むLokiペイロードを作成します
bobby$ node create_agent_payload.js 
[+] Provide Azure storage account information:
        - Enter Storage Account  : 7f7584ty218ba5dba778.blob.core.windows.net
        - Enter SAS Token        : se=2025-05-28T23%3A14%3A48Z&sp=rwdlac&spr=https&sv=2022-11-02&ss=b&srt=sco&sig=5MXQzJ6FDZK8yYiBSgJ6FDZKgQzJMXBSgg6qE4ydrJ6FDZKSgg%3D

[+] Configuration:
        - Storage Account : 7f7584ty218ba5dba778.blob.core.windows.net
        - SAS Token       : se=2025-05-28T23%3A14%3A48Z&sp=rwdlac&spr=https&sv=2022-11-02&ss=b&srt=sco&sig=5MXQzJ6FDZK8yYiBSgJ6FDZKgQzJMXBSgg6qE4ydrJ6FDZKSgg%3D
        - Meta Container  : mllyi2zjmafjm

[+] Updated /Users/bobby/apr2/LokiC2/config.js with storage configuration. 
 - Enter into the Loki Client UI
        Loki Client > Configuration

[+] Modifying PE binaries to have new hashes...
        - Payload assembly.node hash : e9d126407264821d3c2d324da0e2d1bc13cbc53e7c56340fe12b07f69b707f02
        - Payload keytar.node   hash : 292c14ffebd6cae3df99d9fbee525e29a5a704f076b82207eb3e650de45b075d
ツールをダウンロード