Puerto 5432: PostgreSQL

PostgreSQL es un sistema de gestión de bases de datos relacional y de código abierto conocido por su robustez, rendimiento y conformidad con el estándar SQL. Utiliza el puerto 5432 por defecto para aceptar conexiones de clientes.

Descripción de PostgreSQL y el Puerto 5432

  • Protocolo: PostgreSQL utiliza un protocolo de comunicación propio sobre TCP para la interacción entre el cliente y el servidor. El puerto predeterminado para PostgreSQL es el 5432.

  • Funcionalidad: PostgreSQL es altamente extensible y soporta una amplia gama de tipos de datos, funciones, y procedimientos almacenados. Ofrece características avanzadas como integridad referencial, triggers, vistas, y soporte para transacciones ACID.

  • Seguridad: PostgreSQL proporciona múltiples capas de seguridad, incluyendo autenticación basada en roles, SSL/TLS para cifrado de tráfico, y listas de control de acceso.

Relevancia en Pentesting

Importancia de PostgreSQL en Pentesting:

  • Acceso No Autorizado: Configuraciones incorrectas de autenticación pueden permitir a los atacantes obtener acceso no autorizado a la base de datos.

  • Exposición de Datos: Las bases de datos expuestas sin cifrado pueden ser interceptadas por atacantes, exponiendo datos sensibles.

  • Enumeración de Objetos: Los pentesters pueden enumerar esquemas, tablas, y otros objetos para mapear la estructura de la base de datos y encontrar posibles vulnerabilidades.

  • Inyección SQL: PostgreSQL es susceptible a inyecciones SQL si las consultas no están correctamente parametrizadas.

Ejemplo de Escaneo de PostgreSQL con Nmap

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

Comando Nmap

nmap -p 5432 --script pgsql-info target-ip

Explicación del Comando

  • nmap: Ejecuta el comando Nmap.

  • -p 5432: Especifica que Nmap debe escanear el puerto 5432, el puerto predeterminado para PostgreSQL.

  • --script pgsql-info: Utiliza el script NSE pgsql-info para recopilar información sobre el servidor PostgreSQL.

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

Ejemplo de Salida de Nmap

Starting Nmap 7.80 ( https://nmap.org ) at 2024-05-19 00:10 UTC
Nmap scan report for 192.168.1.210
Host is up (0.0018s latency).

PORT     STATE SERVICE
5432/tcp open  postgresql
| pgsql-info: 
|   Version: 
|     PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 10.2.0, 64-bit
|   SSL Enabled: 
|     Supported
|   Connection Settings: 
|     Application Name: 
|     Client Encoding: 
|     Date Style: 
|     Interval Style: 
|     Time Zone: 
|     Integer Datetimes: 
|   Configuration: 
|     max_connections: 100
|     shared_buffers: 128MB
|     temp_buffers: 8MB
|     work_mem: 4MB
|     maintenance_work_mem: 64MB
|     dynamic_shared_memory_type: posix
|     max_worker_processes: 8
|     max_parallel_workers: 8
|     max_parallel_workers_per_gather: 2
|   Databases: 
|     - postgres
|     - template0
|     - template1
|_    - mydb

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

Interpretación de la Salida

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

  • 5432/tcp open postgresql: El puerto 5432 está abierto y el servicio PostgreSQL está activo.

  • pgsql-info: Proporciona información detallada sobre el servidor PostgreSQL.

    • Version: PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 10.2.0, 64-bit.

    • SSL Enabled: Soporte para SSL (Supported).

    • Connection Settings: Información sobre la configuración de la conexión (nombre de la aplicación, codificación del cliente, estilo de fecha, estilo de intervalo, zona horaria, tiempos de enteros).

    • Configuration: Configuración del servidor PostgreSQL.

      • max_connections: Máximo de conexiones permitidas (100).

      • shared_buffers: Tamaño de los buffers compartidos (128MB).

      • temp_buffers: Tamaño de los buffers temporales (8MB).

      • work_mem: Memoria de trabajo (4MB).

      • maintenance_work_mem: Memoria de mantenimiento (64MB).

      • dynamic_shared_memory_type: Tipo de memoria compartida dinámica (posix).

      • max_worker_processes: Máximo de procesos de trabajo (8).

      • max_parallel_workers: Máximo de trabajadores paralelos (8).

      • max_parallel_workers_per_gather: Máximo de trabajadores paralelos por operación de recolección (2).

    • Databases: Bases de datos disponibles en el servidor (postgres, template0, template1, mydb).

Última actualización