Adecuado

Alcaldia Mayor de Cartagena de Indias

Rama Ejecutiva · Sector territorial · Otra entidad

Resumen ejecutivoRiesgo ALTO

Riesgo alto. Se identificaron 3 hallazgos críticos. Acción recomendada: publicar registros DMARC con política reject, habilitar HSTS y completar el set de headers de seguridad.

Total: 33Críticas: 3Altas: 5Medias: 16Sistémicas: 1
Cobertura100
Postura de seguridad80
Divulgación responsable0
Consistencia operativa100

Hallazgos (33)

VPN de desarrollo rotulada y publicada en internet

Critica

vpn.dev.cartagena.gov.co aparece en CT logs publicos. Pritunl con pagina de login activa, hospedado en AWS US (54.89.167.195).

Un ambiente de pruebas suele estar menos parchado que produccion. Pritunl ha tenido CVEs publicas. Etiquetar dev por nombre en internet equivale a colgar la llave de repuesto del marco de la puerta.

Cluster interno (kc/kf/ee + VPN principal) publicado en DNS publico

Critica

kc.cartagena.gov.co, kf.cartagena.gov.co, ee.cartagena.gov.co y vpn.cartagena.gov.co son alcanzables por nombre desde cualquier internet, aunque sus HTTPS hacen timeout.

Los nombres de los sistemas internos en DNS publico permiten a un atacante con IA inventariarlos en segundos. Bruteforce trivial los descubre incluso si no estan en CT logs.

Ausencia total de canal de divulgacion responsable

Critica

Ninguno de los 13 subdominios alive publica /.well-known/security.txt (RFC 9116).

Un investigador que descubra una vulnerabilidad no tiene canal estandarizado. La crisis va a prensa antes que a la Alcaldia.

Sin registros CAA --- cualquier CA puede emitir certificados

Alta

dig CAA cartagena.gov.co retorna vacio. Cualquier autoridad certificadora publica puede emitir certificados a nombre del dominio sin restriccion.

Combinado con monitoreo CT incompleto, un atacante puede generar certificados validos para spoofing sin que la Alcaldia lo detecte automaticamente.

DMARC en modo permisivo (quarantine en lugar de reject)

Alta

_dmarc.cartagena.gov.co publica v=DMARC1; p=quarantine con rua/ruf habilitados, pero sin rechazo activo de correos no autenticados.

Un atacante puede suplantar @cartagena.gov.co contra ciudadanos, proveedores y entes territoriales. Los correos van a spam pero no son rechazados.

Headers exponen version exacta de PHP y Drupal

Alta

Cada respuesta del portal incluye X-Powered-By: PHP/8.3.30 y X-Generator: Drupal 10, ademas de SPRequestDuration y X-Drupal-Cache (telemetria interna).

Cada header acelera la explotacion de vulnerabilidades de version especifica. Buena practica: ocultar Server, X-Powered-By y X-Generator en respuestas externas.

Datos del portal hospedados en CDN extranjero (Cloudflare US)

Alta

Apex y la mayoria de subdominios resuelven a 104.18.20.16 (Cloudflare AS13335, San Francisco, EE.UU.). vpn.dev.* esta en AWS us-east-1.

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.

VPN principal alcanzable solo por nombre, no por HTTPS

Media

vpn.cartagena.gov.co (190.71.138.129, IP nacional) tiene FQDN publico pero HTTPS hace timeout --- exposicion simbolica al inventario.

El nombre del recurso esta publicado en DNS aunque el servicio este restringido por IP. Bruteforce de subdominios lo encuentra trivialmente.

cluster.cartagena.gov.co en estado de mantenimiento prolongado

Media

cluster.cartagena.gov.co retorna 503 con titulo "Sitio desconectado en mantenimiento" sin fecha de retorno.

Aplicacion huerfana en estado intermedio --- consume superficie expuesta y certificado emitido sin proposito operativo claro.

