
Escáner de seguridad web basado en Python que analiza cabeceras HTTP, SSL/TLS, registros DNS y configuraciones incorrectas comunes para generar un informe de seguridad puntuado con recomendaciones prácticas.
EasyScan es un script de Python que analiza la seguridad de un sitio web dado inspeccionando sus cabeceras HTTP, registros DNS y otras configuraciones. El script genera un informe de seguridad con una puntuación, una calificación y recomendaciones para abordar posibles vulnerabilidades.
El script cubre los siguientes casos de prueba:
Referrer-Policy y la metaetiqueta./admin, /wp-admin, /phpmyadmin, /cpanel)./images, /uploads, /files, etc.) en busca de listados de directorios expuestos.Set-Cookie en busca de los atributos Secure, HttpOnly, SameSite y los prefijos __Secure-/__Host-.Server, X-Powered-By, X-AspNet-Version.Access-Control-Allow-Origin y conflictos con comodines y credenciales.Content-Type.robots.txt en busca de rutas desautorizadas potencialmente sensibles.OPTIONS para detectar verbos peligrosos (TRACE, DELETE, PUT, CONNECT)..git/config, .env, .htaccess, backup.sql, wp-config.php.bak y más.<script> y <link> externas en busca de atributos integrity faltantes.http:// cargadas en páginas HTTPS.X-Frame-Options como la directiva CSP frame-ancestors para proteger contra clickjacking.Host falsificada se refleja en redirecciones o en el cuerpo de la respuesta.url, next, redirect, return, etc.) en busca de vulnerabilidades de redirección abierta.EasyScan requiere Python 3.6+ y las siguientes bibliotecas:
requestsbeautifulsoup4dnspythoncertifiPuede instalar estas dependencias usando el archivo requirements.txt proporcionado:
pip install -r requirements.txt
Para usar el script EasyScan, siga estos pasos:
easyscan.py.pip install -r requirements.txt
python3 easyscan.py [url]
| Indicador | Descripción |
|---|---|
url | Argumento posicional. La URL a escanear (p. ej., example.com o https://example.com). |
--json | Envía los resultados como JSON a la salida estándar. |
--output FILE / -o FILE | Guarda el informe en un archivo específico. |
--timeout SECS / -t SECS | Establece el tiempo de espera de la solicitud en segundos (predeterminado: 10). |
--verbose / -v | Habilita la salida de registro a nivel de depuración. |
Escaneo básico:
python3 easyscan.py example.com
Escaneo con salida JSON guardada en un archivo:
python3 easyscan.py example.com --json --output report.json
Escaneo con un tiempo de espera mayor y registro verbose:
python3 easyscan.py https://example.com --timeout 20 --verbose
Use el indicador --json para obtener una salida JSON estructurada, que es útil para la integración con otras herramientas:
python3 easyscan.py example.com --json
El informe JSON incluye un objeto score con la puntuación agregada (0-100), una calificación en letras (A-F), conteos de severidad y todos los hallazgos.
================================================================================================================================================================
INFORME DE SEGURIDAD
================================================================================================================================================================
Cabecera Estado Severidad Recomendación
================================================================================================================================================================
[CRI] SSL/TLS Faltante Crítico El sitio no usa HTTPS. Implemente SSL/TLS para cifrar datos en tránsito.
[HI] Clickjacking Sin Protección Alto Establezca 'X-Frame-Options: DENY' o la directiva CSP 'frame-ancestors' para prevenir clickjacking.
[HI] Página de Admin Pública (/admin) Accesible Alto Restrinja el acceso a /admin a direcciones IP específicas y/o active la autenticación.
[MED] Content-Security-Policy Faltante Medio Implemente una Política de Seguridad de Contenido (CSP) para prevenir ataques XSS e inyección de código.
[MED] Strict-Transport-Security Faltante Medio Implemente Strict Transport Security (HSTS) para forzar conexiones seguras.
[MED] Permissions-Policy Faltante Medio Establezca una cabecera 'Permissions-Policy' para restringir funciones del navegador (cámara, micrófono, geolocalización).
[LOW] Registro SPF Faltante Bajo Agregue un registro SPF a la configuración DNS de su dominio para ayudar a prevenir la suplantación de correo electrónico.
[INF] Meta Referrer Faltante Bajo Agregue una META etiqueta 'referrer' con 'no-referrer' para evitar la fuga de información de referencia.
============================================================
PUNTUACIÓN DE SEGURIDAD: 55/100 (Calificación: C)
============================================================
Total de Problemas : 8
Crítico : 1
Alto : 2
Medio : 4
Bajo : 1
Información : 0
============================================================
Tenga en cuenta que el script puede no cubrir todos los posibles escenarios de seguridad, y se recomienda realizar una evaluación de seguridad exhaustiva para su sitio web.
EasyScan también está disponible en https://easyscan.onrender.com/
Si tiene alguna pregunta o necesita una auditoría de seguridad completa, comuníquese en Twitter @0xdevrel.