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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/vr00mm/cve-2025-49144
权限提升持久化机制漏洞利用命令与控制社会工程学学习与教育红队Payload 开发二进制利用
GitHubvr00mm/cve-2025-49144

CVE-2025-49144

CVE-2025-49144 的 PoC

查看仓库
621年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Notepad++ 二进制植入 PoC (CVE-2025-49144)

⚠️ 仅供教育目的
本代码专为教育和研究目的而设计,用于理解二进制植入漏洞。请仅在受控环境且获得适当授权的情况下使用。

📋 概述

此概念验证(PoC)演示了 Notepad++ 安装程序中的二进制植入漏洞(CVE-2025-49144),该漏洞已在 GHSA-9vx8-v79m-6m24 中提及。攻击者可通过在与 Notepad++ 安装程序相同的目录中放置名为 regsvr32.exe 的恶意可执行文件来获得 SYSTEM 级权限。

🎯 漏洞详情

  • 目标:Notepad++ 安装程序(v8.8.2 之前的所有版本)
  • 方法:通过恶意 regsvr32.exe 进行二进制植入
  • 根本原因:Notepad++ 安装程序在调用系统二进制文件(如 regsvr32)时未指定绝对路径
  • 影响:当用户运行安装程序时,系统会自动以 SYSTEM 权限加载恶意文件,从而使攻击者完全控制目标机器
  • 攻击向量:利用社会工程学或点击劫持诱骗用户将合法安装程序和恶意可执行文件下载到同一目录(通常为“下载”文件夹)

🏗️ 架构

该 PoC 由多个协同工作的组件组成:

root@kitploit:~
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│ Notepad++       │    │ Malicious        │    │  Reverse Shell  │
│ Installer       │───▶│ regsvr32.exe     │───▶│   (PowerShell)  │
│ (searches for   │    │ (CGO binary)     │    │  with SYSTEM    │
│  regsvr32.exe)  │    │                  │    │  privileges     │
└─────────────────┘    └──────────────────┘    └─────────────────┘

核心组件

🔧 技术特性

🛡️ 逃逸技术

  • 字符串混淆:PowerShell 路径经过 XOR 编码以避免静态检测
  • 分离进程:创建独立进程,使其在父进程终止后依然存活
  • 令牌模拟:通过窃取 SYSTEM 令牌提升权限
  • 进程镂空:将代码注入合法的 Windows 进程

🌐 网络能力

  • TCP 保活:通过防火墙维持持久连接
  • 连接重试:支持可配置延迟的自动重连
  • 超时处理:带适当超时的非阻塞套接字操作
  • 速率限制:防止连接轰炸与检测

💻 系统集成

  • CGO 集成:Go 与 C 无缝互操作以进行系统调用
  • 可执行文件伪装:模拟合法 regsvr32.exe 的行为
  • 多线程:为 stdin/stdout/stderr 处理分别提供线程
  • 错误恢复:优雅处理连接失败与进程退出
  • 资源管理:妥善清理句柄、套接字和内存

🚀 构建说明

先决条件

root@kitploit:~
# Install Go (1.24+)
# Install MinGW-w64 for CGO compilation
# Install Git for version control

编译

root@kitploit:~
# Clone the repository
git clone https://github.com/Vr00mm/CVE-2025-49144
cd CVE-2025-49144

# Build as executable (masquerading as regsvr32.exe)

# For maximum stealth (strip debug info)
go build -ldflags="-s -w" -o regsvr32.exe

# For development (with debug symbols)
go build -o regsvr32_debug.exe

📖 使用方法

二进制植入(主要攻击向量)

root@kitploit:~
# 1. Place malicious regsvr32.exe in same directory as Notepad++ installer
# Usually the Downloads folder where users download the installer
copy regsvr32.exe "C:\Users\%USERNAME%\Downloads\"

# 2. User downloads official Notepad++ installer to Downloads folder
# 3. When user runs the installer, it searches for regsvr32.exe in current directory first
# 4. Installer finds and executes our malicious regsvr32.exe with SYSTEM privileges

# 5. Listen for incoming reverse shell connection
ncat -tlnp 4445

🔍 攻击流程

root@kitploit:~
sequenceDiagram
    participant User
    participant Attacker
    participant Downloads
    participant NotepadInstaller
    participant MaliciousRegsvr32
    participant SystemProcess

    User->>Downloads: Download Notepad++ installer
    Attacker->>Downloads: Place malicious regsvr32.exe (social engineering)
    User->>NotepadInstaller: Run installer from Downloads folder
    NotepadInstaller->>Downloads: Search for regsvr32.exe in current directory
    Downloads->>MaliciousRegsvr32: Find malicious regsvr32.exe first
    NotepadInstaller->>MaliciousRegsvr32: Execute with SYSTEM privileges
    MaliciousRegsvr32->>MaliciousRegsvr32: Create detached process
    MaliciousRegsvr32->>SystemProcess: Enumerate SYSTEM processes
    SystemProcess->>MaliciousRegsvr32: Steal token from winlogon/services
    MaliciousRegsvr32->>MaliciousRegsvr32: Create PowerShell with SYSTEM token
    MaliciousRegsvr32->>Attacker: Establish reverse connection
    MaliciousRegsvr32->>NotepadInstaller: Continue with legitimate regsvr32 functionality
    Attacker->>SystemProcess: Execute commands as SYSTEM

