Solvesthis/Windows-Penetration-Tools

GitHub: Solvesthis/Windows-Penetration-Tools

一个基于MFC的综合性Windows安全工具包,提供DLL注入、进程操控、权限提升、持久化和加密等安全研究功能的图形化操作界面。

Stars: 0 | Forks: 0

# HackerTools 一个使用 MFC 编写的综合 Windows 安全工具包,专为安全研究人员、渗透测试人员和对 Windows 内部机制感兴趣的开发者设计。本项目演示了多种安全技术,包括 DLL 注入、进程操作、权限提升和系统监控功能。 ## 目录 - [概述](#overview) - [功能特性](#features) - [系统要求](#requirements) - [配置说明](#configuration) - [使用方法](#usage) - [项目结构](#project-structure) - [从源代码构建](#building-from-source) - [代码示例](#code-examples) - [贡献指南](#contributing) - [许可证](#license) ## 概述 HackerTools 是一个基于 Windows 的安全工具包,为各种安全操作提供图形界面。该应用程序分为两个主要部分:**用户工具** 和 **内核工具**,每个部分包含用于不同安全任务的专用模块。 该工具包演示了高级 Windows API 使用、进程操作技术和安全研究方法。 ## 功能特性 #### 1. **DLL 注入** - **ZwCreateThreadEx 注入**:用于 DLL 注入的远程线程创建 - **APC 注入**:异步过程调用注入方法 - **全局钩子注入**:系统级钩子安装 - 进程枚举与选择 - 调试权限管理 #### 2. **进程隐藏与伪装** - **PEB 操控**:修改进程环境块以伪装进程身份 - **进程替换**:用 shellcode 替换目标进程 - **DLL 劫持**:测试和演示 DLL 劫持漏洞 - 进程路径和命令行修改 #### 3. **权限提升** - 调试权限启用/禁用 - UAC 绕过技术(CMLuaUtil 方法) - 进程权限枚举 - Token 操控 #### 4. **自启动机制** - **注册表自启动**:修改 Windows 注册表以实现持久化 - **启动文件夹**:将程序添加到用户启动目录 - **Windows 服务**:创建、启动、停止和删除系统服务 - **任务计划程序**:计划任务以自动执行 #### 5. **进程枚举** - 列出所有正在运行的进程 - 显示进程 ID 和名称 - 进程信息分析 #### 6. **文件监控** - 实时文件系统监控 - 目录变更检测 - 文件创建/修改跟踪 #### 7. **数据压缩** - 基于 zlib 的压缩库 - 文件压缩与解压 - 内存数据压缩 - 支持最大 100MB 的文件 #### 8. **加密与哈希** - **哈希计算**:MD5, SHA-1, SHA-256, SHA-512 - **AES 加密/解密**:对称加密 - **RSA 加密/解密**:带密钥生成的非对称加密 - 文件和数据加密支持 #### 9. **磁盘操作** - 磁盘信息检索 - 可用空间和总空间分析 - 文件系统类型检测 - 磁盘枚举 #### 10. **文件操作** - 文件枚举 - 文件属性操控 - 文件系统分析 ### 内核工具 内核级工具和实用程序(用于未来内核模式功能的可扩展框架)。 ### 系统要求 - **IDE**:Visual Studio 2022 - **框架**:Microsoft Foundation Classes (MFC) - **C++ 标准**:C++11+ - **Windows SDK**:Windows SDK 10.0+ - **依赖项**: - zlib(包含在项目中) - Windows API 库 ## 从源代码构建 有关详细说明,请参阅 [从源代码构建](#building-from-source) 部分。 ## 配置说明 ### 单实例保护 应用程序包含防止多实例运行的内置保护。名为 "GuiShou" 的 mutex 可防止并发执行。 ### 调试权限 许多功能需要调试权限。应用程序会在需要时自动尝试启用调试权限,但通常需要管理员权限。 ### zlib 配置 zlib 压缩库已为 Debug 和 Release 模式下的 x86 和 x64 架构进行了预配置。项目中包含静态库。 ## 使用方法 ### 入门指南 1. **启动应用程序** - 以管理员身份运行 `HackerTools.exe` - 主窗口显示两个选项卡:"User Tools" 和 "Kernel Tools" 2. **导航功能** - 点击 User Tools 选项卡中的按钮以访问不同模块 - 每个模块在单独的对话框窗口中打开 ### 常见用例 #### DLL 注入示例 1. 打开 **Inject** 模块 2. 选择注入方法(ZwCreateThreadEx、APC 或 Global Hook) 3. 从进程列表中选择目标进程 4. 选择或拖放 DLL 文件 5. 点击 **Inject** 执行注入 #### 进程伪装示例 1. 打开 **Hide** 模块 2. 选择伪装方法: - **Pretend**:修改 PEB 以更改进程外观 - **Puppet**:用 shellcode 替换进程 - **Hijack**:DLL 劫持测试 3. 提供目标路径和参数 4. 执行伪装操作 #### 权限提升示例 1. 打开 **Privilege** 模块 2. 查看当前进程权限 3. 启用调试权限或尝试 UAC 绕过 4. 检查权限状态 #### 自启动配置 1. 打开 **SelfStart** 模块 2. 拖放可执行文件 3. 选择持久化方法: - 注册表 - 启动文件夹 - 任务计划程序 - Windows 服务 4. 配置并应用 #### 文件加密示例 1. 打开 **Encrypt** 模块 2. 拖放要加密的文件 3. 选择加密方法: - **Hash**:计算文件哈希(MD5, SHA-256 等) - **AES**:对称加密 - **RSA**:非对称加密(生成密钥对) 4. 输入密码/密钥信息 5. 执行加密 ### 核心组件 #### DLL 注入方法 **ZwCreateThreadEx 注入** ``` BOOL ZwCreateThreadExInjectDll(DWORD dwProcessId, char* pszDllFileName); ``` - 使用未公开的 `ZwCreateThreadEx` API - 在目标进程中创建远程线程 - 通过 `LoadLibrary` 加载 DLL **APC 注入** ``` BOOL APCInject(char *pszProcessName, char *pszDllName); ``` - 使用异步过程调用 - 注入到目标进程的所有线程 - 利用线程的可警告状态 **全局钩子** ``` void SetGlobalHook(); ``` - 安装系统级 Windows 钩子 - 使用 `SetWindowsHookEx` API - 需要钩子 DLL(MyHook 项目) #### 进程操作 **PEB 修改** ``` BOOL DisguiseProcess(const wchar_t* lpwszPath, const wchar_t* lpwszCmd); ``` - 修改进程环境块 - 更改进程路径和命令行 - 影响进程在任务管理器中的显示方式 **进程替换** ``` BOOL ReplaceProcess(const wchar_t* pszFilePath, PVOID pReplaceData, DWORD dwReplaceDataSize, DWORD dwRunOffset); ``` - 替换目标进程映像 - 在进程上下文中执行 shellcode - 保持进程句柄 #### UAC 绕过 **CMLuaUtil 方法** ``` BOOL CMLuaUtilBypassUAC(const wchar_t* lpwszExecutable); ``` - 使用 COM 接口提升 - 利用 ICMLuaUtil 接口 - 绕过用户账户控制提示 #### 加密实现 **AES 加密** - 使用 Windows CryptoAPI - 支持 AES-128、AES-192、AES-256 - 基于密码的密钥派生 **RSA 加密** - 生成 RSA 密钥对(2048 位) - 公钥加密 - 私钥解密 ### 安全注意事项 1. **管理员权限**:大多数功能需要提升的权限 2. **杀毒软件检测**:某些技术可能会触发杀毒软件警报 3. **系统稳定性**:错误使用可能导致系统不稳定 4. **法律合规性**:确保仅在授权情况下使用 ## 项目结构 ``` HackerTools/ ├── HackerTools/ # Main application │ ├── CInject.* # DLL injection module │ ├── CHide.* # Process hiding/disguising │ ├── CPrivilege.* # Privilege escalation │ ├── CSelfStart.* # Persistence mechanisms │ ├── CEnumProcess.* # Process enumeration │ ├── CFileMonit.* # File monitoring │ ├── CCompress.* # Compression utilities │ ├── CEncrypt.* # Encryption/hashing │ ├── CDisk.* # Disk operations │ ├── CEnumFiles.* # File enumeration │ ├── CFileAttr.* # File attributes │ ├── CDia_User.* # User tools dialog │ ├── CDia_Core.* # Kernel tools dialog │ └── zlib/ # Compression library ├── MyHook/ # Global hook DLL ├── TestDll/ # Test DLL for injection │ └── CBypassUAC.* # UAC bypass implementation ├── DllHijackTest/ # DLL hijacking test ├── ServiceExeTest/ # Service test executable └── HackerTools.sln # Visual Studio solution ``` ## 从源代码构建 ### 前置条件 1. 安装 Visual Studio 2022 并包含: - 使用 C++ 的桌面开发 - MFC 组件 - Windows SDK 2. 确保你拥有管理员权限以进行构建 ### 构建步骤 2. **打开解决方案** - 在 Visual Studio 中打开 `HackerTools.sln` 3. **配置构建** - 选择配置:Debug 或 Release - 确保所有项目都已设置为构建 4. **构建解决方案** - 右键点击解决方案 → Build Solution - 或按 `Ctrl+Shift+B` 5. **输出位置** - 可执行文件将位于 `HackerTools/[Configuration]/[Platform]/` ### 构建配置 - **Debug**:包含调试符号,无优化 - **Release**:优化构建,可执行文件体积更小 ### 故障排除 **问题**:缺少 MFC 库 - **解决方案**:在 Visual Studio Installer 中安装 "MFC and ATL support" **问题**:zlib 链接错误 - **解决方案**:确保 zlib 静态库位于正确的架构文件夹中 **问题**:找不到 Windows SDK - **解决方案**:通过 Visual Studio Installer 安装 Windows SDK 10.0 或更高版本 ## 代码示例 ### 示例 1:基本 DLL 注入 ``` // Enable debug privilege EnableDebugPrivilege(TRUE); // Inject DLL into process DWORD processId = GetPidByPname("notepad.exe"); ZwCreateThreadExInjectDll(processId, "C:\\path\\to\\mydll.dll"); ``` ### 示例 2:进程伪装 ``` // Disguise current process as system process DisguiseProcess(L"C:\\Windows\\System32\\svchost.exe", L"-k netsvcs"); ``` ### 示例 3:UAC 绕过 ``` // Bypass UAC to run elevated executable CMLuaUtilBypassUAC(L"C:\\Windows\\System32\\cmd.exe"); ``` ### 示例 4:文件加密 ``` // Read file data BYTE* fileData; DWORD fileSize; GetFileData("C:\\test.txt", &fileData, &fileSize); // Encrypt with AES BYTE password[] = "MySecretPassword"; AesEncrypt(password, strlen((char*)password), fileData, fileSize, fileSize * 2); ``` ### 示例 5:通过注册表自启动 ``` // Add to registry startup SetRegAutoRun("C:\\MyApp\\app.exe", "MyAppName"); ``` ## 贡献指南 1. **Fork 本仓库** 2. **创建功能分支** (`git checkout -b feature/feature`) 3. **提交你的更改** (`git commit -m 'Add some Feature'`) 4. **推送到分支** (`git push origin feature/Feature`) 5. **打开 Pull Request** ## 免责声明 **本软件仅用于教育和授权的安全测试目的。** 作者和贡献者不对因使用本软件而造成的任何滥用或损害负责。 ## 许可证 本项目基于 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。
标签:APC注入, C++, Conpot, CSV导出, DLL劫持, DLL注入, DNS 解析, MFC, PEB操作, SSH蜜罐, UAC绕过, Windows, Windows内核, Windows安全, 令牌操纵, 免杀技术, 全局钩子注入, 内核工具, 协议分析, 安全工具包, 安全测试, 提权, 攻击性安全, 攻击路径可视化, 数据擦除, 暴力破解检测, 权限提升, 流量审计, 白帽子, 网络可见性, 网络安全, 自启动, 进程伪装, 进程注入, 进程隐藏, 远程线程注入, 隐私保护, 黑客工具