# Puerto 5900: VNC

**VNC (Virtual Network Computing)** es un sistema de escritorio remoto que permite a los usuarios controlar una computadora desde otra a través de una red. VNC es independiente del sistema operativo y utiliza el protocolo RFB (Remote Framebuffer Protocol) para transmitir la pantalla del escritorio desde el servidor VNC al cliente VNC. El puerto 5900 es el puerto por defecto utilizado por VNC para las conexiones.

## <mark style="color:green;">Descripción de VNC</mark>

* <mark style="color:green;">**Protocolo**</mark><mark style="color:green;">:</mark> VNC utiliza el protocolo RFB para la comunicación entre el servidor VNC y el cliente VNC. RFB transmite eventos de teclado y ratón del cliente al servidor, y actualiza la pantalla del cliente con los cambios en la pantalla del servidor.
* <mark style="color:green;">**Puerto**</mark><mark style="color:green;">:</mark> El puerto 5900 es el puerto estándar para VNC. Para múltiples sesiones, se añaden números de sesión al puerto base 5900 (e.g., el puerto 5901 para la sesión 1, 5902 para la sesión 2).
* <mark style="color:green;">**Funcionalidad**</mark><mark style="color:green;">:</mark> VNC permite el acceso remoto completo a una computadora, incluyendo la visualización de la pantalla, control del ratón y teclado, y transferencia de archivos.
* **Cifrado y Autenticación**: VNC puede soportar varios métodos de autenticación y niveles de cifrado, aunque muchos implementaciones predeterminadas de VNC no cifran el tráfico, lo que puede exponer las conexiones a intercepciones.

## <mark style="color:green;">Relevancia en Pentesting</mark>

### <mark style="color:green;">**Importancia de VNC en Pentesting**</mark><mark style="color:green;">:</mark>

* <mark style="color:green;">**Acceso Remoto**</mark><mark style="color:green;">:</mark> VNC proporciona acceso completo a la máquina remota, lo que puede ser explotado por atacantes para controlar sistemas sin autorización.
* <mark style="color:green;">**Credenciales Débiles**</mark><mark style="color:green;">:</mark> Las implementaciones de VNC a menudo están protegidas por contraseñas débiles o por defecto, facilitando ataques de fuerza bruta.
* <mark style="color:green;">**Falta de Cifrado**</mark><mark style="color:green;">:</mark> Muchas implementaciones de VNC no cifran el tráfico, lo que permite a los atacantes interceptar y capturar sesiones VNC.
* <mark style="color:green;">**Enumeración y Explotación**</mark><mark style="color:green;">:</mark> Los pentesters buscan servicios VNC expuestos para enumerar posibles sesiones y explotar configuraciones inseguras.

### <mark style="color:green;">Ejemplo de Escaneo de VNC con Nmap</mark>

Para identificar servidores VNC activos y recopilar información adicional sobre los servicios VNC, se puede utilizar Nmap con scripts NSE específicos.

**Comando Nmap**

```bash
nmap -p 5900 --script vnc-info,vnc-title,vnc-brute target-ip
```

## <mark style="color:green;">**Explicación del Comando**</mark>

* `nmap`: Ejecuta el comando Nmap.
* `-p 5900`: Especifica que Nmap debe escanear el puerto 5900, el puerto predeterminado para VNC.
* `--script vnc-info,vnc-title,vnc-brute`: Utiliza scripts NSE para detectar configuraciones y vulnerabilidades en el servicio VNC.
  * `vnc-info`: Recupera información sobre el servidor VNC.
  * `vnc-title`: Obtiene el título de la ventana del servidor VNC.
  * `vnc-brute`: Realiza un ataque de fuerza bruta para intentar descubrir la contraseña del servidor VNC.
* `target-ip`: Especifica la dirección IP del objetivo.

## <mark style="color:green;">**Ejemplo de Salida de Nmap**</mark>

```plaintext
Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-18 23:30 UTC
Nmap scan report for 192.168.1.175
Host is up (0.0012s latency).

PORT     STATE SERVICE
5900/tcp open  vnc
| vnc-info: 
|   Protocol version: 3.8
|   Security types: 
|     VNC Authentication
|     None
| vnc-title: 
|_  Title: Remote Desktop
| vnc-brute: 
|   Accounts: 
|     Password: secret123
|_  Statistics: Performed 1000 guesses in 10 seconds, average tps: 100

Nmap done: 1 IP address (1 host up) scanned in 8.45 seconds
```

## <mark style="color:green;">Interpretación de la Salida</mark>

* <mark style="color:green;">**Host is up**</mark><mark style="color:green;">:</mark> Indica que el sistema objetivo está en línea y responde.
* <mark style="color:green;">**5900/tcp open vnc**</mark><mark style="color:green;">:</mark> El puerto 5900 está abierto y el servicio VNC está activo.
* <mark style="color:green;">**vnc-info**</mark><mark style="color:green;">:</mark> Proporciona información sobre el servidor VNC.
  * <mark style="color:green;">**Protocol version**</mark><mark style="color:green;">:</mark> Versión del protocolo VNC (3.8).
  * <mark style="color:green;">**Security types**</mark><mark style="color:green;">:</mark> Métodos de autenticación soportados (`VNC Authentication`, `None`).
* <mark style="color:green;">**vnc-title**</mark><mark style="color:green;">:</mark> Obtiene el título de la ventana del servidor VNC (`Remote Desktop`).
* <mark style="color:green;">**vnc-brute**</mark><mark style="color:green;">:</mark> Realiza un ataque de fuerza bruta para descubrir la contraseña del servidor VNC.
  * <mark style="color:green;">**Accounts**</mark><mark style="color:green;">:</mark> Cuenta descubierta (`Password: secret123`).
  * <mark style="color:green;">**Statistics**</mark><mark style="color:green;">:</mark> Estadísticas del ataque de fuerza bruta (1000 intentos en 10 segundos).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://books.spartan-cybersec.com/cppj/networking-for-juniors/puertos-y-servicios/puerto-5900-vnc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
