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

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

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

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

工具目录

分类

查看所有分类
Loading categories
OpenPetya — 一个受 Petya 勒索软件启发的概念验证型 bootkit 和 UEFI 启动应用程序,使用 Assembly、C 和 C++ 编写。 | Kitploit
工具/GitHubGitHub/iss4cf0ng/openpetya
加密/解密工具逆向工程取证分析恶意软件分析密码学学习与教育二进制利用
GitHubiss4cf0ng/openpetya

OpenPetya

一个受 Petya 勒索软件启发的概念验证型 bootkit 和 UEFI 启动应用程序,使用 Assembly、C 和 C++ 编写。

查看仓库
2604359小时57分前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

OpenPetya

一个受 Petya 勒索软件启发的概念验证型 Bootkit 和 UEFI 启动应用程序,使用 Assembly、C 和 C++ 编写

如果您觉得这个项目有帮助或具有参考价值,我将非常感谢您为仓库点一个 ⭐。您的支持将是我继续改进这个工具的巨大动力。

概述

OpenPetya 是一个教育项目,旨在研究 bootkit 和底层勒索软件的内部运作方式。

该项目专注于:

  • 自定义 MBR 引导加载
  • 多阶段启动过程
  • 保护模式切换
  • NTFS 主文件表(MFT)加密
  • 基于 Salsa20 的加密技术
  • 密码验证与恢复流程
  • UEFI 编程

OpenPetya 并非旨在精确复刻 Petya 或 NotPetya。相反,它是一个为学习和研究目的而设计的简化概念验证。

值得一提的是,OpenPetya 不包含命令与控制(C2)功能。此外,OpenPetya 在加密后将明文 MFT 备份数据存储在隐藏扇区中。这一行为是出于教育目的而特意设计的,因为与该项目中实现的核心引导加载程序和加密机制相比,这些功能相对简单。不过,您仍然可以根据需要修改或移除这些功能。

注意:在 2.0.0 版本中,我选择不为 UEFI 实现该功能,因为担心它可能被滥用而破坏现代 Windows 操作系统。


项目动机

v1.0.0

在过去的几个月里,我一直在研究:

  • 恶意软件分析
  • 引导加载程序
  • rootkit 和 bootkit
  • Windows 内部机制
  • 操作系统基础
  • 底层汇编编程

在研究 Petya 和 NotPetya 时,我意识到许多在线资源只是简要解释整体工作流程,而没有演示底层启动过程实际上是如何运作的。

此外,许多现有的 Petya 相关项目依赖于提取的引导加载程序二进制文件或修改过的原始组件,而不是从头实现逻辑。

因此,我决定开发 OpenPetya 作为一个实践项目,以理解:

  • 自定义 MBR bootkit 如何工作
  • 第二阶段引导加载程序如何运作
  • 磁盘加密工作流程如何运行
  • 密码验证和恢复机制如何实现

该项目也是我对 bootkit、底层恶意软件和操作系统内部机制持续研究的一部分。

相关文章:

  • 分析 Petya
  • 分析 NotPetya
  • 简单 MBR 和引导加载程序
  • OpenBootloader
  • Rootkit 和 Bootkit 笔记
  • PC 汇编语言笔记
  • 严肃密码学笔记

v2.0.0

在 2.0.0 版本中,我对现代 bootkit 的工作方式产生了好奇(如 Alex Matrosov、Eugene Rodionov 和 Sergey Bratus 所著《Rootkits and Bootkits》最后几章所述)。因此,我决定从头开始学习 EFI 应用程序编程。随后我发现这比我预期的要困难得多(尤其是在调试方面)。

无论如何,在编写了一些简单的 EFI 应用程序之后,我发布了 OpenPetya v2.0.0!


功能特性

v1.0.0

  • 自定义 MBR

    OpenPetya 使用自定义主引导记录(MBR)来加载第二阶段负载。

  • 自定义第二阶段引导加载程序

    第二阶段引导加载程序包含该项目的核心功能,包括:

    • Salsa20 加密/解密
    • 密码验证
    • 恢复逻辑
    • 用户界面
  • 保护模式切换

    引导加载程序在执行更高级逻辑之前,会从 16 位实模式切换到 32 位保护模式。

  • MFT 加密

    与原始 Petya 类似,OpenPetya 使用 Salsa20 加密 NTFS 主文件表(MFT)的关键部分。

  • 密码验证

    OpenPetya 在解密前验证输入的密码,以防止因无效密钥导致的不可逆损坏。

  • 自动恢复

    一旦输入正确的密码:

    • 加密数据被恢复
    • 原始启动链被还原
    • OpenPetya 自动移除自身

