Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/projectdiscovery/tlsx
ReconocimientoEnumeración de DNS y SubdominiosRecopilación de InformaciónSeguridad de RedesMala Configuración
GitHubprojectdiscovery/tlsx

tlsx

Recolector TLS rápido y configurable centrado en la recopilación de datos basada en TLS.

Ver Repositorio
1.1k156hace 18 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir


Características • Instalación • Uso • Ejecutar tlsx • Únete a Discord

Un recolector de TLS rápido y configurable centrado en la recopilación y análisis de datos basados en TLS.

Características

image

  • Conexión TLS rápida y totalmente configurable
  • Múltiples modos de conexión TLS
  • Múltiples sondas TLS
  • Retroceso automático TLS para versiones TLS antiguas
  • Conexión TLS Pre Handshake (terminación anticipada)
  • Selección personalizable de Cipher / SNI / TLS
  • JARM/JA3 huella TLS
  • Malas configuraciones TLS
  • Entrada de ASN, CIDR, IP, HOST y URL
  • Entrada/Salida estándar y salida TXT/JSON

Instalación

tlsx requiere Go 1.24 para instalarse correctamente. Para instalarlo, solo ejecuta el siguiente comando o descarga el binario precompilado desde la página de lanzamientos.```console go install github.com/projectdiscovery/tlsx/cmd/tlsx@latest

root@kitploit:~
## Uso```console
tlsx -h

Esto mostrará la ayuda de la herramienta. Aquí están todos los interruptores que soporta.```console TLSX is a tls data gathering and analysis toolkit.

Usage: tlsx [flags]

Flags: INPUT: -u, -host string[] target host to scan (-u INPUT1,INPUT2) -l, -list string target list to scan (-l INPUT_FILE) -p, -port string[] target port to connect (default 443)

SCAN-MODE: -sm, -scan-mode string tls connection mode to use (ctls, ztls, openssl, auto) (default "auto") -ps, -pre-handshake enable pre-handshake tls connection (early termination) using ztls -sa, -scan-all-ips scan all ips for a host (default false) -iv, -ip-version string[] ip version to use (4, 6) (default 4)

PROBES: -san display subject alternative names -cn display subject common names -so display subject organization name -tv, -tls-version display used tls version -cipher display used cipher -hash string display certificate fingerprint hashes (md5,sha1,sha256) -jarm display jarm fingerprint hash -ja3 display ja3 fingerprint hash (using ztls) -wc, -wildcard-cert display host with wildcard ssl certificate -tps, -probe-status display tls probe status -ve, -version-enum enumerate and display supported tls versions -ce, -cipher-enum enumerate and display supported cipher -ct, -cipher-type value ciphers types to enumerate. possible values: all/secure/insecure/weak (comma-separated) (default all) -ch, -client-hello include client hello in json output (ztls mode only) -sh, -server-hello include server hello in json output (ztls mode only) -se, -serial display certificate serial number

MISCONFIGURATIONS: -ex, -expired display host with host expired certificate -ss, -self-signed display host with self-signed certificate -mm, -mismatched display host with mismatched certificate -re, -revoked display host with revoked certificate -un, -untrusted display host with untrusted certificate

CONFIGURATIONS: -config string path to the tlsx configuration file -r, -resolvers string[] list of resolvers to use -cc, -cacert string client certificate authority file -ci, -cipher-input string[] ciphers to use with tls connection -sni string[] tls sni hostname to use -rs, -random-sni use random sni when empty -rps, -rev-ptr-sni perform reverse PTR to retrieve SNI from IP -min-version string minimum tls version to accept (ssl30,tls10,tls11,tls12,tls13) -max-version string maximum tls version to accept (ssl30,tls10,tls11,tls12,tls13) -cert, -certificate include certificates in json output (PEM format) -tc, -tls-chain include certificates chain in json output -vc, -verify-cert enable verification of server certificate -ob, -openssl-binary string OpenSSL Binary Path -hf, -hardfail strategy to use if encountered errors while checking revocation status -proxy string socks5 proxy to use for tlsx

OPTIMIZATIONS: -c, -concurrency int number of concurrent threads to process (default 300) -cec, -cipher-concurrency int cipher enum concurrency for each target (default 10) -timeout int tls connection timeout in seconds (default 5) -retry int number of retries to perform for failures (default 3) -delay string duration to wait between each connection per thread (eg: 200ms, 1s)

UPDATE: -up, -update update tlsx to latest version -duc, -disable-update-check disable automatic tlsx update check

OUTPUT: -o, -output string file to write output to -j, -json display output in jsonline format -dns display unique hostname from SSL certificate response -ro, -resp-only display tls response only -silent display silent output -nc, -no-color disable colors in cli output -v, -verbose display verbose output -version display project version

PDCP: -pd, -dashboard upload or view output in the PDCP UI dashboard -pdu, -dashboard-upload string upload tlsx output file (JSONL format) to the PDCP UI dashboard -auth string PDCP API key for authentication -tid, -team-id string upload asset results to a specified team ID -aid, -asset-id string upload new assets to an existing asset ID -aname, -asset-name string asset group name

DEBUG: -health-check, -hc run diagnostic check up

root@kitploit:~
## Usando tlsx como biblioteca

Se proporcionan ejemplos de uso de tlsx como biblioteca en la carpeta [examples](https://github.com/projectdiscovery/tlsx/blob/HEAD/examples/).

## Ejecutando tlsx

### Entrada para tlsx

**tlsx** requiere **ip** para realizar la conexión TLS y acepta múltiples formatos como se enumeran a continuación:```bash
AS1449 # ASN input
173.0.84.0/24 # CIDR input
93.184.216.34 # IP input
example.com # DNS input
example.com:443 # DNS input with port
https://example.com:443 # URL input port

