WebCheck: Análisis OSINT de sitios web
Introducción
Web-Check permite analizar dominios y sitios web desde fuera, mostrando tecnologías, cabeceras de seguridad, DNS, TLS, blocklists y más. Es una herramienta OSINT rápida, útil para tener un panorama inmediato de la exposición pública.
Requisitos previos
- Docker y Docker Compose instalados.
Despliegue
El archivo docker-compose.yml está en Gitea y contiene todo lo necesario para levantar el servicio:
Este fichero define dos contenedores:
web-check-app: interfaz web (puerto 3000).web-check-api: backend interno (puerto 3001).
APIs opcionales
La aplicación funciona sola, pero admite integrar claves de terceros para ampliar análisis:
- Shodan → fingerprints de puertos y servicios.
- WhoAPI → whois más completo.
- VirusTotal → reputación de URLs.
- BuiltWith / Wappalyzer → tecnologías usadas.
- SecurityTrails → DNS históricos y relacionados.
Sin claves, el servicio ofrece lo básico de forma local.
Exposición con Authentik
Si se quiere abrir a internet:
- Exponer solo
web-check-app(puerto 3000), protegido tras Caddy + Authentik. - Mantener
web-check-api(puerto 3001) interno, accesible únicamente desde la red Docker.
Flujo típico:
Internet -> Caddy (TLS + Authentik) -> web-check-app -> web-check-api
Análisis complementario
Para comprobaciones más profundas en la capa TLS/cifrado se puede utilizar testssl.sh. Esta herramienta realiza un análisis exhaustivo de protocolos, cifrados, vulnerabilidades conocidas (como Heartbleed o ROBOT), soporte de versiones obsoletas y configuración general del servidor TLS. Es mucho más detallada que Web-Check y permite validar si la configuración cumple buenas prácticas modernas.
Errores comunes o limitaciones
- No abrir la API (3001) a internet: cualquiera podría usar el servidor como proxy de escaneo.
- Los módulos con API externa requieren clave: sin ella, se muestran solo datos básicos.
- Es OSINT pasivo, no ejecuta pruebas intrusivas ni pentesting activo.
Resumen breve
docker-compose.yml→ en Gitea.- Exponer solo la app (3000), con Authentik delante.
- La API (3001) debe ser interna.
- Integraciones opcionales con claves API.
- Para TLS avanzado: usar
testssl.sh.