Puerto 80: HTTP

HTTP (Hypertext Transfer Protocol) es un protocolo de comunicación utilizado para transferir datos a través de la World Wide Web. Funciona en el puerto 80 por defecto y es el protocolo subyacente para el intercambio de información en la web, permitiendo a los navegadores recuperar y presentar páginas web a los usuarios.

Fundamentos de Aplicaciones Web

Descripción de HTTP

  • Protocolo: HTTP es un protocolo basado en texto que opera sobre TCP en el puerto 80 por defecto.

  • Funcionalidad: Permite la transferencia de archivos (como texto, imágenes, videos) y la interacción con aplicaciones web a través de solicitudes y respuestas.

  • Métodos Comunes:

    • GET: Solicita datos de un servidor.

    • POST: Envía datos al servidor para procesamiento.

    • PUT: Actualiza un recurso existente en el servidor.

    • DELETE: Elimina un recurso en el servidor.

Métodos HTTP

Relevancia en Pentesting

Importancia de HTTP en Pentesting:

  • Vulnerabilidades Comunes: HTTP puede ser explotado a través de diversas vulnerabilidades como inyecciones SQL, XSS (Cross-Site Scripting), y CSRF (Cross-Site Request Forgery).

  • Información Sensible: Las aplicaciones web pueden exponer información sensible a través de HTTP si no están adecuadamente protegidas.

  • Intercepción de Tráfico: Sin cifrado (HTTPS), el tráfico HTTP puede ser interceptado y analizado, permitiendo a los atacantes capturar datos sensibles.

  • Fuzzing y Enumeración: Los pentesters utilizan técnicas de fuzzing y enumeración para descubrir rutas, parámetros y funcionalidades no documentadas en aplicaciones web.

Ejemplo de Escaneo de HTTP con Nmap

Para identificar servidores HTTP activos y recopilar información adicional sobre los servicios web, se puede utilizar Nmap. El siguiente comando escanea el puerto 80 y ejecuta scripts NSE específicos para HTTP.

Comando Nmap

nmap -p 80 --script http-title,http-headers,http-methods,http-enum target-ip

Explicación del Comando

  • nmap: Ejecuta el comando Nmap.

  • -p 80: Especifica que Nmap debe escanear el puerto 80, el puerto predeterminado para HTTP.

  • --script http-title,http-headers,http-methods,http-enum: Utiliza scripts NSE para detectar configuraciones y vulnerabilidades en el servicio HTTP.

    • http-title: Recupera el título de la página web.

    • http-headers: Muestra las cabeceras HTTP devueltas por el servidor.

    • http-methods: Enumera los métodos HTTP soportados por el servidor.

    • http-enum: Enumera directorios y archivos comunes en el servidor web.

  • target-ip: Especifica la dirección IP del objetivo.

Ejemplo de Salida de Nmap

Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-18 17:45 UTC
Nmap scan report for 192.168.1.50
Host is up (0.0021s latency).

PORT   STATE SERVICE
80/tcp open  http
| http-title: Example Domain
|_Requested resource was /index.html
| http-headers:
|   HTTP/1.1 200 OK
|   Date: Sun, 18 May 2024 17:45:00 GMT
|   Server: Apache/2.4.41 (Ubuntu)
|   Content-Type: text/html; charset=UTF-8
|   Connection: close
|_  Content-Length: 1234
| http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS
| http-enum:
|   /index.html [200 OK]
|   /login [302 Found]
|   /admin [403 Forbidden]
|   /robots.txt [200 OK]
|_  /images [301 Moved Permanently]

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

Interpretación de la Salida

  • Host is up: Indica que el sistema objetivo está en línea y responde.

  • 80/tcp open http: El puerto 80 está abierto y el servicio HTTP está activo.

  • http-title: Muestra el título de la página web principal (Example Domain).

  • http-headers: Muestra las cabeceras HTTP devueltas por el servidor, proporcionando información sobre el servidor y la respuesta.

    • Server: Indica el tipo de servidor web (Apache/2.4.41 (Ubuntu)).

    • Content-Type: Tipo de contenido de la respuesta (text/html; charset=UTF-8).

  • http-methods: Enumera los métodos HTTP soportados por el servidor (GET, HEAD, POST, OPTIONS).

  • http-enum: Enumera directorios y archivos comunes en el servidor web.

    • /index.html [200 OK]: Indica que el archivo /index.html existe y es accesible.

    • /login [302 Found]: Indica una redirección desde /login.

    • /admin [403 Forbidden]: Indica que el acceso al directorio /admin está prohibido.

    • /robots.txt [200 OK]: Indica que el archivo /robots.txt existe y es accesible.

    • /images [301 Moved Permanently]: Indica una redirección permanente desde /images.

Última actualización