El host de entrada se puede proporcionar usando la bandera -host / -u, y se pueden proporcionar múltiples valores usando entrada separada por comas, de manera similar la entrada mediante archivo es compatible con la bandera -list / -l.

Ejemplo de entrada de host separada por comas:```console $ tlsx -u 93.184.216.34,example.com,example.com:443,https://example.com:443 -silent

root@kitploit:~
Ejemplo de entrada de host basada en archivo:```console
$ tlsx -list host_list.txt

Entrada de puerto:

tlsx se conecta al puerto 443 por defecto, que se puede personalizar usando la bandera -port / -p; se pueden especificar uno o varios puertos usando entrada separada por comas o un archivo delimitado por nuevas líneas que contenga la lista de puertos a los que conectarse.

Ejemplo de entrada de puertos separados por comas:``` $ tlsx -u hackerone.com -p 443,8443

root@kitploit:~
Ejemplo de entrada de puerto basada en archivo:```
$ tlsx -u hackerone.com -p port_list.txt

Nota:

Cuando el host de entrada contiene un puerto, por ejemplo, 8.8.8.8:443 o hackerone.com:8443, el puerto especificado con el host se usará para realizar la conexión TLS en lugar del predeterminado o del proporcionado mediante la bandera -port / -p.

Sondeo TLS (ejecución predeterminada)

Esto ejecutará la herramienta contra el rango CIDR dado y devuelve los hosts que aceptan conexión tls en el puerto 443.```console $ echo 173.0.84.0/24 | tlsx


|_ | | / \ / / | | | |_ > < || ||/_/_\ v0.0.1

root@kitploit:~
projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions. [WRN] Developers assume no liability and are not responsible for any misuse or damage.

173.0.84.69:443 173.0.84.67:443 173.0.84.68:443 173.0.84.66:443 173.0.84.76:443 173.0.84.70:443 173.0.84.72:443

root@kitploit:~
### Sonda SAN/CN

El certificado TLS contiene nombres DNS en los campos **subject alternative name** y **common name**, que se pueden extraer usando la bandera `-san`, `-cn`.```console
$ echo 173.0.84.0/24 | tlsx -san -cn -silent

173.0.84.104:443 [uptycspay.paypal.com]
173.0.84.104:443 [api-3t.paypal.com]
173.0.84.104:443 [api-m.paypal.com]
173.0.84.104:443 [payflowpro.paypal.com]
173.0.84.104:443 [pointofsale-s.paypal.com]
173.0.84.104:443 [svcs.paypal.com]
173.0.84.104:443 [uptycsven.paypal.com]
173.0.84.104:443 [api-aa.paypal.com]
173.0.84.104:443 [pilot-payflowpro.paypal.com]
173.0.84.104:443 [pointofsale.paypal.com]
173.0.84.104:443 [uptycshon.paypal.com]
173.0.84.104:443 [api.paypal.com]
173.0.84.104:443 [adjvendor.paypal.com]
173.0.84.104:443 [zootapi.paypal.com]
173.0.84.104:443 [api-aa-3t.paypal.com]
173.0.84.104:443 [uptycsize.paypal.com]

