# HiddenDesktop **Repository Path**: hmoob_xiang_hui/HiddenDesktop ## Basic Information - **Project Name**: HiddenDesktop - **Description**: No description available - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-08 - **Last Updated**: 2025-08-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 隐藏桌面 BOF 隐藏桌面(通常称为 HVNC)是一种工具,允许操作者在用户不知情的情况下与远程桌面会话进行交互。它不涉及 VNC 协议,但能带来类似的使用体验。这个 Cobalt Strike BOF 实现是作为 C++ 编写的 TinyNuke/分叉版本的替代方案而创建的。 隐藏桌面包含四个组件: 1. BOF 初始化器:负责将 HVNC 代码注入到 Beacon 进程中的小型程序。 2. HVNC shellcode:TinyNuke HVNC 的位置无关代码(PIC)实现。 3. 服务器和操作者界面:监听来自 HVNC shellcode 连接的服务器,以及允许操作者与远程桌面交互的界面。目前仅支持 Windows 系统。 4. 应用程序启动器 BOFs:在新桌面中执行应用程序的一组 Beacon 对象文件。 ## 使用方法 下载[最新版本](https://github.com/WKL-Sec/HiddenDesktop/releases),或使用 `make` 自行编译。在团队服务器可访问的 Windows 机器上启动 HVNC 服务器。然后可以通过以下命令执行客户端: ``` HiddenDesktop <服务器> <端口> ``` 此时,服务器机器上应该会出现一个新的空白窗口。该 BOF 默认不执行任何应用程序。你可以使用应用程序启动器 BOFs 在新桌面中执行常见程序: ``` hd-launch-edge(启动 Edge 浏览器) hd-launch-explorer(启动资源管理器) hd-launch-run(启动运行对话框) hd-launch-cmd(启动命令提示符) hd-launch-chrome(启动 Chrome 浏览器) ``` 你也可以通过文件资源管理器使用鼠标和键盘启动程序。其他应用程序可以使用以下命令执行: ``` hd-launch <命令> [参数] ``` ## 演示 https://github.com/WKL-Sec/HiddenDesktop/assets/9327972/82f73393-ba44-42b4-8eae-b36b7181fac0 ## 实现细节 1. Aggressor 脚本生成随机的管道名称和桌面名称。这些名称作为参数传递给 BOF 初始化器。桌面名称在执行时存储在 CS 首选项中,并被应用程序启动器 BOFs 所使用。HVNC 流量通过 `rportfwd` 转发回团队服务器。状态更新通过命名管道发送回 Beacon。 2. BOF 初始化器首先解析所需的模块和函数。解析来自 Aggressor 脚本的参数。一个包含参数和函数地址的结构指针被传递给 HVNC shellcode 中的 `InputHandler` 函数。它使用 `BeaconInjectProcess` 来执行 shellcode,这意味着可以在可定制的 C2 配置文件中或通过进程注入 BOFs 来定制其行为。你可以修改隐藏桌面以针对远程进程,但目前不支持这一功能。这样做是为了让 BOF 可以退出,而 HVNC shellcode 可以继续运行。 3. `InputHandler` 创建一个新的命名管道,供 Beacon 连接。一旦建立连接,就会打开(`OpenDesktopA`)或创建(`CreateDesktopA`)指定的桌面。通过反向端口转发(`rportfwd`)与 HVNC 服务器建立一个新的套接字连接。输入处理程序会为下面描述的 `DesktopHandler` 函数创建一个新线程。该线程将从 HVNC 服务器接收鼠标和键盘输入,并将其转发到桌面。 4. `DesktopHandler` 通过反向端口转发与 HVNC 服务器建立额外的套接字连接。该线程将监控窗口的变化,并将这些变化转发到 HVNC 服务器。 ## 兼容性 隐藏桌面 BOF 已使用 [example.profile](example.profile) 在以下 Windows 版本/架构上进行了测试: * Windows Server 2022 x64 * Windows Server 2016 x64 * Windows Server 2012 R2 x64 * Windows Server 2008 x86 * Windows 7 SP1 x64 ## 已知问题 * 开始菜单无法正常使用。 ## 致谢 * 主要基于 [TinyNuke](https://github.com/rossja/TinyNuke) * 包含来自 [Meltedd/HVNC](https://github.com/Meltedd/HVNC) 的改进/修复 * 使用了来自 [SecIdiot/netntlm](https://github.com/SolomonSklash/netntlm) 的 Beacon 作业接口和项目结构