Irtaza1927/BitLocker-Key-Finder

GitHub: Irtaza1927/BitLocker-Key-Finder

一款面向数字取证的专业工具,用于从活动系统内存和磁盘分区中提取并验证 BitLocker 恢复密钥。

Stars: 1 | Forks: 0

# BitLocker Key Finder v1.0
[![Python](https://img.shields.io/badge/Python-3.8%2B-blue)](https://www.python.org/) [![许可证](https://img.shields.io/badge/License-Educational-green)](#法律声明) [![状态](https://img.shields.io/badge/Status-Production%20Ready-brightgreen)](#) [![FAST-NUCES](https://img.shields.io/badge/Institution-FAST--NUCES-orange)](#) **用于提取 BitLocker 恢复密钥的专业数字取证工具**
## 📋 概述 **BitLocker Key Finder** 是一款综合性的数字取证工具,旨在从 Windows 系统中提取和恢复 BitLocker 加密恢复密钥。它提供了**两种独立的取证方法**用于密钥恢复: ### 🎯 核心功能 | 方法 | 模式 | 速度 | 适用场景 | |--------|------|-------|----------| | **Part A: 实时内存提取** | 活动系统 | 2-5 分钟 | 运行中系统分析 | | **Part B: 分区扫描** | 离线/存储 | 5-30 分钟 | 全面磁盘数据雕刻 | BitLocker 是 Microsoft 的全盘加密技术,通过加密保护敏感数据。当调查人员遇到加密驱动器时,他们需要工具来提取恢复密钥——用作备份访问机制的 48 位数字代码。此工具旨在满足这一关键的取证需求。 ## ✨ 特性 ### 🔒 取证功能 ✅ **实时内存提取** - 从活动系统内存中提取 BitLocker 密钥 - 通过 WinPmem 集成进行物理内存分析 - 用于证据链的内存偏移量跟踪 - 适用于正在运行的 Windows 系统 ✅ **分区与磁盘扫描** - 用户选择的分区/驱动器分析 - 针对 BitLocker 恢复文件的文件名搜索 - 带有二进制雕刻的深度内容扫描 - 未分配空间分析 - 适用于已关机的系统和取证镜像 ✅ **高级验证** - Microsoft mod-11 校验和验证 - 减少约 90% 的误报 - 多编码支持 (UTF-8, UTF-16-LE, UTF-16-BE) - 恢复密钥 ID 提取 - 加密真实性验证 ### 🎨 专业界面 ✅ **以用户为中心的设计** - 暗色专业主题 + 高对比度选项 - 实时进度跟踪 - 带有键盘快捷键的直观菜单系统 - 支持多线程的响应式 GUI ✅ **案例管理** - 启动时捕获案例信息 - 调查人员文档记录 - 设备识别 - 自动包含在所有导出中 - 专业的取证报告 ✅ **导出与文档记录** - 包含案例信息的文本文件导出 - 自动保存到项目文件夹 - 取证标准格式 - 包含时间戳和元数据 - 适用于法律诉讼程序 ## 💻 系统要求 ### 硬件要求 ``` Minimum Configuration: ├─ Processor: Intel Core i5 or equivalent ├─ RAM: 8 GB minimum ├─ Storage: 500 MB application + 30 GB for scan results └─ Architecture: 64-bit processor Recommended Configuration: ├─ Processor: Intel Core i7 or higher ├─ RAM: 16 GB+ ├─ Storage: 50 GB+ free space └─ Architecture: 64-bit processor ``` ### 软件要求 **适用于 Part A(实时内存提取):** - 操作系统: Windows 10/11 (64-bit) - 管理员权限: 必需 - BitLocker: 必须已安装 (专业版/企业版) - Python: 3.8 或更高版本 - .NET Framework: 4.5+ **适用于 Part B(分区/磁盘扫描):** - 操作系统: Windows 10/11 或 Linux (Ubuntu 18.04+) - 管理员/Root 权限: 必需 - Python: 3.8 或更高版本 - 文件系统: NTFS, FAT32, ext4 等 ### Python 依赖项 ``` Required Python Version: 3.8+ Required Libraries: ├─ tkinter (GUI framework - pre-installed with Python) ├─ reportlab (PDF generation) └─ volatility3 (Memory analysis - optional but recommended) ``` ## 🚀 安装指南 ### 先决条件检查 ``` # 验证 Python 安装 python --version # 预期:Python 3.8.x 或更高版本 # 验证 Administrator 权限 (Windows) whoami /priv # 输出中应显示 Administrator ``` ### 步骤 1:安装 Python 3.8+ **Windows:** 1. 从此处下载:https://www.python.org/downloads/ 2. 运行安装程序 3. **关键:** 勾选 "Add Python to PATH" 复选框 4. 选择 "Install for all users"(推荐) 5. 点击 "Install Now" 6. 等待安装完成 **Linux (Ubuntu/Debian):** ``` sudo apt update sudo apt install python3 python3-pip python3-tk python3 --version ``` **macOS:** ``` brew install python3 python3 --version ``` ### 步骤 2:克隆仓库 ``` # 使用 Git git clone https://github.com/Irtaza1927/BitLocker-Key-Finder.git cd BitLocker-Key-Finder # 或从 GitHub 下载 ZIP ``` ### 步骤 3:创建虚拟环境(推荐) ``` # Windows python -m venv venv venv\Scripts\activate # Linux/macOS python3 -m venv venv source venv/bin/activate ``` ### 步骤 4:安装依赖项 ``` # 安装所有必需的包 pip install -r requirements.txt # 或单独安装 pip install tkinter pip install reportlab pip install volatility3 ``` ### 步骤 5:添加 WinPmem(适用于 Part A - 仅限 Windows) **原因:** Part A 需要 WinPmem 来提取物理内存 1. 从此处下载 WinPmem:https://github.com/Velocidex/WinPmem/releases 2. 解压 ZIP 文件 3. 将 `winpmem.exe` 复制到:`DFProject/assets/winpmem.exe` **验证安装:** ``` dir assets\winpmem.exe # 应显示文件大小和详细信息 ``` ### 步骤 6:验证完整安装 ``` # 运行应用 python main.py # 预期输出: # ✓ 应用程序窗口打开 # ✓ 启动画面显示 "BitLocker Key Finder v1.0" # ✓ 出现按 ENTER 提示 ``` **安装故障排除:** | 问题 | 解决方案 | |-------|----------| | "Python not found" | 重新安装 Python,勾选 "Add to PATH" | | "Module not found" | 运行:`pip install -r requirements.txt --upgrade` | | "Permission denied" | 以管理员身份运行命令提示符 | | "WinPmem not found" | 下载并放置于 `assets/winpmem.exe` 目录下 | ## 📖 执行步骤 ### 基本启动 ``` # 导航至项目目录 cd BitLocker-Key-Finder # 运行应用程序 python main.py ``` ### 完整工作流程 **步骤 1:启动画面** - 应用程序启动 - 出现启动画面:"BitLocker Key Finder v1.0" - 操作:按 ENTER 键继续 **步骤 2:输入案例信息** - 填写案例详情: - 案例编号:(例如,2024-CASE-001) - 调查人员:(您的姓名) - 设备名称:(目标 PC 名称) - 备注:(调查详情) - 操作:点击 PROCEED **步骤 3:选择方法** - 出现主菜单 - 选项 1:实时内存提取 - 选项 2:分区/磁盘扫描 - 操作:按 1 或 2 **步骤 4A:实时内存提取配置** - RAM 大小:自动检测或手动选择 - 扫描深度:FAST、NORMAL(推荐)或 DEEP - 编码:UTF-8、UTF-16-LE 选项 - 操作:点击 START SCAN **步骤 4B:分区扫描配置** - 选择目标驱动器/分区/文件夹 - 启用扫描选项(文件名、内容、雕刻) - 设置文件大小过滤器 - 选择文件扩展名 - 操作:点击 START SCAN **步骤 5:监控进度** - 实时进度条 - 已找到密钥计数 - 已用时间显示 - 当前扫描位置 **步骤 6:查看结果** - 包含所有找到密钥的结果表格 - 双击查看完整详情 - 查看验证状态 **步骤 7:导出结果** - 点击 "Save as Text" - 选择保存位置 - 文件保存时包含案例信息 ## 🖥️ 平台兼容性 ### Windows 10/11 **支持:** - Windows 10 专业版/企业版(所有版本) - Windows 11 专业版/企业版(所有版本) - 同时支持 Part A 和 Part B **要求:** - 管理员权限 - .NET Framework 4.5+ - Visual C++ Redistributable 2019+ **测试状态:** - ✓ 已测试:Windows 10 22H2 - ✓ 已测试:Windows 11 23H2 ### Linux (Ubuntu/Debian) **支持:** - Ubuntu 18.04 LTS+ - Ubuntu 20.04 LTS - Ubuntu 22.04 LTS - Debian 10+ - 仅限 Part B(不支持实时内存提取) **安装:** ``` sudo apt update sudo apt install python3 python3-pip python3-tk git clone https://github.com/Irtaza1927/BitLocker-Key-Finder.git cd BitLocker-Key-Finder pip3 install -r requirements.txt python3 main.py ``` ### macOS **支持:** - 有限支持(未经测试) - Part A:不支持(无 WinPmem) - Part B:可能支持 ### 功能兼容性矩阵 | 功能 | Windows | Linux | macOS | |---------|---------|-------|-------| | Part A: 实时内存 | ✅ | ❌ | ❌ | | Part B: 分区扫描 | ✅ | ✅ | ⚠️ | | 案例管理 | ✅ | ✅ | ✅ | | 主题系统 | ✅ | ✅ | ✅ | | 文本导出 | ✅ | ✅ | ✅ | ## 🔧 故障排除 ### 安装问题 #### 问题:"Python not found" **原因:** Python 未添加到系统 PATH **解决方案:** 1. 从 https://www.python.org/ 重新安装 Python 2. **检查:** 安装期间勾选 "Add Python to PATH" 3. 重启命令提示符 4. 验证:`python --version` #### 问题:"No module named tkinter" **原因:** 未安装 Tkinter **解决方案:** Windows: ``` pip install tk ``` Linux: ``` sudo apt install python3-tk ``` #### 问题:"WinPmem not found" **原因:** 缺失或路径不正确 **解决方案:** 1. 从此处下载:https://github.com/Velocidex/WinPmem/releases 2. 放置在:`DFProject/assets/winpmem.exe` 3. 验证文件是否存在于正确位置 #### 问题:"ModuleNotFoundError" **原因:** 未安装依赖项 **解决方案:** ``` pip install -r requirements.txt --upgrade ``` ### 运行时问题 #### 问题:"Access Denied" 或 "Permission Denied" **原因:** 未以管理员权限运行 **解决方案:** Windows: - 右键点击命令提示符 - 选择 "Run as Administrator" - 导航到项目文件夹 - 运行:`python main.py` Linux: ``` sudo python3 main.py ``` #### 问题:扫描期间 GUI 窗口冻结 **原因:** 长时间运行的操作(正常行为) **解决方案:** - 扫描正在后台运行 - 完成后进度条将更新 - 请勿强制关闭应用程序 - 等待扫描完成 #### 问题:扫描返回零个密钥 **可能的原因:** - 系统上未启用 BitLocker - 密钥从未保存到磁盘(Part B) - 密钥已被安全删除 - 选择了错误的分区 - 权限不足 **验证:** Windows: ``` manage-bde -status # 显示每个驱动器的 BitLocker 状态 ``` #### 问题:高误报率 **预期行为:** - 某些仅匹配模式的密钥是正常的(约 10%) - 只有 "Valid (mod-11)" 的密钥才是可靠的 - 仅关注已验证的密钥 ## 📋 项目结构 ``` BitLocker-Key-Finder/ │ ├── README.md ← This file ├── requirements.txt ← Python dependencies ├── main.py ← Application entry point ├── theme_config.py ← Theme configuration │ ├── modules/ │ ├── __init__.py │ ├── live_ram.py ← Part A: RAM extraction │ ├── partition_scan.py ← Part B: Disk scanning │ └── pdf_reporter.py ← Report generation │ ├── ui/ │ ├── __init__.py │ ├── interface.py ← Main menu & Part B UI │ ├── ram_interface.py ← Part A UI │ ├── splash_screen.py ← Startup screen │ ├── case_info_dialog.py ← Case information │ └── settings_screens.py ← Settings/Help/About │ ├── assets/ │ ├── winpmem.exe ← Download separately │ └── README.txt ← Assets instructions │ └── tests/ └── sample_keys.txt ← Test data ``` ## 📊 性能指标 ### 典型执行时间 **Part A - 实时内存提取:** - FAST 模式:2-3 分钟 - NORMAL 模式:3-5 分钟(推荐) - DEEP 模式:5-10 分钟 **Part B - 分区扫描:** - 小型驱动器 (< 100GB):5-10 分钟 - 中型驱动器 (100-500GB):15-25 分钟 - 大型驱动器 (> 500GB):30 分钟以上 **影响速度的因素:** - 系统 CPU 速度 - RAM 容量 - 磁盘速度 - 文件数量 - 选择的扫描深度 ## ⚖️ 法律声明 ⚠️ **重要信息 - 使用前必读** ### 仅限授权使用 此工具**专门**为**授权的取证调查**而设计。 **授权使用场景:** - ✅ 拥有法院授权的执法行动 - ✅ 获得书面授权的企业安全行动 - ✅ 您拥有的个人系统 - ✅ 获授权的培训/教育环境 - ✅ 批准的安全研究 **禁止使用:** - ❌ 未经授权访问他人系统 - ❌ 商业间谍活动 - ❌ 侵犯隐私 - ❌ 犯罪活动 ### 法律合规 **美国:** - 计算机欺诈和滥用法 (CFAA) - 数字千年版权法 (DMCA) **欧盟:** - GDPR (通用数据保护条例) **证据保管链要求:** - 记录调查人员身份 - 记录调查日期和时间 - 保留系统/设备详细信息 - 保留授权文档 - 记录使用的工具和方法 - 保留所有发现结果 ### 免责声明 此工具按 "原样" 提供,不提供任何保证。用户需对以下事项负责: - 确保拥有适当的授权 - 遵守法律法规 - 正确的使用方式 - 结果解释 - 证据处理标准 ## 👥 团队与致谢 ### 开发团队 **FAST-NUCES 伊斯兰堡 - 第 6 学期数字取证项目** | 成员 | 学号 | 贡献 | |--------|--------|--------------| | Irtaza Zahid | 23i-2096 | 实时内存提取引擎,mod-11 验证,分区扫描,GUI | | Muhammad Am Shahid | 23I-2125 | 分区扫描,数据雕刻,文件扩展名过滤器 | | Usman Khan | 23I-2069 | 加载转储文件,浏览对话框,导出为文本 | | Shaheer Shaban | 23I-2040 | 控制台输出,测试 | ### 机构 - **科目:** 数字取证 (CY-2002/3006) - **机构:** FAST-NUCES 伊斯兰堡 - **项目:** 网络安全理学学士 ## 📝 许可证 此项目仅用于**教育和授权的取证目的**。 **教育用途许可证** 此工具作为学术课程作业的一部分开发,旨在用于: - 教育目的 - 授权的取证调查 - 培训与研究 - 专业的安全工作 **条件:** - 必须注明原作者和机构出处 - 仅限授权使用 - 禁止商业分发 - 遵守所有适用法律 ## 🔗 仓库链接 - **GitHub:** https://github.com/Irtaza1927/BitLocker-Key-Finder - **问题追踪:** https://github.com/Irtaza1927/BitLocker-Key-Finder/issues - **发布版:** https://github.com/Irtaza1927/BitLocker-Key-Finder/releases ## ❓ 常见问题 **问:使用此工具合法吗?** 答:如果合法使用则是合法的。此工具专为**授权的取证调查**设计。必须获得系统所有者的书面授权、执法部门的搜查令或法院命令。 **问:结果的准确度如何?** 答:对于有效密钥非常准确(99.9% 的置信度)。通过 mod-11 验证的密钥在数学上得到了验证。仅匹配模式的密钥约有 10% 的误报率。 **问:这能破解 BitLocker 加密吗?** 答:不能。此工具仅**恢复现有密钥**。它不会破解加密或绕过密码。 **问:如果找不到密钥怎么办?** 答:这表明 BitLocker 未启用、密钥未保存到磁盘或密钥已被安全删除。这本身就是具有重要取证意义的信息。 **问:我可以在不拥有的系统上使用它吗?** 答:只有在获得所有者、执法人员或法院的**明确授权**后才可以。未经授权的访问是非法的。 ## 🆘 支持 ### 获取帮助 1. **阅读文档:** - README.md(此文件) 2. **查看故障排除:** - 常见问题及解决方案 - 安装问题 - 运行时错误 3. **创建 GitHub Issue:** - https://github.com/Irtaza1927/BitLocker-Key-Finder/issues - 提供详细信息 - 包含错误消息 - 描述系统配置 ## 📦 快速开始 面向有经验的用户: ``` # 1. Clone 和设置 git clone https://github.com/Irtaza1927/BitLocker-Key-Finder.git cd BitLocker-Key-Finder # 2. 安装 dependencies pip install -r requirements.txt # 3. 添加 WinPmem (仅限 Windows) # 下载并放置在 assets/winpmem.exe # 4. 运行 python main.py # 5. 按照屏幕上的说明操作 ``` ## 📄 更新日志 ### v1.0 - 2024 年 4 月(当前版本) **功能:** - ✅ 实时内存提取(Part A) - ✅ 分区/磁盘扫描(Part B) - ✅ mod-11 验证 - ✅ 多编码支持 - ✅ 案例管理 - ✅ 专业 UI - ✅ 文本导出
**BitLocker Key Finder v1.0** *用于提取 BitLocker 恢复密钥的专业数字取证工具* 由 Irtaza Zahid, Ammar Shahid, Usman Khan, Shaheer Shaban 用 ❤️ 制作 | FAST-NUCES 伊斯兰堡 [⭐ 在 GitHub 上加星](https://github.com/Irtaza1927/BitLocker-Key-Finder) • [🐛 报告问题](https://github.com/Irtaza1927/BitLocker-Key-Finder/issues) **免责声明:** 此工具仅用于授权的取证目的。未经授权的访问是非法的。使用前务必获得适当的授权。
标签:BitLocker, Conpot, FDE, HTTP工具, Python, RAM提取, SecList, Windows安全, WinPmem, 二进制分析, 云安全运维, 全盘加密, 内存取证, 分区扫描, 取证实战, 域渗透, 密钥提取, 恢复密钥, 数字取证, 数据恢复, 数据雕刻, 无后门, 未分配空间分析, 校验和验证, 电子数据取证, 磁盘加密, 离线取证, 网络安全, 自动化脚本, 逆向分析, 逆向工具, 隐私保护