volta.cartagena.gov.co activo sin contenido real (404)

Media

volta.cartagena.gov.co resuelve y responde 404 desde Cloudflare. Subdominio activo sin proposito visible.

Candidato a decomisionamiento. Cualquier subdominio con certificado y sin contenido es deuda de superficie.

Headers exponen telemetria interna del CMS

Media

X-Drupal-Cache, X-Drupal-Dynamic-Cache (UNCACHEABLE) y SPRequestDuration son visibles en cada respuesta.

La telemetria interna del CMS no debe estar accesible externamente --- facilita identificar paginas con cacheo deficiente para amplificar ataques.

autodiscover.cartagena.gov.co sin negociacion HTTPS estandarizada

Baja

autodiscover.cartagena.gov.co (40.99.247.40, M365 Exchange) rechaza conexiones HTTPS directas (Connection refused).

Aunque es comportamiento estandar de Microsoft 365, una negociacion TLS robusta refuerza la postura general del dominio.

Arquitectura distribuida sin gobierno unico

Info

superlideres.* en Vercel (185.158.133.1), apex en Cloudflare US, vpn.dev.* en AWS US, cluster local en 190.71.138.197 --- multiples proveedores sin gobierno aparente.

La heterogeneidad operativa multiplica los puntos de falla y dificulta la correlacion de eventos de seguridad. Sin gobierno unico, cada proveedor establece su propio estandar.

robots.txt revela 3 ruta(s) sensibles en cartagena.gov.co

Media

Disallow/Allow incluye: /composer/Template/README.txt, /admin/, /index.php/admin/. robots.txt es publico — los crawlers respetan, los atacantes lo usan como mapa.

robots.txt no impide acceso, solo solicita ignorar a crawlers benignos. Listar paths internos/admin alli es un atajo para enumerar superficie sensible.

Certificado wildcard cubre 1 dominios en cartagena.gov.co

Media

Wildcards en SAN: *.cartagena.gov.co. Total SAN: 3.

Wildcard certs simplifican operación pero amplían el blast radius: si la llave privada se compromete, el atacante impersona TODOS los subdominios cubiertos. Buena práctica: cert por servicio.

DNSSEC ausente en cartagena.gov.co

Media

No 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.

DNS de cartagena.gov.co totalmente fuera de Colombia

Media

NS records: asa.ns.cloudflare.com, hugh.ns.cloudflare.com

Toda la zona DNS está bajo proveedores extranjeros — los logs de queries DNS, claves DNSSEC y eventual modificación quedan bajo jurisdicción foránea. Para el Estado, esto debería evaluarse contra Ley 1581/2012.

Ruta /modules/README.txt listada en Disallow es accesible publicamente

Media

GET https://cartagena.gov.co/modules/README.txt retorna 200.

robots.txt expresa intencion de ocultar; un atacante usa esa lista como mapa. Ruta accesible significa que la 'proteccion' es solo cooperativa.

Ruta /sites/README.txt listada en Disallow es accesible publicamente

Media

GET https://cartagena.gov.co/sites/README.txt retorna 200.

robots.txt expresa intencion de ocultar; un atacante usa esa lista como mapa. Ruta accesible significa que la 'proteccion' es solo cooperativa.

Ruta /README.md listada en Disallow es accesible publicamente

Media

GET https://cartagena.gov.co/README.md retorna 200.

robots.txt expresa intencion de ocultar; un atacante usa esa lista como mapa. Ruta accesible significa que la 'proteccion' es solo cooperativa.

Ruta /filter/tips listada en Disallow es accesible publicamente

Media

GET https://cartagena.gov.co/filter/tips retorna 200.

robots.txt expresa intencion de ocultar; un atacante usa esa lista como mapa. Ruta accesible significa que la 'proteccion' es solo cooperativa.

Ruta /themes/README.txt listada en Disallow es accesible publicamente