Para facilitar la automatización, opcionalmente se puede usar la opción -resp-only para listar solo nombres DNS en la salida de CLI.```console $ echo 173.0.84.0/24 | tlsx -san -cn -silent -resp-only

api-aa-3t.paypal.com pilot-payflowpro.paypal.com pointofsale-s.paypal.com uptycshon.paypal.com a.paypal.com adjvendor.paypal.com zootapi.paypal.com api-aa.paypal.com payflowpro.paypal.com pointofsale.paypal.com uptycspay.paypal.com api-3t.paypal.com uptycsize.paypal.com api.paypal.com api-m.paypal.com svcs.paypal.com uptycsven.paypal.com uptycsven.paypal.com a.paypal.com api.paypal.com pointofsale-s.paypal.com pilot-payflowpro.paypal.com

root@kitploit:~
**subdominios** obtenidos de certificados TLS pueden canalizarse a otras herramientas de PD para una inspección adicional; aquí hay un ejemplo de canalización de subdominios TLS a **[dnsx](https://github.com/projectdiscovery/dnsx)** para filtrar subdominios pasivos y pasarlos a **[httpx](https://github.com/projectdiscovery/httpx)** para listar hosts que ejecutan servicios web activos.```console
$ echo 173.0.84.0/24 | tlsx -san -cn -silent -resp-only | dnsx -silent | httpx

    __    __  __       _  __
   / /_  / /_/ /_____ | |/ /
  / __ \/ __/ __/ __ \|   /
 / / / / /_/ /_/ /_/ /   |
/_/ /_/\__/\__/ .___/_/|_|
             /_/              v1.2.2

    projectdiscovery.io

Use with caution. You are responsible for your actions.
Developers assume no liability and are not responsible for any misuse or damage.
https://api-m.paypal.com
https://uptycsize.paypal.com
https://api.paypal.com
https://uptycspay.paypal.com
https://svcs.paypal.com
https://adjvendor.paypal.com
https://uptycshap.paypal.com
https://uptycshon.paypal.com
https://pilot-payflowpro.paypal.com
https://slc-a-origin-pointofsale.paypal.com
https://uptycsven.paypal.com
https://api-aa.paypal.com
https://api-aa-3t.paypal.com
https://uptycsbrt.paypal.com
https://payflowpro.paypal.com
http://pointofsale-s.paypal.com
http://slc-b-origin-pointofsale.paypal.com
http://api-3t.paypal.com
http://zootapi.paypal.com
http://pointofsale.paypal.com

Sonda TLS / Cifrado```console

$ subfinder -d hackerone.com | tlsx -tls-version -cipher

mta-sts.hackerone.com:443 [TLS1.3] [TLS_AES_128_GCM_SHA256] hackerone.com:443 [TLS1.3] [TLS_AES_128_GCM_SHA256] api.hackerone.com:443 [TLS1.3] [TLS_AES_128_GCM_SHA256] mta-sts.managed.hackerone.com:443 [TLS1.3] [TLS_AES_128_GCM_SHA256] mta-sts.forwarding.hackerone.com:443 [TLS1.3] [TLS_AES_128_GCM_SHA256] www.hackerone.com:443 [TLS1.3] [TLS_AES_128_GCM_SHA256] support.hackerone.com:443 [TLS1.2] [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]

root@kitploit:~
# Mala configuración de TLS

### Certificado expirado / autofirmado / no coincidente / revocado / no confiable

Se puede proporcionar una lista de hosts a tlsx para detectar certificados **expirados / autofirmados / no coincidentes / revocados / no confiables**.```console
$ tlsx -l hosts.txt -expired -self-signed -mismatched -revoked -untrusted
  

  _____ _    _____  __
 |_   _| |  / __\ \/ /
   | | | |__\__ \>  < 
   |_| |____|___/_/\_\  v0.0.1

    projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.

wrong.host.badssl.com:443 [mismatched]
self-signed.badssl.com:443 [self-signed]
expired.badssl.com:443 [expired]
revoked.badssl.com:443 [revoked]
untrusted-root.badssl.com:443 [untrusted]

JARM Huella TLS```console

$ echo hackerone.com | tlsx -jarm -silent

hackerone.com:443 [29d3dd00029d29d00042d43d00041d5de67cc9954cc85372523050f20b5007]

root@kitploit:~
### [JA3](https://github.com/salesforce/ja3) Huella TLS```console
$ echo hackerone.com | tlsx -ja3 -silent

hackerone.com:443 [20c9baf81bfe96ff89722899e75d0190]

Salida JSON

