Este informe identifica instancias de servidor PostgreSQL accesibles en el puerto 5432/TCP.
Proceso de instalación
Escaneamos usando el módulo de escaneo zgrab2 postgres:
https://github.com/zmap/zgrab2/blob/master/modules/postgres/scanner.go
No se realizan comprobaciones intrusivas para descubrir el nivel de acceso posible a cualquier base de datos.
Puede replicar el escaneo emitiendo: zgrab2 postgres -p 5432
Mitigación
Es poco probable que necesite que su servidor PostgreSQL permita conexiones externas desde Internet (y, por lo tanto, una posible superficie de ataque externa). Si recibe un informe sobre su red/circunscripción, tome medidas para filtrar el tráfico a su instancia de PostreSQL. Asegúrese de implementar la autenticación en el servidor.
Para obtener más información sobre los esfuerzos de escaneo, consulte la página de resumen de escaneo de Internet.
Nombres de archivo: scan_postgres, scan6_postgres
CAMPOS
timestamp | Hora en que se sondeó la IP en UTC+0 |
ip | La dirección IP del dispositivo en cuestión. |
protocol | Protocolo de la respuesta de PostgreSQL (siempre TCP) |
port | Puerto que se está consultando (5432) |
hostname | Nombre DNS inverso del dispositivo en cuestión |
tag | Etiqueta establecida en «postgres» |
version | Información de la versión si la hay |
asn | ASN de donde reside el dispositivo en cuestión |
geo | País donde reside el dispositivo en cuestión |
region | Estado/Provincia/Región administrativa donde reside el dispositivo en cuestión |
city | Ciudad en la que reside el dispositivo en cuestión |
naics | Código del sistema de clasificación de la industria de América del Norte |
sic | Código del sistema de clasificación industrial estándar |
sector | Sector IP al que pertenece |
supported_protocols | Protocolos compatibles |
protocol_error_code | Código de error de protocolo |
protocol_error_file | Archivo de error de protocolo |
protocol_error_line | Línea de error de protocolo |
protocol_error_message | mensaje de error de protocolo |
protocol_error_routine | Rutina de error de protocolo |
protocol_error_severity | Gravedad del error de protocolo |
protocol_error_severity_v | Gravedad del error de protocolo |
startup_error_code | Código de error de inicio |
startup_error_file | Archivo de error de inicio |
startup_error_line | Línea de error de inicio |
startup_error_message | Mensaje de error de inicio |
startup_error_routine | Rutina de error de inicio |
startup_error_severity | Gravedad del error de inicio |
startup_error_severity_v | Gravedad del error de inicio |
client_ssl | Soporta SSL (S/N) |
handshake | El protocolo de enlace SSL más alto que podría negociarse (TLSv1.2, TLSv1.1, TLSv1.0, SSLv3) |
cipher_suite | El CipherSuite más alto que se pudo negociar |
cert_length | Longitud de la clave del certificado (1024 bits, 2048 bits, etc.) |
subject_common_name | El nombre común (CN) del certificado SSL |
issuer_common_name | El nombre común de la entidad que firmó el certificado SSL |
cert_issue_date | Fecha en que el certificado SSL entró en vigencia |
cert_expiration_date | Fecha en que caduca el certificado SSL |
sha1_fingerprint | Huella digital SHA1 del certificado |
cert_serial_number | Número de serie del certificado |
ssl_version | Versión SSL/TLS |
signature_algorithm | Algoritmo de firma utilizado |
key_algorithm | Algoritmo clave utilizado |
subject_organization_name | El nombre de la organización del sujeto (ON) del certificado |
subject_organization_unit_name | El nombre de la unidad organizativa del sujeto del certificado. |
subject_country | El país del sujeto del certificado. |
subject_state_or_province_name | El nombre del estado o provincia del sujeto del certificado. |
subject_locality_name | El nombre de la localidad del sujeto del certificado. |
subject_street_address | La dirección postal del sujeto del certificado. |
subject_postal_code | El código postal del sujeto del certificado. |
subject_surname | El apellido del sujeto del certificado. |
subject_given_name | El nombre de pila del sujeto del certificado. |
subject_email_address | La dirección de correo electrónico del sujeto del certificado. |
subject_business_category | La categoría empresarial del sujeto del certificado. |
subject_serial_number | Número de serie del sujeto del certificado |
issuer_organization_name | Nombre de la organización emisora |
issuer_organization_unit_name | Nombre de la unidad organizativa emisora |
issuer_country | País del emisor |
issuer_state_or_province_name | Estado o provincia del emisor |
issuer_locality_name | Localidad del emisor |
issuer_street_address | Dirección postal del emisor |
issuer_postal_code | Número de serie del certificado |
issuer_surname | Apellido del emisor |
issuer_given_name | Nombre del emisor |
issuer_email_address | Dirección de correo electrónico del emisor |
issuer_business_category | Categoría de negocio del emisor |
issuer_serial_number | Número de serie del emisor |
sha256_fingerprint | Huella digital SHA256 del certificado |
sha512_fingerprint | Huella digital SHA512 del certificado |
md5_fingerprint | MD5 huella dactilar del certificado |
cert_valid | ¿Es válido el certificado (S/N)? |
self_signed | ¿El certificado está autofirmado (S/N)? |
cert_expired | Si el certificado ha caducado (S/N) |
validation_level | Nivel de validación del certificado, por ejemplo, DV, OV, EV |
browser_trusted | ¿Certificado de confianza del navegador (S/N)? |
browser_error | Errores de certificado del navegador encontrados al escanear |
raw_cert | Copia del certificado sin procesar |
raw_cert_chain | Copia de la cadena de certificados sin procesar |
EJEMPLO
"timestamp","ip","protocol","port","hostname","tag","version","asn","geo","region","city","naics","sic","sector","supported_protocols","protocol_error_code","protocol_error_file","protocol_error_line","protocol_error_message","protocol_error_routine","protocol_error_severity","protocol_error_severity_v","startup_error_code","startup_error_file","startup_error_line","startup_error_message","startup_error_routine","startup_error_severity","startup_error_severity_v","client_ssl","handshake","cipher_suite","cert_length","subject_common_name","issuer_common_name","cert_issue_date","cert_expiration_date","sha1_fingerprint","cert_serial_number","ssl_version","signature_algorithm","key_algorithm","subject_organization_name","subject_organization_unit_name","subject_country","subject_state_or_province_name","subject_locality_name","subject_street_address","subject_postal_code","subject_surname","subject_given_name","subject_email_address","subject_business_category","subject_serial_number","issuer_organization_name","issuer_organization_unit_name","issuer_country","issuer_state_or_province_name","issuer_locality_name","issuer_street_address","issuer_postal_code","issuer_surname","issuer_given_name","issuer_email_address","issuer_business_category","issuer_serial_number","sha256_fingerprint","sha512_fingerprint","md5_fingerprint","cert_valid","self_signed","cert_expired","validation_level","browser_trusted","browser_error","raw_cert","raw_cert_chain"
"2010-02-10 00:00:00",192.168.0.1,tcp,5432,node01.example.com,postgres,,64512,ZZ,Region,City,0,0,"Communications, Service Provider, and Hosting Service",1.0-3.0,0A000,postmaster.c,1798,"unsupported frontend protocol 255.255: server supports 1.0 to 3.0",ProcessStartupPacket,FATAL,,28000,postmaster.c,1893,"no PostgreSQL user name specified in startup packet",ProcessStartupPacket,FATAL,,N,,TLS_AES_256_GCM_SHA384,2048,example.com,example.com,"2012-11-14 11:18:27","2021-11-12 11:18:27",03:39:9E:5D:77:19:38:C4:49:DE:C3:3D:9B:E6:13:ED:5A:F1:42:55,B3F13DFBDBA2D8B2,,,rsaEncryption,,,US,,,,,,,,,,,,,,,,,,,,,,E1:D1:6E:87:49:B9:AC:74:B4:AC:9B:77:85:27:69:97:0D:16:B1:F6:63:F0:26:51:AA:89:42:39:66:BD:47:D0,1C:E9:04:22:90:46:68:0B:8B:54:33:38:C6:20:5F:EE:A6:73:A6:B5:2C:7D:12:94:DE:F1:CC:11:2E:72:0B:97:C2:7D:19:BF:E0:6B:98:A9:21:D9:9D:5A:CB:38:0B:D8:7E:E2:8E:2B:EA:15:EC:60:11:1E:41:E3:FB:4C:20:9F,F1:8A:02:48:3C:6B:F4:00:CC:5C:D5:B0:71:E4:FA:00,N,,Y,,,,,
"2010-02-10 00:00:01",192.168.0.2,tcp,5432,node02.example.com,postgres,,64512,ZZ,Region,City,0,0,"Communications, Service Provider, and Hosting Service",1.0-3.0,0A000,postmaster.c,1798,"unsupported frontend protocol 255.255: server supports 1.0 to 3.0",ProcessStartupPacket,FATAL,,28000,postmaster.c,1893,"no PostgreSQL user name specified in startup packet",ProcessStartupPacket,FATAL,,N,,TLS_AES_256_GCM_SHA384,2048,example.com,example.com,"2012-11-14 11:18:27","2021-11-12 11:18:27",03:39:9E:5D:77:19:38:C4:49:DE:C3:3D:9B:E6:13:ED:5A:F1:42:55,B3F13DFBDBA2D8B2,,,rsaEncryption,,,US,,,,,,,,,,,,,,,,,,,,,,E1:D1:6E:87:49:B9:AC:74:B4:AC:9B:77:85:27:69:97:0D:16:B1:F6:63:F0:26:51:AA:89:42:39:66:BD:47:D0,1C:E9:04:22:90:46:68:0B:8B:54:33:38:C6:20:5F:EE:A6:73:A6:B5:2C:7D:12:94:DE:F1:CC:11:2E:72:0B:97:C2:7D:19:BF:E0:6B:98:A9:21:D9:9D:5A:CB:38:0B:D8:7E:E2:8E:2B:EA:15:EC:60:11:1E:41:E3:FB:4C:20:9F,F1:8A:02:48:3C:6B:F4:00:CC:5C:D5:B0:71:E4:FA:00,N,,Y,,,,,
Fuente: https://www.shadowserver.org/what-we-do/network-reporting/accessible-postgresql-server-report/