Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Loki — 🧙‍♂️ 用于脚本劫持存在漏洞的 Electron 应用的 Node.js 命令与控制 | Kitploit
工具/GitHubGitHub/boku7/loki
持久化机制漏洞利用IDS/IPS规避Shellcode后渗透利用命令与控制红队Payload 开发
GitHubboku7/loki

Loki

🧙‍♂️ 用于脚本劫持存在漏洞的 Electron 应用的 Node.js 命令与控制

查看仓库
1.4k220206个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

🧙‍♂️ Loki 命令与控制(C2)

Loki 是一个用 Node.js 编写的阶段一命令与控制(C2)框架,旨在对易受攻击的 Electron 应用实施脚本劫持(script-jacking)MITRE ATT&CK T1218.015。Loki 专为红队行动而开发,通过利用受信任的、已签名的 Electron 应用,实现规避安全软件并绕过应用程序控制。

脚本劫持通过使用任意 Node.js 代码修改 Electron 应用在运行时加载的 JavaScript 文件,从而劫持其执行流程。该技术可用于:

  • 对 Electron 应用植入后门
  • 掏空 Electron 应用
  • 将执行链式传递给另一个进程

虽然已有多种工具涉及利用脚本劫持将执行链式传递给另一个进程,但 Loki 是首个能够对已签名 Electron 应用进行后门植入和掏空操作,且不会使它们的代码签名签名失效的工具。

有关 Loki 工作原理的更多细节,请查看这篇博客文章:

  • 使用 Loki C2 绕过 Windows Defender 应用程序控制

🚀 贡献者

姓名贡献
Bobby Cooke创建者与维护者
Dylan Tran创建者
Ellis SpringeAlpha 测试者
Shawn Jones汇编执行代码
Trusted SecCOFFLoader 代码
Simon Exley视频创作者
Clinton Elves视频创作者
John Hammond视频创作者

视频

看看 John Hammond 制作的这段关于使用 Loki C2 对 Cursor AI 进行后门植入的视频吧!🎩

  • 在视频中,他演示了如何发现一个新的易受攻击的 Electron 应用、使用 Loki C2 对其进行后门植入、完成客户端 GUI 的设置,我们甚至还提出了两种让应用在后台持续运行的方法 🪄 -- 从最终用户的角度来看,Cursor 运行完全正常!🥷

我对 Cursor AI 进行了后门植入

看看 Simon Exley & Clinton Elves 制作的这段关于快速上手 Loki C2 的视频吧!🧙‍♂️

使用 Loki C2 绕过 Windows Defender 应用程序控制

功能与详情

  • Azure 存储 Blob C2 通道
    • 使用 SAS 令牌保护 C2 存储帐户
  • AES 加密的 C2 消息
  • 支持代理的 agent
    • 使用 Chromium 渲染器子进程执行 agent、shellcode 以及 assembly 的 fork-n-run 风格执行 -- 继承了 Chromium 的代理感知能力。
  • 无需 Teamserver
    • 与传统 C2 中 agent 向 Teamserver 发送消息不同,Loki 没有 Teamserver
    • GUI 客户端和 agent 均向同一数据存储进行回连
  • 隐藏执行 -- 在后台运行

命令

所有 agent 命令均使用原生 Node.JS 编写,不需要额外的依赖或库加载操作。唯一例外的是 scexec 和 assembly 命令,它们会对 keytar.node 和 assembly.node 执行库加载。

  • 所有命令接受使用 / 的路径,路径中的 \ 将无法正常工作。
命令说明
help显示帮助。用法:help 或 help scan
pwd打印当前工作目录
ls列出文件和目录
cat显示文件内容
env显示进程环境变量
spawn生成一个子进程
drives列出驱动器
mv将文件移动到新位置
sleep休眠指定秒数并带有抖动(jitter)
cp将源文件复制到目标位置
exit-all退出 agent,agent 之后不再回连
load将磁盘上的 node PE 文件加载到进程中
scexec执行 shellcode
assembly执行 .NET assembly 并获取命令输出
upload将文件从本地操作员主机上传到远程 agent 主机
download将文件从远程 agent 主机下载到本地操作员主机
scan在 CIDR 范围内对选定端口执行 TCP 网络扫描
dnsDNS 查询。使用系统的 DNS 配置
set设置 assembly 节点和 scexec 节点的 Node 加载路径
bof执行 COFF 文件并返回输出

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

Agent 功能

点击此处了解更多 Agent 功能信息

客户端功能

点击此处了解更多客户端功能信息

🧙‍♂️ 部署幻象

首先,你需要找到一个不进行 ASAR 安全完整性检查的易受攻击的 Electron 应用,例如 Microsoft Teams。较新的应用可能带有完整性检查,从而阻止后门植入。目标应用的旧版本更可能存在漏洞。

  • 发现易受攻击的 Electron 应用指南

简单说明

对 Electron 应用进行后门植入时,你无需编译 agent。只需用 Loki agent 文件替换 {ELECTRONAPP}/resources/app/ 中的内容即可。

详细说明

步骤 1:创建 Azure 存储 Blob 帐户并获取 SAS 令牌

  • 通过 Azure 门户创建 Azure 存储帐户
  • 通过 Azure CLI 创建 Azure 存储帐户

步骤 2:创建混淆后的 Loki Payload

  • 克隆此仓库并 cd 进入其中
  • 安装 Node.JS
  • 安装 javascript-obfuscator 模块
npm install --save-dev javascript-obfuscator
  • 运行 create_agent_payload.js 脚本,使用你的存储帐户信息创建 Loki payload
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

[+] Payload ready!
         - Obfuscated payload in the ./app directory

步骤 3:对 Electron 应用进行后门植入

  • 你的混淆 Loki payload 会输出到 ./app/
  • 将目录切换到 {ELECTRONAPP}/resources/
  • 删除所有内容
  • 将 Loki 的 ./app/ 文件夹复制到 {ELECTRONAPP}/resources/app/
  • 点击 Electron PE 文件,确保 Loki 正常工作

步骤 4:配置 Loki 客户端

  • 启动 Loki GUI 客户端

  • 从菜单栏点击 Loki Client > Configuration 打开设置窗口

  • 输入你的存储帐户详细信息,然后点击 Save

  • agent 现在应该会显示在仪表板中

  • 在仪表板表格中点击 agent 以打开 agent 窗口

  • 进行测试以确保 Loki 正常工作

对 Electron 应用进行后门植入并让真实应用保持正常运行

使用 Loki 最直接的方式是用 Loki 文件替换 {ELECTRONAPP}/resources/app/ 中的文件。这会掏空应用,也就是说应用将无法正常运行 -- Loki 取代了它的功能。

如果你真的想让 Electron 应用保持运行,同时让它在后台部署 Loki,那么一切希望并未破灭!John Hammond 和我想出了一种让真实 Electron 应用保持运行的方法。我们已将你需要的文件添加到本仓库的 /loki/backdoor/init.js 中。

下载工具