# Puerto 443: HTTPS

**HTTPS (Hypertext Transfer Protocol Secure)** es la versión segura del protocolo HTTP, utilizado para la comunicación segura a través de la red. HTTPS se ejecuta sobre el puerto 443 por defecto y emplea SSL/TLS (Secure Sockets Layer/Transport Layer Security) para cifrar los datos transferidos entre el cliente y el servidor, garantizando la confidencialidad e integridad de la información.

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

* <mark style="color:green;">**Protocolo**</mark><mark style="color:green;">:</mark> HTTPS combina HTTP con SSL/TLS para proporcionar una conexión segura. Opera sobre el puerto 443.
* <mark style="color:green;">**Cifrado**</mark><mark style="color:green;">:</mark> SSL/TLS cifra los datos transmitidos, protegiéndolos contra la interceptación y los ataques man-in-the-middle (MITM).
* <mark style="color:green;">**Autenticación**</mark><mark style="color:green;">:</mark> HTTPS verifica la identidad del servidor mediante certificados digitales emitidos por autoridades de certificación (CAs).
* <mark style="color:green;">**Integridad de Datos**</mark><mark style="color:green;">:</mark> Utiliza sumas de verificación y algoritmos hash para asegurar que los datos no sean alterados durante la transmisión.

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

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

* <mark style="color:green;">**Seguridad de la Comunicación**</mark><mark style="color:green;">:</mark> HTTPS protege la información sensible (como credenciales de usuario y datos financieros) contra la interceptación.
* <mark style="color:green;">**Configuraciones Incorrectas**</mark><mark style="color:green;">:</mark> Los pentesters buscan configuraciones incorrectas en la implementación de HTTPS, como certificados expirados, cifrados débiles, y falta de configuraciones de seguridad como HSTS.
* <mark style="color:green;">**Vulnerabilidades en SSL/TLS**</mark><mark style="color:green;">:</mark> Los pentesters también identifican vulnerabilidades en la configuración de SSL/TLS, como soporte para versiones obsoletas y cifrados inseguros, que pueden ser explotadas.

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

Para identificar servidores HTTPS activos y verificar posibles vulnerabilidades, se puede utilizar Nmap. El siguiente comando escanea el puerto 443 y ejecuta scripts NSE específicos para HTTPS.

**Comando Nmap**

```bash
nmap -p 443 --script ssl-enum-ciphers,ssl-cert,ssl-dh-params target-ip
```

**Explicación del Comando**

* `nmap`: Ejecuta el comando Nmap.
* `-p 443`: Especifica que Nmap debe escanear el puerto 443, el puerto predeterminado para HTTPS.
* `--script ssl-enum-ciphers,ssl-cert,ssl-dh-params`: Utiliza scripts NSE para detectar configuraciones y vulnerabilidades en el servicio HTTPS.
  * `ssl-enum-ciphers`: Enumera los cifrados soportados por el servidor.
  * `ssl-cert`: Recupera y muestra detalles del certificado SSL/TLS.
  * `ssl-dh-params`: Verifica la fuerza de los parámetros Diffie-Hellman utilizados por el servidor.
* `target-ip`: Especifica la dirección IP del objetivo.

**Ejemplo de Salida de Nmap**

```plaintext
Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-18 20:45 UTC
Nmap scan report for 192.168.1.80
Host is up (0.00021s latency).

PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|     compressors:
|       NULL
|   TLSv1.3:
|     ciphers:
|       TLS_AES_256_GCM_SHA384 - A
|       TLS_AES_128_GCM_SHA256 - A
|       TLS_CHACHA20_POLY1305_SHA256 - A
|_  least strength: A
| ssl-cert: Subject: commonName=example.com/organizationName=Example Corp/stateOrProvinceName=CA/countryName=US
| Issuer: commonName=Example CA/organizationName=Example Cert Authority/stateOrProvinceName=CA/countryName=US
| Public Key type: RSA
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2024-04-01T00:00:00
| Not valid after:  2025-04-01T23:59:59
| MD5:   2d:4b:12:89:ef:23:45:67:8a:90:bc:de:f1:23:45:67
| SHA-1: 3a:34:2b:56:cd:78:ef:90:12:34:56:78:90:ab:cd:ef:12:34:56:78
|_SHA-256: 12:34:56:78:9a:bc:de:f1:23:45:67:8a:90:bc:de:f1:23:45:67:8a:90:bc:de:f1:23:45:67:8a:90:bc:de
|_ssl-dh-params: DH parameters appear to be safe

Nmap done: 1 IP address (1 host up) scanned in 5.92 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;">**443/tcp open https**</mark><mark style="color:green;">:</mark> El puerto 443 está abierto y el servicio HTTPS está activo.
* <mark style="color:green;">**ssl-enum-ciphers**</mark><mark style="color:green;">:</mark> Enumera los cifrados soportados por el servidor para las versiones TLSv1.2 y TLSv1.3.
  * <mark style="color:green;">**TLSv1.2**</mark><mark style="color:green;">:</mark> Soporta cifrados fuertes como `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`.
  * <mark style="color:green;">**TLSv1.3**</mark><mark style="color:green;">:</mark> Soporta cifrados modernos y seguros como `TLS_AES_256_GCM_SHA384` y `TLS_CHACHA20_POLY1305_SHA256`.
* <mark style="color:green;">**ssl-cert**</mark><mark style="color:green;">:</mark> Proporciona detalles del certificado SSL/TLS.
  * <mark style="color:green;">**Subject**</mark><mark style="color:green;">:</mark> El nombre común del certificado (`example.com`) y la organización (`Example Corp`).
  * <mark style="color:green;">**Issuer**</mark><mark style="color:green;">:</mark> La entidad emisora del certificado (`Example CA`).
  * <mark style="color:green;">**Public Key**</mark><mark style="color:green;">:</mark> Tipo y tamaño de la clave pública (RSA 2048 bits).
  * <mark style="color:green;">**Validity**</mark><mark style="color:green;">:</mark> Fechas de validez del certificado (desde 2024-04-01 hasta 2025-04-01).
  * <mark style="color:green;">**Hashes**</mark><mark style="color:green;">:</mark> Huellas digitales MD5, SHA-1 y SHA-256 del certificado.
* <mark style="color:green;">**ssl-dh-params**</mark><mark style="color:green;">:</mark> Verifica que los parámetros Diffie-Hellman utilizados sean seguros.


---

# 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-443-https.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.
