tlsx: recon de configuração TLS e certificados
tlsx · MIT
O tlsx conecta a um serviço TLS e reporta o que encontra: subject e entradas SAN do certificado, emissor, expiração, versões de protocolo, cipher suites, hash JARM. É tanto um verificador de configuração quanto uma ferramenta de descoberta — SANs de certificado rotineiramente citam hostnames que nenhuma fonte passiva conhece.
Instalação
go install -v github.com/projectdiscovery/tlsx/cmd/tlsx@latest Comandos principais
# detalhe básico do handshake
tlsx -l hosts.txt -silent
# extrai entradas SAN — isto é descoberta, não só inspeção
tlsx -l hosts.txt -san -cn -silent -resp-only
# expiração e emissor
tlsx -l hosts.txt -expired -self-signed -mismatched -silent
# enumeração de protocolo e cifra
tlsx -l hosts.txt -tls-version -cipher -silent
# JSON
tlsx -l hosts.txt -json -o tls.jsonl -san -cn -jarm Saída
{"host":"example.com","port":"443","tls_version":"tls12","cipher":"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"not_after":"2026-11-02T12:00:00Z","subject_cn":"example.com",
"subject_an":["example.com","www.example.com","internal-api.example.com"],
"issuer_org":["Let's Encrypt"],"self_signed":false} Onde ele entra no Tandera
O tlsx é agendado em duas fases. Em fingerprint roda contra o conjunto de hosts vivos para registrar detalhe de certificado e protocolo. Em active_scan no recon_web_full faz a enumeração mais profunda de protocolo e cifra que um fluxo NonIntrusive não fará.
As entradas SAN que ele recupera realimentam o inventário de hosts — um certificado citando internal-api.example.com coloca esse hostname na descoberta de escopo mesmo que nenhuma fonte passiva jamais o tenha visto.
Usando em um pentest
Leia os SANs antes da lista de cifras. Um certificado compartilhado é um mapa da nomenclatura interna da organização. Prefixos internal-, staging-, vpn- e admin- num certificado público são a saída de maior valor que esta ferramenta produz.
Cifras fracas são um finding, mas avalie-as com honestidade. TLS 1.0 numa página de login pública e TLS 1.0 num serviço interno legado não são o mesmo risco. Um relatório que lista ambos como Alto perde credibilidade.
Datas de expiração são inteligência operacional. Um certificado que expira em nove dias diz algo sobre como o alvo é mantido, e vale uma linha no relatório mesmo não sendo uma vulnerabilidade.