Media

GET https://cartagena.gov.co/themes/README.txt retorna 200.

robots.txt expresa intencion de ocultar; un atacante usa esa lista como mapa. Ruta accesible significa que la 'proteccion' es solo cooperativa.

Drupal CHANGELOG.txt accesible en www.cartagena.gov.co

Media

GET https://www.cartagena.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 cartagena.gov.co

Media

GET https://cartagena.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 tramites.cartagena.gov.co

Media

GET https://tramites.cartagena.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 mayor

Info

GET https://mayor.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 mayor

Info

GET https://storage.googleapis.com/mayor 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 mayor-files

Info

GET https://mayor-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 alcaldia

Info

GET https://alcaldia.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 alcaldia

Info

GET https://storage.googleapis.com/alcaldia 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 distrito

Info

GET 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

Info

GET 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.

Hallazgo agrupado por similitud semántica (196 findings, 196 entidades)

Alta

ML 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.

Activos públicos (13)

ee.cartagena.gov.co

aplicacion interna

0/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

HTTPS error: <urlopen error timed out>. FQDN publicado en DNS publico, host alive (IP 190.71.138.197).

Observado: 2026-04-28

vpn.cartagena.gov.co

vpn

0/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

HTTPS error: <urlopen error timed out>. FQDN publicado en DNS publico, host alive (IP 190.71.138.129).

Observado: 2026-04-28

www.cartagena.gov.co

portal principal

5/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Server: cloudflare

Tech: Cloudflare, Drupal (body), Drupal CMS. Title: Inicio | Alcaldía Mayor de Cartagena de Indias

Observado: 2026-04-28

kf.cartagena.gov.co

aplicacion interna

0/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

HTTPS error: <urlopen error timed out>. FQDN publicado en DNS publico, host alive (IP 190.71.138.197).

Observado: 2026-04-28

superlideres.cartagena.gov.co

aplicacion

3/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Server: cloudflare

Tech: Cloudflare. Title: Escuela de Liderazgo y Participación · Cartagena de Indias

Observado: 2026-04-28

kc.cartagena.gov.co

aplicacion interna

0/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

HTTPS error: <urlopen error timed out>. FQDN publicado en DNS publico, host alive (IP 190.71.138.197).

Observado: 2026-04-28

cartagena.gov.co

portal principal

5/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Server: cloudflare

Tech: Cloudflare, Drupal (body), Drupal CMS. Title: Inicio | Alcaldía Mayor de Cartagena de Indias

Observado: 2026-04-28

autodiscover.cartagena.gov.co

email autodiscover

0/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

HTTPS error: <urlopen error [Errno 61] Connection refused>. FQDN publicado en DNS publico, host alive (IP 40.99.247.40).

Observado: 2026-04-28

volta.cartagena.gov.co

subdominio huerfano

0/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Server: cloudflare

Tech: Cloudflare. Title: Not Found

Observado: 2026-04-28

vpn.dev.cartagena.gov.co

vpn

4/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Tech: no fingerprint. Title: Pritunl

Observado: 2026-04-28

cluster.cartagena.gov.co

aplicacion

2/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Server: cloudflare

Tech: Cloudflare, Drupal (body), Drupal CMS. Title: Sitio desconectado en mantenimiento | Cluster 2.0

Observado: 2026-04-28

app.cartagena.gov.co

aplicacion

2/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Server: cloudflare

Tech: Cloudflare. Title: Alcaldía Distrital de Cartagena de Indias

Observado: 2026-04-28

tramites.cartagena.gov.co

portal tramites

5/8
HTTPS
Certificado
HSTS
CSP
X-Frame-Options
X-Content-Type
Referrer-Policy
security.txt

Server: cloudflare

Tech: Cloudflare, Drupal (body), Drupal CMS. Title: Trámites y servicios | Alcaldía Mayor de Cartagena de Indias

Observado: 2026-04-28