tlsx admite múltiples banderas de sondeo para consultar datos específicos, pero toda la información está siempre disponible en formato JSON; para automatización y postprocesamiento, usar la salida -json es la opción más conveniente.```console echo example.com | tlsx -json -silent | jq .

root@kitploit:~
No se proporcionó contenido para traducir: el mensaje termina en "INPUT:" sin texto fuente.```json
{
  "timestamp": "2022-08-22T21:22:59.799053+05:30",
  "host": "example.com",
  "ip": "93.184.216.34",
  "port": "443",
  "probe_status": true,
  "tls_version": "tls13",
  "cipher": "TLS_AES_256_GCM_SHA384",
  "not_before": "2022-03-14T00:00:00Z",
  "not_after": "2023-03-14T23:59:59Z",
  "subject_dn": "CN=www.example.org, O=Internet Corporation for Assigned Names and Numbers, L=Los Angeles, ST=California, C=US",
  "subject_cn": "www.example.org",
  "subject_org": [
    "Internet Corporation for Assigned Names and Numbers"
  ],
  "subject_an": [
    "www.example.org",
    "example.net",
    "example.edu",
    "example.com",
    "example.org",
    "www.example.com",
    "www.example.edu",
    "www.example.net"
  ],
  "issuer_dn": "CN=DigiCert TLS RSA SHA256 2020 CA1, O=DigiCert Inc, C=US",
  "issuer_cn": "DigiCert TLS RSA SHA256 2020 CA1",
  "issuer_org": [
    "DigiCert Inc"
  ],
  "fingerprint_hash": {
    "md5": "c5208a47259d540a6e3404dddb85af91",
    "sha1": "df81dfa6b61eafdffffe1a250240db5d2e6cee25",
    "sha256": "7f2fe8d6b18e9a47839256cd97938daa70e8515750298ddba2f3f4b8440113fc"
  },
  "tls_connection": "ctls",
  "sni": "example.com"
}

Integración con el Panel de PDCP

tlsx admite la carga de resultados de escaneo al panel de ProjectDiscovery Cloud Platform (PDCP) para visualización y análisis.

Carga de Resultados en Tiempo Real

Habilita la carga al panel para subir automáticamente los resultados a medida que se descubren:```console $ tlsx -u example.com -pd -json

root@kitploit:~
Los resultados se subirán automáticamente a PDCP y recibirás una URL de panel para verlos.

#### Cómo subir un archivo existente

Sube un archivo de salida JSONL guardado previamente a PDCP:```console
$ tlsx -pdu results.jsonl -tid your-team-id -aname "My Scan"

Opciones de configuración

  • -pd, --dashboard: Habilitar carga en tiempo real al panel de PDCP
  • -pdu, --dashboard-upload <file>: Subir un archivo JSONL específico a PDCP
  • -auth <key>: Clave API de PDCP (también se puede configurar mediante entorno o gestor de credenciales)
  • -tid, --team-id <id>: Especificar ID de equipo para cargas
  • -aid, --asset-id <id>: Subir a un ID de activo existente
  • -aname, --asset-name <name>: Establecer un nombre personalizado para el grupo de activos

Ejemplo con todas las opciones:```console $ tlsx -u example.com -pd -json -tid team123 -aname "Production Scan"

root@kitploit:~
## Configuración

### Modo de escaneo

tlsx proporciona múltiples modos para realizar la conexión TLS -

- `auto` (retroceso automático a otros modos en caso de fallo) - **predeterminado**
- `ctls` (**[crypto/tls](https://github.com/golang/go/blob/master/src/crypto/tls/tls.go)**)
- `ztls` (**[zcrypto/tls](https://github.com/zmap/zcrypto)**)
- `openssl` (**[openssl](https://github.com/openssl/openssl)**)

Algunas notas sobre el modo / librería específico se destacan en [discusiones vinculadas](https://github.com/projectdiscovery/tlsx/discussions/2), el modo `auto` está soportado para garantizar la máxima cobertura y escanear los hosts que ejecutan versiones antiguas de TLS reintentando la conexión usando los modos `ztls` y `openssl` ante cualquier error de conexión.

Un ejemplo de uso del modo `ztls` para escanear un sitio web que utiliza una versión de TLS antigua / desactualizada.```console
$ echo tls-v1-0.badssl.com | tlsx -port 1010 -sm ztls
  

  _____ _    _____  __
 |_   _| |  / __\ \/ /
   | | | |__\__ \>  < 
   |_| |____|___/_/\_\  v0.0.1

    projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.

tls-v1-0.badssl.com:1010

OpenSSL

