
testssl.sh v3.2.4
Pruebas de cifrado TLS/SSL en cualquier lugar y en cualquier puerto.
Introducción
testssl.sh es una herramienta gratuita de línea de comandos que verifica el servicio de un servidor en cualquier puerto para determinar el soporte de cifrados TLS/SSL, protocolos, así como algunas vulnerabilidades criptográficas.
Características principales
- Salida clara: puedes distinguir fácilmente si algo es bueno o malo.
- Salida legible por máquina (CSV, dos formatos JSON), también salida HTML.
- No es necesario instalar ni configurar nada. Sin gems, CPAN, pip o similares.
- Funciona de inmediato: Linux, MacOS, FreeBSD, NetBSD, WSL2, MSYS2/Cygwin, OpenBSD necesita bash.
- Se proporciona un Dockerfile, también hay una compilación oficial del contenedor en dockerhub y GHCR.
- Flexibilidad: puedes probar cualquier servicio habilitado para SSL/TLS y STARTTLS, no solo servidores web en el puerto 443.
- Caja de herramientas: varias opciones de línea de comandos te ayudan a ejecutar tu prueba y configurar tu salida.
- Fiabilidad: las características se prueban minuciosamente.
- Privacidad: solo tú ves el resultado, no un tercero.
- Libertad: es 100% código abierto. Puedes revisar el código, ver qué sucede.
- El desarrollo es gratuito y abierto en GitHub. La participación y las contribuciones son bienvenidas.
- Las pruebas unitarias garantizan la madurez: verifican la coherencia, si el JSON es válido, se ejecuta en Linux+MacOS, ¡y mucho más!
Licencia
Este software es gratuito. Puedes usarlo bajo los términos de GPLv2, consulta LICENSE.
La atribución es importante para el futuro de este proyecto, también en Internet. Por lo tanto, si ofreces un escáner basado en testssl.sh como un servicio público y/o de pago en Internet, se recomienda encarecidamente que menciones a tu audiencia que estás usando este programa y dónde obtenerlo. Esto nos ayuda a recibir correcciones de errores, otros comentarios y más contribuciones.
Compatibilidad
Testssl.sh funciona de inmediato en todas las distribuciones Linux/BSD y MacOS. Desde la versión muy antigua 2.9, la mayoría de las limitaciones debidas a funciones deshabilitadas del cliente openssl han desaparecido gracias a las comprobaciones basadas en sockets de bash. Se proporciona una versión antigua de OpenSSL, pero hoy en día también puedes usar cualquier versión de LibreSSL u OpenSSL.
testssl.sh también funciona de inmediato en otros sistemas Unix, siempre que tengan
/bin/bash >= versión 3.2 y herramientas estándar como sed y awk instaladas. Windows
(usando MSYS2, Cygwin o WSL/WSL2) también funciona. Se realiza una verificación implícita (silenciosa) de los binarios cuando inicias testssl.sh. System V Unix probablemente necesite tener GNU grep instalado.
Las notificaciones de actualización se pueden encontrar en github o las más importantes en mastodon o bluesky. twitter ya no se utiliza.
Instalación
Puedes descargar la rama 3.3dev de testssl.sh simplemente clonando este repositorio git:
git clone --depth 1 https://github.com/testssl/testssl.sh.git --branch 3.3dev
3.3dev es la última rama de desarrollo que evolucionó a partir de la estable 3.2. Intentamos no hacer grandes experimentos en la rama dev, sin embargo, el punto del desarrollo es que habrá cambios y los cambios pueden necesitar un tiempo para madurar.
Docker
Testssl.sh tiene requisitos mínimos. Como se dijo, no necesitas instalar ni compilar nada. Puedes simplemente ejecutarlo desde el directorio clonado/descargado. Aún así, si no deseas clonar el repositorio de GitHub en tu directorio preferido, puedes descargar un contenedor desde dockerhub y ejecutarlo:
docker run --rm -it ghcr.io/testssl/testssl.sh <your_cmd_line>
O si has clonado este repositorio, también puedes simplemente cd al INSTALLDIR y ejecutar
docker build . -t imagefoo && docker run --rm -t imagefoo testssl.net
Para más información, consulta Dockerfile.md.
Sin garantía
El uso del programa es sin ninguna garantía. Úsalo bajo tu propio riesgo.
Testssl.sh está diseñado para usarse como una herramienta CLI independiente. Si bien intentamos aplicar las mejores prácticas de seguridad y desinfectar la entrada externa, no podemos garantizar que el programa esté libre de vulnerabilidades. Ejecutarlo como un servicio web puede presentar riesgos de seguridad y se recomienda aplicar medidas de seguridad adicionales. Valida la entrada del usuario y de todos los servicios consultados.
Estado
Dada la mano de obra actual, solo admitimos versiones n-1. Estás viendo la rama 3.3.dev donde se desarrolla la próxima versión antes de que 3.4 se convierta en la versión estable y 3.2 pase a ser estable anterior. Si dudas con respecto a los cambios, debes usar 3.2. La versión 3.0.10 fue la última, no habrá más actualizaciones.
Documentación
- .. está ahí para leerla. Por favor, hazlo :-) -- al menos antes de hacer preguntas. Consulta la página del manual en groff, html y markdown en
~/doc/. - https://testssl.sh/ te ayudará a comenzar.
- También hay un doc generado por IA, ver más abajo.
- Will Hunt proporcionó una descripción más extensa. Aunque fue escrita para una versión anterior (2.8), todavía incluye información de fondo.
Contribuir
Muchos colaboradores ya han ayudado a impulsar el proyecto hasta donde está actualmente, consulta CREDITS.md. ¡Tu contribución también sería bienvenida! Hay una lista de issues. Para empezar, busca issues etiquetados como good first issue, for grabs o help wanted. Este último es más avanzado. También puedes buscar issues de documentación, o ayudar con pruebas unitarias o mejorar las acciones de GitHub.
Se recomienda leer CONTRIBUTING.md y también echar un vistazo a la Convención de Codificación. Antes de comenzar a escribir PRs con cientos de líneas, mejor crea un issue primero.
En general, también hay cierta carga de mantenimiento, como mantener handshakes y almacenes de CA, etc. Si crees que puedes contribuir y ser responsable de una de esas tareas de mantenimiento, por favor habla. Eso liberaría recursos que podríamos usar para el desarrollo.
Reportes de errores
Los reportes de errores son importantes. Hacen que este proyecto sea más robusto.
Por favor, reporta los errores en el rastreador de issues de GitHub. No olvides proporcionar información detallada, consulta la plantilla para issues y más detalles en https://github.com/testssl/testssl.sh/wiki/Bug-reporting. Nadie puede leer tus pensamientos, todavía. Y solo las agencias tu pantalla ;-)
También puedes depurar tú mismo, consulta aquí.
Proyectos externos/relacionados
Por favor, dirígete a los respectivos proyectos a continuación para preguntas no específicas del código de testssl.sh.
Documentación potenciada por IA @ DeepWiki
Interfaz web
Escáner masivo con escaneos paralelos y búsqueda elástica de resultados
Verificador de privacidad usando testssl.sh
Plugins Nagios / Icinga
- https://github.com/dnmvisser/nagios-testssl (Python 3)
- https://gitgud.malvager.net/Wazakindjes/icinga2_plugins/src/master/check_testssl.sh (Shell)
pentest2xlsx: generar hojas de Excel desde CSV
Paquete Brew
- consulta #233 y https://github.com/Homebrew/homebrew