【思路学习】HVNC 隐藏桌面连接,无感桌面操作,EasyShell已实现并集成

前言

感谢各位师傅们分享的诸多优秀项目,经过几天的折腾研究,挑其中感兴趣的hvnc进行分享一下学习,做一篇备忘录

一、HVNC

什么是HVNC技术呢?

HVNC = Hidden Virtual Network Computing,隐藏式虚拟网络计算,是基于标准 VNC 改造、依托系统多桌面机制实现无感知隐蔽远程控制的技术,主流运行在 Windows,也有 macOS 变种。

普通 VNC 直接操作用户正在使用的可见桌面,鼠标、窗口、弹窗都会被受害者看见;HVNC 单独开辟一套独立、不可见虚拟桌面,攻击者操作全程隔离,终端使用者完全无法察觉。

二、核心实现原理(Windows)

  1. 创建隐藏桌面调用 Windows 原生 API,新建独立虚拟桌面,系统默认只有可见桌面,新建桌面后台静默存在,显示器不输出画面。
  2. 进程绑定隐藏桌面 将恶意 / 运维线程挂载到新建隐藏桌面,所有绘图、键鼠输入仅作用于该桌面,不会同步到用户前台。
  3. 跨进程消息转发通过窗口子类化、钩子劫持键鼠消息,把隐藏桌面的点击、输入映射到系统全局输入子系统,实现后台操控文件、浏览器、注册表等程序。
  4. VNC 画面单独回传攻击者客户端只接收隐藏桌面的帧缓冲画面,受害者显示器始终显示自己正常桌面,无任何异常光标、弹窗。

三、HVNC vs 普通 VNC 关键区别

对比项标准 VNCHVNC 隐藏 VNC
操作桌面用户前台可见桌面独立后台隐形桌面
可见痕迹光标移动、弹窗、窗口全部可见前台无任何画面、光标变化
察觉难度极易被发现普通用户完全无感
系统依赖通用图形会话依赖 Windows 多桌面 API
典型用途公开远程协助静默运维、恶意隐蔽操控

四、技术研究学习

目前easyshell已实现HVNC插件的调用与展示,不过仅限用于学习演示。

登录EasyShell,点击屏幕截屏模块,可以发现存在物理桌面与HVNC两种方式

物理桌面就是传统的方案,所有操作客户端均会实时同步

为了对比研究,这里用双屏的方式进行桌面查看

图片[1]-【思路学习】HVNC 隐藏桌面连接,无感桌面操作,EasyShell已实现并集成-渗透云记 - 专注于网络安全与技术分享

具体演示,可以查看以下视频

测试过程中还发现一个有趣的情况,即目标主机已锁屏,然后点击下发HVNC,惊奇的发现,可以直接进行控制,无需解锁桌面

图片[2]-【思路学习】HVNC 隐藏桌面连接,无感桌面操作,EasyShell已实现并集成-渗透云记 - 专注于网络安全与技术分享

五、安全检测与防御手段

1. 终端检测特征

  1. 枚举系统所有桌面:EnumDesktops 发现非默认陌生隐藏桌面;
  2. 检索进程线程绑定异常桌面(SetThreadDesktop 行为);
  3. 排查窗口钩子、全局键鼠消息劫持程序;
  4. 流量监控:陌生出站 VNC/RFB 协议流量、非常规端口远程画面传输。

2. 防御方案

  1. EDR 终端检测:监控CreateDesktopSetThreadDesktop敏感 API 调用并告警;
  2. 组策略限制非授权程序创建新桌面;
  3. 禁用未授权全局钩子、远程画面传输出站;
  4. 定期查杀 RAT、银行木马类恶意样本;
  5. 服务器禁用 Session 0 交互,阻断后台隐蔽会话。

总结

最好的学习就是看各种开源项目,站在巨人的肩膀上,看清前行的路,然后一步一步走过去。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容