Para usar el modo de conexión openssl, necesitarás tener openssl instalado en tu sistema. La mayoría de los sistemas modernos vienen con openssl preinstalado, pero si no está presente en tu sistema, puedes instalarlo manualmente. Puedes comprobar si openssl está instalado ejecutando el comando openssl version. Si openssl está instalado, este comando mostrará el número de versión.

Pre-Handshake (Finalización Anticipada)

tlsx admite la finalización anticipada de la conexión SSL, lo que permite un escaneo más rápido y menos solicitudes de conexión (desconectándose después de que se recopilen los datos del de TLS y del certificado).

```console $ tlsx -u example.com -pre-handshake

|_ | | / \ / / | | | |_ > < || ||/_/_\ v0.0.1

root@kitploit:~
projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions. [WRN] Developers assume no liability and are not responsible for any misuse or damage.

example.com:443

root@kitploit:~
> **Nota**:

> El modo **pre-handshake** utiliza `ztls` (**zcrypto/tls**), lo que también significa que el soporte está limitado hasta `TLS v1.2`, ya que `TLS v1.3` no es compatible con la librería `ztls`.

</table>
</tr>
</td>

### Versión de TLS

Las versiones **mínima** y **máxima** de TLS se pueden especificar usando los flags `-min-version` y `-max-version`; por defecto, estos valores son establecidos por la librería subyacente utilizada.

Los valores aceptables para la versión de TLS se especifican a continuación.

- `ssl30`
- `tls10`
- `tls11`
- `tls12`
- `tls13`

Aquí hay un ejemplo usando `max-version` para escanear hosts que soportan una versión anterior de TLS, es decir, **TLS v1.0**.```console
$ tlsx -u example.com -max-version tls10
  

  _____ _    _____  __
 |_   _| |  / __\ \/ /
   | | | |__\__ \>  < 
   |_| |____|___/_/\_\  v0.0.1

    projectdiscovery.io

[WRN] Use with caution. You are responsible for your actions.
[WRN] Developers assume no liability and are not responsible for any misuse or damage.
example.com:443

Cifrado personalizado

Se puede proporcionar un cifrado personalizado compatible usando el flag -cipher-input / -ci; la lista de cifrados compatibles para cada modo está disponible en la página wiki.```console $ tlsx -u example.com -ci TLS_AES_256_GCM_SHA384 -cipher

root@kitploit:~
[No content provided to translate.]```console
$ tlsx -u example.com -ci cipher_list.txt -cipher

Agradecimientos

Este programa utiliza opcionalmente:

  • zcrypto biblioteca del equipo de zmap.
  • cfssl biblioteca del equipo de cloudflare
  • datos de cifrado de ciphersuite.info para la clasificación de ciphersuites

tlsx está hecho con ❤️ por el equipo de projectdiscovery y se distribuye bajo la Licencia MIT.

Únete a Discord

Transmisión de registros de Transparencia de Certificados (CT)

tlsx puede operar en un modo fire-hose que transmite continuamente certificados TLS recién emitidos del ecosistema público de Transparencia de Certificados, proporcionando un flujo casi en tiempo real de nombres de host y metadatos.

Habilita el modo de registros CT usando la opción -ctl (predeterminada cuando no se proporciona ninguna entrada):```bash tlsx -ctl -silent | jq .subject_an

root@kitploit:~
#### Desplazamientos iniciales

La herramienta ofrece tres comportamientos de inicio mutuamente excluyentes controlados por las siguientes opciones:

| Opción | Comportamiento |
|------|-----------|
| _default_ | Iniciar **ahora** (tamaño del árbol al inicio) – solo se transmiten los certificados futuros |
| `-cb, --ctl-beginning` | Iniciar desde el índice **0** para cada log (reproducción histórica completa) |
| `-cti, --ctl-index <log>=<n>` | Índice personalizado por log (repetible). Establece el índice inicial en _n_ para la URL/ID del log especificado. Ejemplo: `--ctl-index https://ct.googleapis.com/logs/argon2023=123456` |```bash
# Replay the entire history
$ tlsx -ctl -cb -silent > all_certs.jsonl

# Resume at custom positions for two logs
$ tlsx -ctl -cti https://ct.googleapis.com/logs/argon2023=987654 -cti cloudflare-nimbus2024=543210 \
      -silent | jq -r .ct_source

Por defecto, los duplicados se filtran mediante un gran filtro de Bloom inverso. Pase -v para observar estadísticas detalladas.

Descargar herramienta
serverhello

Para más detalle, consulte Hunting-Certificates-And-Servers por @erbbysam

Un ejemplo de uso del modo -pre-handshake: