VNC 渗透测试方法论(5800/5900/5901)
本 Skill 提供针对 VNC 服务的渗透测试流程,按阶段组织为服务发现、认证测试、密码文件解密、已知漏洞利用和后渗透。深入命令可参考 references/vnc-techniques.md。
一、用途 当扫描发现 5800/5900/5901 端口开放、需要测试 VNC 认证强度、尝试无认证访问、或解密 VNC 密码文件时,触发本 Skill。整体决策树从端口开放开始,依次进入服务发现、认证测试、密码文件解密、已知漏洞和后渗透五个阶段。
二、主要能力
- 服务发现:使用 Nmap 脚本 vnc-info、realvnc-auth-bypass、vnc-title 获取版本信息、认证绕过检测和标题;识别 VNC 实现(RealVNC、TightVNC、UltraVNC、TigerVNC、x11vnc);区分端口用途,5800/5801 为 HTTP Web 客户端(Java Applet),5900/5901 为 VNC 协议原生端口(display :0 / :1)。
- 认证测试:使用 Metasploit 的 auxiliary/scanner/vnc/vnc_none_auth 检测无认证访问;使用 vncviewer 直接连接或通过密码文件连接;使用 hydra、medusa、ncrack 进行密码爆破;尝试常见默认密码(password、vnc、123456、主机名)。
- 密码文件解密:VNC 密码使用 3DES 固定密钥加密,该密钥已被逆向。目标文件包括 Linux 的 ~/.vnc/passwd、TightVNC(Windows)注册表 HKCU\Software\TightVNC\Server 的 Password 值、RealVNC(Windows)注册表 HKLM\SOFTWARE\RealVNC\vncserver 的 Password 值、UltraVNC 的 C:\Program Files\UltraVNC\ultravnc.ini。工具包括 vncpwd(https://github.com/jeroennijhof/vncpwd)和 vncpasswd.py(https://github.com/trinitronx/vncpasswd.py)。
- 已知漏洞:RealVNC 4.1.0–4.1.1 认证绕过(可用 Nmap realvnc-auth-bypass 脚本检测);UltraVNC < 1.2.1.7 多个缓冲区溢出 CVE;LibVNCServer < 0.9.12 的 CVE-2018-15127(堆溢出);TigerVNC < 1.10.1 的 CVE-2019-15691 至 CVE-2019-15695(栈溢出/堆溢出);通用检测使用 searchsploit vnc <version>。
- 后渗透:观察桌面内容、键盘输入命令执行、文件传输(UltraVNC 支持)、截图取证、查找其他凭据(浏览器保存的密码、SSH 密钥、其他远程连接配置)。
三、使用方式 按阶段执行命令。服务发现示例:nmap -sV --script vnc-info,realvnc-auth-bypass,vnc-title -p <PORT> <IP>。无认证检测:msf> use auxiliary/scanner/vnc/vnc_none_auth;msf> set RHOSTS <IP>;msf> run。连接:vncviewer <IP>::5901 或 vncviewer -passwd passwd.txt <IP>::5901。爆破:hydra -s 5900 -P passwords.txt -t 4 vnc://<IP>;medusa -h <IP> -u "" -P passwords.txt -M vnc -n 5900;ncrack -vv --user "" -P passwords.txt <IP>:5900。解密:make 后执行 vncpwd <vnc password file>,或 python vncpasswd.py -d <encrypted_password_hex>。密码文件获取路径包括已获得目标文件系统访问(Linux 用 cat ~/.vnc/passwd,Windows 用 reg query 注册表路径或读取 ini 文件)、通过其他漏洞读取文件(LFI/任意文件读取、备份文件下载)。
四、适用场景 适用于授权渗透测试中针对 VNC 服务的资产发现、认证强度评估、无认证访问验证、密码文件解密和已知漏洞排查,以及后渗透阶段的桌面观察与凭据收集。
五、限制 本资料未提供具体授权范围、法律合规要求、工具版本兼容性、成功率或效果保证等信息,暂未提供。使用时应确保在合法授权范围内进行。