v2.0.0

OpenPetya v2.0.0 不包含自定义 EFI 应用程序(petya.efi)中的 MFT 加密功能。它提供一个简单的登录面板,并在密码正确时执行链式加载。

我选择不在 EFI 应用程序中实现 MFT 加密,因为它可能被滥用而破坏现代 Windows 操作系统,而我在 v1.0.0 中实现了该功能,因为威胁行为者已在 2016 年演示过这一技术。


组件

OpenPetya.exe

用户模式安装程序和控制器应用程序。

功能:

  • 驱动器选择
  • 安装
  • 触发重启
  • 实用工具界面

mbr.bin

自定义主引导记录(MBR)代码,负责:

  • 第二阶段加载
  • 早期启动执行

stage2.bin

OpenPetya 的核心负载。

职责:

  • 保护模式切换
  • Salsa20 加密操作
  • MFT 加密/解密
  • 密码验证
  • 恢复
  • 启动时界面

petya.efi

OpenPetya 的核心负载。

功能:

  • 密码验证
  • 链式加载

工作流程

BIOS

OpenPetya(MBR + 引导加载程序)的工作流程总结如下。

  1. 用户使用 OpenPetya.exe 安装 OpenPetya 并选择一个密码。
  2. 机器通过手动方式或安装程序提供的 BSOD(通过 NtRaiseHardError)机制重启。
  3. 在启动过程中,自定义 MBR 加载第二阶段负载。
  4. 第二阶段负载将 CPU 切换到保护模式。
  5. OpenPetya 加密 NTFS 主文件表(MFT)的选定部分。
  6. 加密完成后,机器再次重启。
  7. 启动时界面提示用户输入密码。
  8. 如果密码正确:
    • 加密数据被解密
    • 原始启动链被还原
    • OpenPetya 自动移除自身
  9. Windows 正常启动。

与原始 Petya 勒索软件不同,OpenPetya 不会尝试用虚假的 CHKDSK 屏幕或社会工程行为来欺骗用户。该项目纯粹为教育和研究目的而设计。

UEFI

OpenPetya(UEFI)的工作流程总结如下:

  1. 启动时界面提示用户输入密码。
  2. 如果密码正确:
    • 系统执行链式加载
  3. 用户手动移除自定义 EFI 程序

构建

您可以使用以下命令构建该项目。

root@kitploit:~
make            # 构建 mbr.bin 和 stage2.bin
./build.sh     # 构建 OpenPetya.exe

使用方法

警告:请在您的虚拟机中执行!

以下命令展示了如何安装自定义 MBR 和第二阶段引导加载程序(需要管理员权限):

传统 BIOS:

root@kitploit:~
OpenPetya.exe --list
OpenPetya.exe --drive 0 --install mbr.bin stage2.bin

UEFI:

root@kitploit:~
OpenPetya.exe --is-admin
OpenPetya.exe --firmware
OpenPetya.exe --uefi-secure
OpenPetya.exe --drive 0 --uefi-install petya.efi
OpenPetya.exe --drive 0 --uefi-restore

技术说明

关于以下内容的详细解释:

  • MBR 启动过程
  • 实模式和保护模式
  • Salsa20 实现
  • MFT 加密工作流程
  • bootkit 设计
  • 关于 Petya 和 NotPetya 的更多讨论
  • 如何使用未文档化的 API(如 NtRaiseHardError)

已记录在这篇文章中。

免责声明

该项目纯粹为教育和研究目的而开发。

OpenPetya 的目标是研究:

  • bootkit
  • 操作系统内部机制
  • 底层恶意软件技术
  • 引导加载程序架构

请不要将该项目用于非法活动,或针对您不拥有或未经明确授权测试的系统。

作者对任何滥用本软件的行为不承担任何责任。

演示(Windows 7)

截图

运行时演示

未来计划

  • 改进恢复工作流程
  • 更好的 NTFS 解析
  • 更精确的 Petya 行为模拟
  • 更多 bootkit 研究
  • 全屏图形模式
  • 支持 Linux

致谢

感谢您查看这个项目。欢迎提供反馈和建议。

下载工具