Distrito Especial de Tumaco
Rama Ejecutiva · Sector territorial · Distrito especial
Riesgo crítico. La entidad acumula 7 hallazgos críticos verificados. La superficie de ataque concurrente sugiere falta de auditoría reciente y configuraciones por defecto sin endurecer. Adicionalmente, 5 de los hallazgos detectados se replican en otras entidades del Estado — el patrón sugiere causa raíz compartida (proveedor común, template institucional o stack heredado). Acción recomendada: publicar registros DMARC con política reject, habilitar HSTS y completar el set de headers de seguridad.
Hallazgos (42)
Bucket GCS público especial-assets asociable a dist-tumaco
CriticaGET https://storage.googleapis.com/especial-assets?list-type=2 retorna ListBucketResult — bucket es listable públicamente. Body sample: <?xml version='1.0' encoding='UTF-8'?><ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'><Name>especial-assets</Name><Prefix></Prefix><KeyCount>346</KeyCount><IsTruncated>false</IsTrunca
Un bucket cloud listable expone todos los objetos al público. Si la entidad lo creó para almacenamiento operacional, expone documentos, backups, archivos sensibles. Verificar ownership y bloquear acceso público inmediatamente.
Bucket GCS público dist-staging asociable a dist-tumaco
CriticaGET https://storage.googleapis.com/dist-staging?list-type=2 retorna ListBucketResult — bucket es listable públicamente. Body sample: <?xml version='1.0' encoding='UTF-8'?><ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'><Name>dist-staging</Name><Prefix></Prefix><KeyCount>4</KeyCount><IsTruncated>false</IsTruncated><
Un bucket cloud listable expone todos los objetos al público. Si la entidad lo creó para almacenamiento operacional, expone documentos, backups, archivos sensibles. Verificar ownership y bloquear acceso público inmediatamente.
Servidor catch-all en 2 host(s) — observabilidad reducida
AltaEl portal en tumaco-narino.gov.co, www.tumaco-narino.gov.co retorna HTTP 200 con la misma página para múltiples rutas inexistentes (paths sensibles como /.env, /web.config.bak, /aws.json devuelven el mismo HTML que /). Comportamiento típico de SPAs/CMS sin handler 404 explícito.
Catch-all 200 (en vez de 404) impide a herramientas de auditoría externas distinguir entre rutas reales y rutas inexistentes. Crea ruido para defenders y oculta exposiciones reales bajo un mar de 'falsos 200'. Buena práctica: configurar handler 404 explícito que retorne código 4xx para rutas no mapeadas.
Certificado TLS de tumaco-narino.gov.co EXPIRADO hace 58 días
AltaCert venció el Mar 5 23:59:59 2026 GMT. Los navegadores muestran advertencia de seguridad bloqueante.
Cert expirado en producción indica falla de monitoreo de renovación. Usuarios reciben advertencia y abandonan; OAuth/SSO falla; integraciones automáticas se rompen.
Cluster de infraestructura: 15 entidades en prefijo 20.84.2.0/24
AltaEntidades afectadas (primeras 10): alc-florencia, alc-leticia, alc-magangue, alc-soledad, alc-tunja, alc-yopal, dist-tumaco, gob-amazonas, gob-caqueta, gob-choco
Una vulnerabilidad en el proveedor del prefijo 20.84.2.0/24 afecta simultáneamente a 15 entidades. Concentración de riesgo: un solo evento de seguridad puede tumbar parte significativa del Estado en línea.
IP compartida: 15 entidades en 20.84.2.197
AltaEntidades en 20.84.2.197: alc-florencia, alc-leticia, alc-magangue, alc-soledad, alc-tunja, alc-yopal, dist-tumaco, gob-amazonas
Mismo IP físico = mismo servidor o mismo balanceador. Compromiso del host expone simultáneamente todas las entidades. Patrón típico de portales 'Gobierno en Línea' provistos por terceros.
SAN list extenso en cert de tumaco-narino.gov.co (98 dominios)
MediaEl cert lista 98 dominios en SAN. Sample: caramanta-antioquia.gov.co, asamblea-meta.gov.co, carcasi-santander.gov.co, carmendecarupa-cundinamarca.gov.co, carolinadelprincipe-antioquia.gov.co.
Un SAN extenso publica todos los servicios cubiertos por el cert. Útil para enumeración: un atacante obtiene el inventario de subservicios sin escanear DNS.
DNSSEC ausente en tumaco-narino.gov.co
MediaNo hay registro DS en zona padre.
Sin DNSSEC, un atacante con MITM en cualquier resolvedor puede inyectar respuestas DNS falsas. Permite redirección a servidores controlados sin alertas.
Drupal CHANGELOG.txt accesible en www.tumaco-narino.gov.co
MediaGET https://www.tumaco-narino.gov.co/CHANGELOG.txt entrega historial de versiones Drupal.
El CHANGELOG revela versión exacta de Drupal y patches aplicados — facilita matching con CVEs publicadas. Recomendación: bloquear o eliminar de raíz web.
Drupal CHANGELOG.txt accesible en www.tumaco-narino.gov.co
MediaGET https://www.tumaco-narino.gov.co/core/CHANGELOG.txt entrega historial de versiones Drupal.
El CHANGELOG revela versión exacta de Drupal y patches aplicados — facilita matching con CVEs publicadas. Recomendación: bloquear o eliminar de raíz web.
Drupal CHANGELOG.txt accesible en tumaco-narino.gov.co
MediaGET https://tumaco-narino.gov.co/CHANGELOG.txt entrega historial de versiones Drupal.
El CHANGELOG revela versión exacta de Drupal y patches aplicados — facilita matching con CVEs publicadas. Recomendación: bloquear o eliminar de raíz web.
Drupal CHANGELOG.txt accesible en tumaco-narino.gov.co
MediaGET https://tumaco-narino.gov.co/core/CHANGELOG.txt entrega historial de versiones Drupal.
El CHANGELOG revela versión exacta de Drupal y patches aplicados — facilita matching con CVEs publicadas. Recomendación: bloquear o eliminar de raíz web.
Bucket S3 privado existe con nombre especial
InfoGET https://especial.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket GCS privado existe con nombre especial
InfoGET https://storage.googleapis.com/especial retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist
InfoGET https://dist.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket GCS privado existe con nombre dist
InfoGET https://storage.googleapis.com/dist retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-prod
InfoGET https://dist-prod.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket GCS privado existe con nombre dist-prod
InfoGET https://storage.googleapis.com/dist-prod retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-dev
InfoGET https://dist-dev.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-backup
InfoGET https://dist-backup.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket GCS privado existe con nombre dist-data
InfoGET https://storage.googleapis.com/dist-data retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-files
InfoGET https://dist-files.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-assets
InfoGET https://dist-assets.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket GCS privado existe con nombre dist-assets
InfoGET https://storage.googleapis.com/dist-assets retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-app
InfoGET https://dist-app.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-tmp
InfoGET https://dist-tmp.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket S3 privado existe con nombre dist-test
InfoGET https://dist-test.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket GCS público dist-test asociable a dist-tumaco
CriticaGET https://storage.googleapis.com/dist-test?list-type=2 retorna ListBucketResult — bucket es listable públicamente. Body sample: <?xml version='1.0' encoding='UTF-8'?><ListBucketResult xmlns='http://doc.s3.amazonaws.com/2006-03-01'><Name>dist-test</Name><Prefix></Prefix><KeyCount>240</KeyCount><IsTruncated>false</IsTruncated><C
Un bucket cloud listable expone todos los objetos al público. Si la entidad lo creó para almacenamiento operacional, expone documentos, backups, archivos sensibles. Verificar ownership y bloquear acceso público inmediatamente.
Bucket S3 privado existe con nombre distrito
InfoGET https://distrito.s3.amazonaws.com retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket GCS privado existe con nombre distrito
InfoGET https://storage.googleapis.com/distrito retorna 403 AccessDenied (bucket existe, no listable). Sugiere infraestructura cloud asociada a la entidad.
Bucket existe pero está cerrado al público. Útil como pista de inventario cloud — en un escenario de takeover (entidad deja de pagar AWS), un atacante podría reclamar el nombre. Recomendación: documentar y monitorear.
Bucket cloud público con 251+ objetos listables asociado a dist-tumaco
CriticaBucket cloud retorna ListBucketResult/EnumerationResults con ≥251 objetos visibles en primeros 64 KB. Muestras: catalogues/, catalogues/curr/, catalogues/curr/Afternoon Tea.pdf, catalogues/curr/Corporate Catering & Retail.pdf, catalogues/curr/Hospitality.pdf.
Un bucket cloud listable con N objetos visibles entrega un mapa completo del almacenamiento. Cada objeto es potencialmente descargable. Si la entidad usa el bucket para backups, documentos sensibles o assets internos, hay exfiltración masiva trivial.
Bucket cloud público con 4+ objetos listables asociado a dist-tumaco
CriticaBucket cloud retorna ListBucketResult/EnumerationResults con ≥4 objetos visibles en primeros 64 KB. Muestras: assets/index-BC6qjFQK.css, assets/personal_care_logo_v2-Sd6Y1UA8.png, favicon.ico, index.html.
Un bucket cloud listable con N objetos visibles entrega un mapa completo del almacenamiento. Cada objeto es potencialmente descargable. Si la entidad usa el bucket para backups, documentos sensibles o assets internos, hay exfiltración masiva trivial.
Bucket cloud público con 232+ objetos listables asociado a dist-tumaco
CriticaBucket cloud retorna ListBucketResult/EnumerationResults con ≥232 objetos visibles en primeros 64 KB. Muestras: 101XP/, 101XP/gshare_installer.exe, 101XP/gshare_repo/Updates.xml, 101XP/gshare_repo/com.xsolla.gshare/3.0.0.0QtCharts.7z, 101XP/gshare_repo/com.xsolla.gshare/3.0.0.0QtCharts.7z.sha1.
Un bucket cloud listable con N objetos visibles entrega un mapa completo del almacenamiento. Cada objeto es potencialmente descargable. Si la entidad usa el bucket para backups, documentos sensibles o assets internos, hay exfiltración masiva trivial.
Hallazgo agrupado por similitud semántica (201 findings, 151 entidades)
CriticaML clustering identificó 201 findings similares afectando 151 entidades distintas. Categoría dominante: configuracion_expuesta. Severidades: {'critica': 201}. Muestra: Bucket GCS público recursos-app asociable a adres | Bucket GCS público recursos-web asociable a adres | Bucket GCS público adr-test asociable a adr.
Findings agrupados por similitud semántica reflejan una vulnerabilidad común (causa raíz compartida): mismo proveedor, misma configuración por defecto, o mismo template institucional sin endurecer. Resolver el problema en una entidad sin coordinar con las demás deja el problema activo en N-1 entidades.
Sin registros CAA
Altadig CAA tumaco-narino.gov.co retorna vacio.
Cualquier autoridad certificadora publica puede emitir certificados a nombre del dominio sin restriccion. Combinado con monitoreo CT incompleto, certificados fraudulentos pueden pasar inadvertidos.
DMARC en modo none (no reject)
Alta_dmarc.tumaco-narino.gov.co publica politica permisiva.
Politica none no rechaza correos no autenticados. Atacante puede suplantar @tumaco-narino.gov.co contra ciudadanos del territorio.
Datos del portal hospedados fuera de Colombia
AltaApex resuelve a 20.84.2.197 (rango caracteristico de proveedor extranjero — Cloudflare/AWS/Azure US).
Ley 1581/2012 art. 26 exige consentimiento o nivel de proteccion adecuado para transferencia internacional. EE.UU. no esta en la lista de paises adecuados de la SIC sin clausulas contractuales tipo.
Hallazgo agrupado por similitud semántica (299 findings, 299 entidades)
AltaML clustering identificó 299 findings similares afectando 299 entidades distintas. Categoría dominante: configuracion_ssl. Severidades: {'alta': 299}. Muestra: Sin registros CAA | Sin registros CAA | Sin registros CAA.
Findings agrupados por similitud semántica reflejan una vulnerabilidad común (causa raíz compartida): mismo proveedor, misma configuración por defecto, o mismo template institucional sin endurecer. Resolver el problema en una entidad sin coordinar con las demás deja el problema activo en N-1 entidades.
Hallazgo agrupado por similitud semántica (196 findings, 196 entidades)
AltaML clustering identificó 196 findings similares afectando 196 entidades distintas. Categoría dominante: datos_personales. Severidades: {'alta': 196}. Muestra: DMARC en modo permisivo (quarantine en lugar de reject) | DMARC en modo quarantine (no reject) | DMARC en modo quarantine (no reject).
Findings agrupados por similitud semántica reflejan una vulnerabilidad común (causa raíz compartida): mismo proveedor, misma configuración por defecto, o mismo template institucional sin endurecer. Resolver el problema en una entidad sin coordinar con las demás deja el problema activo en N-1 entidades.
Hallazgo agrupado por similitud semántica (18 findings, 18 entidades)
AltaML clustering identificó 18 findings similares afectando 18 entidades distintas. Categoría dominante: configuracion_ssl. Severidades: {'alta': 18}. Muestra: Certificado TLS de camara.gov.co EXPIRADO hace 79 días | Certificado TLS de amazonas.gov.co EXPIRADO hace 57 días | Certificado TLS de caqueta.gov.co EXPIRADO hace 57 días.
Findings agrupados por similitud semántica reflejan una vulnerabilidad común (causa raíz compartida): mismo proveedor, misma configuración por defecto, o mismo template institucional sin endurecer. Resolver el problema en una entidad sin coordinar con las demás deja el problema activo en N-1 entidades.
Hallazgo agrupado por similitud semántica (17 findings, 17 entidades)
AltaML clustering identificó 17 findings similares afectando 17 entidades distintas. Categoría dominante: datos_personales. Severidades: {'alta': 17}. Muestra: Datos del portal hospedados fuera de Colombia | Datos del portal hospedados fuera de Colombia | Datos del portal hospedados fuera de Colombia.
Findings agrupados por similitud semántica reflejan una vulnerabilidad común (causa raíz compartida): mismo proveedor, misma configuración por defecto, o mismo template institucional sin endurecer. Resolver el problema en una entidad sin coordinar con las demás deja el problema activo en N-1 entidades.
Sin canal estandar de divulgacion responsable
MediaNinguno de los 2 subdominios alcanzables publica /.well-known/security.txt (RFC 9116).
Un investigador que descubra una vulnerabilidad no tiene canal estandarizado para reportar antes de publicar. Crisis va a prensa antes que a la entidad.
Activos públicos (2)
www.tumaco-narino.gov.co
portal principal
Tech: no fingerprint. Title: Alcaldía Distrital de Tumaco - Nariño
Observado: 2026-05-02
tumaco-narino.gov.co
portal principal
Tech: no fingerprint. Title: Alcaldía Distrital de Tumaco - Nariño
Observado: 2026-05-02