Skip to main content

vnc-pentesting

VNC 服务(5900/5901 端口)渗透测试方法论。涵盖 VNC 服务发现、密码爆破、无认证访问、VNC 密码文件解密、已知漏洞利用。 当 Agent 扫描发现 5800/5900/5901 端口开放、需要测试 VNC 认证强度、尝试无认证访问、或解密 VNC 密码文件时,触发此 Skill。

Informations de source

Dépôt
wgpsec/AboutSecurity
Dernière activité de la source
15 octobre 2026 à 06:58
Langue détectée de SKILL.md
chinois
Étoiles
1 807
Forks
250

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
2 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
vnc-pentesting
description
VNC 服务(5900/5901 端口)渗透测试方法论。涵盖 VNC 服务发现、密码爆破、无认证访问、VNC 密码文件解密、已知漏洞利用。 当 Agent 扫描发现 5800/5900/5901 端口开放、需要测试 VNC 认证强度、尝试无认证访问、或解密 VNC 密码文件时,触发此 Skill。
metadata
{"tags":"vnc,远程桌面,5900端口,vncviewer","category":"exploit"}
# VNC 渗透测试方法论 (5800/5900/5901) ## 深入参考 - VNC 枚举、密码解密、已知漏洞详细命令 -> 读 [references/vnc-techniques.md](references/vnc-techniques.md) --- ## 整体决策树 ``` 发现 5800/5900/5901 端口开放 ├─ Phase 1: 服务发现 │ ├─ Nmap 脚本扫描 -> 版本信息 / 认证绕过检测 / 标题获取 │ ├─ 确定 VNC 实现 (RealVNC / TightVNC / UltraVNC / TigerVNC / x11vnc) │ └─ 端口映射: │ ├─ 5800/5801 -> HTTP Web 客户端 (Java Applet) │ └─ 5900/5901 -> VNC 协议原生端口 (display :0 / :1) ├─ Phase 2: 认证测试 │ ├─ 无认证访问检测 (Metasploit vnc_none_auth) │ │ ├─ 无密码 -> 直接连接 vncviewer │ │ └─ 需要密码 -> 进入爆破 │ ├─ 密码爆破 (hydra / medusa / ncrack) │ └─ 默认密码尝试 ├─ Phase 3: 密码文件解密 │ ├─ 目标文件: ~/.vnc/passwd (Linux) / 注册表 (Windows) │ ├─ VNC 密码使用 3DES 固定密钥加密 (已被逆向) │ └─ 工具: vncpwd / vncpasswd.py ├─ Phase 4: 已知漏洞 │ ├─ RealVNC 认证绕过 │ ├─ UltraVNC 缓冲区溢出 │ └─ 特定版本 CVE 检索 └─ Phase 5: 后渗透 ├─ 截屏 / 键盘记录 ├─ 文件传输 (UltraVNC) └─ 反向 VNC 连接 ``` --- ## Phase 1: 服务发现 ### 1.1 Nmap 枚举 ```bash # VNC 脚本扫描: 信息获取 + 认证绕过检测 + 标题获取 nmap -sV --script vnc-info,realvnc-auth-bypass,vnc-title -p <PORT> <IP> ``` ### 1.2 端口与显示号关系 | 端口 | 用途 | 说明 | |------|------|------| | 5800 | HTTP (display :0) | Java Web 客户端 | | 5801 | HTTP (display :1) | Java Web 客户端 | | 5900 | VNC (display :0) | 标准 VNC 端口 | | 5901 | VNC (display :1) | 第二显示 | --- ## Phase 2: 认证测试 ### 2.1 无认证访问检测 ```bash # Metasploit — 检测 VNC 是否允许无密码访问 msf> use auxiliary/scanner/vnc/vnc_none_auth msf> set RHOSTS <IP> msf> run ``` ### 2.2 连接 VNC ```bash # 直接连接 (无密码或已知密码) vncviewer <IP>::5901 # 使用密码文件连接 vncviewer -passwd passwd.txt <IP>::5901 ``` ### 2.3 密码爆破 ```bash # hydra hydra -s 5900 -P passwords.txt -t 4 vnc://<IP> # medusa medusa -h <IP> -u "" -P passwords.txt -M vnc -n 5900 # ncrack ncrack -vv --user "" -P passwords.txt <IP>:5900 ``` ### 2.4 认证测试决策树 ``` VNC 认证状态 ├─ vnc_none_auth 成功 │ └─ 直接连接 -> vncviewer <IP>::5900 ├─ 需要密码 │ ├─ 爆破 (hydra / medusa / ncrack) │ ├─ 尝试常见默认密码: password, vnc, 123456, <hostname> │ └─ 已从目标获取密码文件 -> Phase 3 解密 └─ 认证类型未知 └─ vnc-info 脚本结果分析 -> 确定认证方式 ``` --- ## Phase 3: 密码文件解密 VNC 密码使用 **3DES 固定密钥** 加密,该密钥多年前已被逆向。只要获取到加密的密码文件即可解密。 ### 3.1 密码文件位置 | 平台 | 路径 | |------|------| | Linux (通用) | `~/.vnc/passwd` | | TightVNC (Windows) | `HKCU\Software\TightVNC\Server` (Password 值) | | RealVNC (Windows) | `HKLM\SOFTWARE\RealVNC\vncserver` (Password 值) | | UltraVNC (Windows) | `C:\Program Files\UltraVNC\ultravnc.ini` | ### 3.2 解密方法 ```bash # vncpwd — 解密 VNC 密码文件 # https://github.com/jeroennijhof/vncpwd make vncpwd <vnc password file> # Python 替代方案 # https://github.com/trinitronx/vncpasswd.py python vncpasswd.py -d <encrypted_password_hex> ``` ### 3.3 密码文件获取路径 ``` 获取 VNC 密码文件 ├─ 已获得目标文件系统访问 │ ├─ Linux -> cat ~/.vnc/passwd │ └─ Windows -> reg query 注册表路径 / 读取 ini 文件 ├─ 通过其他漏洞读取文件 │ ├─ LFI / 任意文件读取 │ └─ 备份文件下载 └─ 解密后 └─ 使用明文密码连接 VNC ``` --- ## Phase 4: 已知漏洞 ### 4.1 漏洞检测决策树 ``` VNC 版本已知 ├─ 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> ``` --- ## Phase 5: 后渗透 ### 5.1 利用已连接的 VNC ``` 已成功连接 VNC ├─ 观察桌面内容 (密码、敏感文件、其他会话) ├─ 键盘输入命令执行 ├─ 文件传输 (UltraVNC 支持) ├─ 截图取证 └─ 查找其他凭据 ├─ 浏览器保存的密码 ├─ SSH 密钥 └─ 其他远程连接配置 ``` --- ## Shodan 搜索 ``` port:5900 RFB ```
Voir sur GitHub