Crítico

Alcaldia de Manizales

Rama Ejecutiva · Sector territorial · Alcaldía capital

Resumen ejecutivoRiesgo CRÍTICO

Riesgo crítico. Se detectó: WordPress expone listado de usuarios y emails (Habeas Data) y bucket de almacenamiento cloud listable con objetos visibles. Adicionalmente, 4 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 inmediata: bloquear /wp-json/wp/v2/users o configurar para no exponer emails — es divulgación de datos personales (Habeas Data).

Total: 18Críticas: 3Altas: 7Medias: 6Sistémicas: 4
Cobertura100
Postura de seguridad30
Divulgación responsable0
Consistencia operativa100

Hallazgos (18)

Bucket GCS público manizales asociable a alc-manizales

Critica

GET https://storage.googleapis.com/manizales?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>manizales</Name><Prefix></Prefix><KeyCount>34</KeyCount><IsTruncated>false</IsTruncated><Co

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 cloud público con 34+ objetos listables asociado a alc-manizales

Critica

Bucket cloud retorna ListBucketResult/EnumerationResults con ≥34 objetos visibles en primeros 64 KB. Muestras: assets/bootstrap/css/bootstrap-grid.min.css, assets/bootstrap/css/bootstrap-reboot.min.css, assets/bootstrap/css/bootstrap.min.css, assets/bootstrap/js/bootstrap.bundle.min.js, assets/dropdown/css/style.css.

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)

Critica

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

Servidor catch-all en 2 host(s) — observabilidad reducida

Alta

El portal en manizales.gov.co, www.manizales.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.

WordPress REST expone listado de usuarios en salud.manizales.gov.co

Alta

GET https://salud.manizales.gov.co/wp-json/wp/v2/users retorna JSON con usuarios (id/name/slug). Sample: [{"id":1,"name":"admin","url":"https:\/\/salud.manizales.gov.co","description":"","link":"https:\/\/salud.manizales.gov.co\/author\/soporte\/","slug":"soporte","avatar_urls":{"24":"https:\/\/secure.gr

El endpoint /wp-json/wp/v2/users entrega usernames y a veces emails de la instalación WP. Permite enumerar nombres válidos para bruteforce dirigido y phishing personalizado.

VPN/Intranet alcanzable en DNS publico (2)

Alta

Hosts: intranet.manizales.gov.co, vpn.manizales.gov.co.

Aunque el servicio este restringido por IP, el FQDN publicado en DNS permite enumeracion trivial y ataques dirigidos al perimetro.

DMARC en modo quarantine (no reject)

Alta

_dmarc.manizales.gov.co publica politica permisiva.

Politica quarantine no rechaza correos no autenticados. Atacante puede suplantar @manizales.gov.co contra ciudadanos del territorio.

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.

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

Alta

ML clustering identificó 111 findings similares afectando 111 entidades distintas. Categoría dominante: api_expuesta. Severidades: {'alta': 111}. Muestra: VPN/Intranet alcanzable en DNS publico (1) | VPN/Intranet alcanzable en DNS publico (1) | VPN/Intranet alcanzable en DNS publico (1).

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.

Certificado wildcard cubre 1 dominios en manizales.gov.co

Media

Wildcards en SAN: *.manizales.gov.co. Total SAN: 2.

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 manizales.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 manizales.gov.co totalmente fuera de Colombia

Media

NS records: alex.ns.cloudflare.com, serenity.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.

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.

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

Alta

ML clustering identificó 69 findings similares afectando 41 entidades distintas. Categoría dominante: divulgacion_informacion. Severidades: {'alta': 69}. Muestra: WordPress REST expone listado de usuarios en prosperidadsocial.gov.co | WordPress REST expone listado de usuarios en relatoria.colombiacompra.gov.co | WordPress REST expone listado de usuarios en esap.edu.co.

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

Media

Ninguno de los 11 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.

Headers exponen versiones de stack en 1 hosts

Media

Ejemplos: sig.manizales.gov.co: X-Powered-By=ASP.NET.

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

Headers de seguridad insuficientes (1/8)

Media

Apex manizales.gov.co solo presenta 1 de 8 headers de seguridad esperados (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, X-XSS-Protection, COOP).

Headers de seguridad activan protecciones del navegador del usuario contra inyeccion, clickjacking y mixed content. Bajos = exposicion al usuario final.

Activos públicos (11)

intranet.manizales.gov.co

intranet

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

Server: nginx/1.24.0 (Ubuntu)

Tech: Nginx. Title: Login - Intranet Alcaldía de Manizales

Observado: 2026-05-02

autodiscover.manizales.gov.co

email

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 (IP 52.96.97.184).

Observado: 2026-05-02

planeacion.manizales.gov.co

subdominio

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

Tech: no fingerprint. Title: Invalid Connection

Observado: 2026-05-02

vpn.manizales.gov.co

vpn

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

Server: xxxxxxxx-xxxxx

Tech: no fingerprint. Title: -

Observado: 2026-05-02

sig.manizales.gov.co

subdominio

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

Server: Microsoft-IIS/10.0

Tech: ASP.NET, IIS 10. Title: SIG

Observado: 2026-05-02

manizales.gov.co

portal principal

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

Server: nginx

Tech: Nginx, WordPress. Title: Alcaldía de Manizales &#8211; Manizales

Observado: 2026-05-02

www.manizales.gov.co

portal principal

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

Server: nginx

Tech: Nginx, WordPress. Title: Alcaldía de Manizales &#8211; Manizales

Observado: 2026-05-02

app.manizales.gov.co

subdominio

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

Server: cloudflare

Tech: Cloudflare. Title: -

Observado: 2026-05-02

old.manizales.gov.co

subdominio

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

Server: nginx

Tech: Nginx, WordPress. Title: Alcaldía de Manizales &#8211; Manizales

Observado: 2026-05-02

salud.manizales.gov.co

subdominio

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

Server: Apache

Tech: Apache, WordPress. Title: Inicio - Secretaría de Salud

Observado: 2026-05-02

gestion.manizales.gov.co

subdominio

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

Server: Apache/2.4.33 (Win32) OpenSSL/1.0.2n

Tech: Apache. Title: Aplicaciones | Alcaldía de Manizales

Observado: 2026-05-02