🎓 教育方面

演示的安全概念

  1. 二进制植入

    • 不安全的可执行文件搜索路径行为
    • 通过安装程序漏洞进行权限提升
    • 社会工程学攻击向量
  2. 权限提升

    • 令牌模拟方法
    • 进程令牌窃取
    • 获取 SYSTEM 级访问权限
  3. 持久化机制

    • 分离进程创建
    • 服务进程模仿
    • 连接重试逻辑
  4. 网络编程

    • 反向 Shell 实现
    • C 语言套接字编程
    • 跨平台网络编程
  5. CGO 编程

    • Go 与 C 互操作
    • 使用 Go 进行系统级编程
    • 跨语言集成

学习目标

  • 理解二进制植入漏洞的工作原理
  • 了解安装程序中不安全的可执行文件搜索路径
  • 探索通过安装程序缺陷实现 Windows 权限提升
  • 研究社会工程学攻击向量
  • 练习 CGO 编程和跨语言集成
  • 练习安全编码与漏洞分析

🛡️ 检测与缓解

检测方法

root@kitploit:~
# Monitor for suspicious regsvr32 usage
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; ID=4104}

# Check for unusual network connections
netstat -ano | findstr ":4445"

# Monitor process creation
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688}

缓解策略

  • 立即行动:升级到 Notepad++ v8.8.2 或更高版本,该版本在调用 regsvr32 等可执行文件时明确指定绝对路径
  • 应用程序白名单:使用 AppLocker 或 Windows Defender 应用程序控制等工具
  • 可执行文件验证:对所有可执行文件实施数字签名验证
  • 路径验证:确保应用程序对系统实用程序使用完整路径
  • 最小权限:以最低所需权限运行应用程序
  • 网络监控:监控异常的出站连接
  • 端点检测:部署 EDR 解决方案以检测进程镂空
  • 配置检查:避免从“下载”文件夹等用户可写位置执行安装程序

⚖️ 法律与道德考量

⚠️ 重要免责声明

  • 需要授权:仅在您拥有或获得明确测试许可的环境中使用
  • 教育目的:本代码专为学习和安全研究而设计
  • 无恶意意图:不用于未经授权的访问或非法活动
  • 负责任披露:通过适当渠道报告发现的任何漏洞

道德准则

  1. 负责任使用:仅用于合法的安全测试和教育
  2. 禁止未经授权的访问:未经许可绝不针对任何系统部署
  3. 正确署名:注明原始研究人员和漏洞发现者
  4. 知识共享:以负责任的方式与安全社区分享发现

🔧 故障排除

常见问题

连接失败

root@kitploit:~
# Check if port is available
netstat -ano | findstr ":4445"

# Verify firewall settings
netsh advfirewall firewall show rule name=all | findstr "4445"

构建错误

root@kitploit:~
# Ensure CGO is enabled
set CGO_ENABLED=1

# Check MinGW installation
gcc --version

# Verify Go installation supports CGO
go env CGO_ENABLED

令牌获取失败

  • 确保程序以足够的权限运行
  • 检查是否存在可用于令牌窃取的 SYSTEM 进程
  • 验证 Windows 版本兼容性
  • 注意:此漏洞影响 v8.8.2 之前的所有 Notepad++ 版本,因此该 PoC 应可在广泛的安装环境中运行

📚 参考资料

  • CVE-2025-49144 仓库
  • Notepad++ 安全公告 GHSA-9vx8-v79m-6m24
  • NVD CVE-2025-49144
  • MITRE ATT&CK T1574.007 - 通过 PATH 环境变量进行路径拦截
  • MITRE ATT&CK T1134 - 访问令牌操纵
  • Microsoft 文档 - 安全二进制加载

📄 许可证

本项目以 MIT 许可证发布,仅供教育目的。详情请参阅 LICENSE 文件。


请记住:此工具仅用于教育和授权测试目的。请始终遵循负责任披露实践,并尊重法律边界。

下载工具
文件用途行数
main.go入口点,处理 regsvr32 执行~80
winbind.h包含函数声明的主头文件~45
main.c核心反向 Shell 启动器与分离进程创建~75
shell.c带有混淆 PowerShell 执行的 Shell 处理器~120
process.c令牌获取与 SYSTEM 进程创建~195
socket.c带 TCP 保活的网络连接~85
threads.c套接字与管道之间的 I/O 线程处理~60
utils.c输入验证与速率限制~35
obfuscate.cPowerShell 路径混淆技术~70