Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
tlsx — TLS 기반 데이터 수집에 중점을 둔 빠르고 구성 가능한 TLS 그래버. | Kitploit
도구/GitHubGitHub/projectdiscovery/tlsx
ReconnaissanceDNS & Subdomain EnumerationInformation GatheringNetwork SecurityMisconfiguration
GitHubprojectdiscovery/tlsx

tlsx

TLS 기반 데이터 수집에 중점을 둔 빠르고 구성 가능한 TLS 그래버.

저장소 보기
1.1k15617일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유


기능 • 설치 • 사용법 • tlsx 실행 • Discord 참여

TLS 기반 데이터 수집 및 분석에 중점을 둔 빠르고 구성 가능한 TLS 그래버입니다.

기능

image

  • 빠르고 완전히 구성 가능한 TLS 연결
  • 다양한 TLS 연결 모드
  • 여러 TLS 프로브
  • 이전 TLS 버전용 자동 TLS 폴백
  • 핸드셰이크 전 TLS 연결(조기 종료)
  • 사용자 정의 가능한 Cipher / SNI / TLS 선택
  • JARM/JA3 TLS 핑거프린트
  • TLS 잘못된 구성
  • ASN, CIDR, IP, HOST 및 URL 입력
  • STD IN/OUT 및 TXT/JSON 출력

설치

tlsx를 설치하려면 Go 1.24가 필요합니다. 설치하려면 아래 명령을 실행하거나 릴리스 페이지에서 사전 컴파일된 바이너리를 다운로드하세요.```console go install github.com/projectdiscovery/tlsx/cmd/tlsx@latest

root@kitploit:~
## 사용법```console
tlsx -h

이 도구에 대한 도움말이 표시됩니다. 지원하는 모든 스위치는 다음과 같습니다.```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:~
## Using tlsx as library

tlsx를 라이브러리로 사용하는 예제는 [examples](https://github.com/projectdiscovery/tlsx/blob/HEAD/examples/) 폴더에서 제공됩니다.

## Running tlsx

### Input for tlsx

**tlsx**는 TLS 연결을 위해 **ip**가 필요하며, 아래 나열된 것처럼 여러 형식을 허용합니다:```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

입력 호스트는 -host / -u 플래그를 사용하여 제공할 수 있으며, 여러 값을 쉼표로 구분된 입력으로 제공할 수 있습니다. 마찬가지로 파일 입력은 -list / -l 플래그를 사용하여 지원됩니다.

쉼표로 구분된 호스트 입력 예시:```console $ tlsx -u 93.184.216.34,example.com,example.com:443,https://example.com:443 -silent

root@kitploit:~
파일 기반 호스트 입력의 예:```console
$ tlsx -list host_list.txt

포트 입력:

tlsx는 기본적으로 443 포트에 연결되며, -port / -p 플래그를 사용하여 사용자 정의할 수 있습니다. 단일 또는 여러 포트는 쉼표로 구분된 입력 또는 연결할 포트 목록이 포함된 줄바꿈 구분 파일을 사용하여 지정할 수 있습니다.

쉼표로 구분된 포트 입력 예:``` $ tlsx -u hackerone.com -p 443,8443

root@kitploit:~
파일 기반 포트 입력 예시:```
$ tlsx -u hackerone.com -p port_list.txt

참고:

입력 호스트에 포트가 포함된 경우(예: 8.8.8.8:443 또는 hackerone.com:8443), 호스트와 함께 지정된 포트가 기본 포트 또는 -port / -p 플래그로 제공된 포트 대신 TLS 연결에 사용됩니다.

TLS 프로브 (기본 실행)

이 도구는 주어진 CIDR 범위에 대해 실행되어 포트 443에서 TLS 연결을 허용하는 호스트를 반환합니다.```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:~
### SAN/CN 프로브

TLS 인증서에는 **subject alternative name** 및 **common name** 필드 아래에 DNS 이름이 포함되어 있으며, `-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]

자동화의 편의를 위해, 선택적으로 -resp-only 플래그를 사용하여 CLI 출력에서 DNS 이름만 나열할 수 있습니다.```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:~
**하위 도메인** TLS 인증서에서 얻은 **하위 도메인**은 추가 검사를 위해 다른 PD 도구로 파이프할 수 있습니다. 다음은 TLS 하위 도메인을 **[dnsx](https://github.com/projectdiscovery/dnsx)**로 파이프하여 패시브 하위 도메인을 필터링하고, 이를 **[httpx](https://github.com/projectdiscovery/httpx)**로 전달하여 활성 웹 서비스를 실행 중인 호스트를 나열하는 예입니다.```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

TLS / Cipher 프로브```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:~
# TLS 구성 오류

### 만료 / 자체 서명 / 불일치 / 폐기 / 신뢰할 수 없는 인증서

호스트 목록을 tlsx에 제공하여 **만료 / 자체 서명 / 불일치 / 폐기 / 신뢰할 수 없는** 인증서를 탐지할 수 있습니다.```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 TLS 핑거프린트```console

$ echo hackerone.com | tlsx -jarm -silent

hackerone.com:443 [29d3dd00029d29d00042d43d00041d5de67cc9954cc85372523050f20b5007]

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

hackerone.com:443 [20c9baf81bfe96ff89722899e75d0190]

JSON 출력

tlsx는 특정 데이터를 쿼리하기 위해 여러 프로브 플래그를 지원하지만, 모든 정보는 항상 JSON 형식으로 제공됩니다. 자동화 및 후처리를 위해서는 -json 출력을 사용하는 것이 가장 편리한 옵션입니다.```console echo example.com | tlsx -json -silent | jq .

root@kitploit:~
I don't see any content provided after "INPUT:" — the chunk text appears to be missing, so there is nothing to translate. Please provide the chunk content.```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"
}

PDCP 대시보드 통합

tlsx는 스캔 결과를 ProjectDiscovery Cloud Platform(PDCP) 대시보드에 업로드하여 시각화 및 분석을 지원합니다.

실시간 결과 업로드

결과가 발견되는 즉시 자동으로 업로드되도록 대시보드 업로드를 활성화하세요:```console $ tlsx -u example.com -pd -json

root@kitploit:~
결과는 PDCP에 자동으로 업로드되며, 확인할 수 있는 대시보드 URL을 받게 됩니다.

#### 기존 파일 업로드

이전에 저장된 JSONL 출력 파일을 PDCP에 업로드하세요:```console
$ tlsx -pdu results.jsonl -tid your-team-id -aname "My Scan"

구성 옵션

  • -pd, --dashboard: PDCP 대시보드로 실시간 업로드 활성화
  • -pdu, --dashboard-upload <file>: 특정 JSONL 파일을 PDCP에 업로드
  • -auth <key>: PDCP API 키 (환경 변수 또는 자격 증명 처리기를 통해서도 설정 가능)
  • -tid, --team-id <id>: 업로드용 팀 ID 지정
  • -aid, --asset-id <id>: 기존 자산 ID에 업로드
  • -aname, --asset-name <name>: 자산 그룹의 사용자 지정 이름 설정

모든 옵션 사용 예시:```console $ tlsx -u example.com -pd -json -tid team123 -aname "Production Scan"

root@kitploit:~
## 구성

### 스캔 모드

tlsx는 TLS 연결을 위해 여러 모드를 제공합니다 -

- `auto` (실패 시 다른 모드로 자동 폴백) - **기본값**
- `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)**)

특정 모드/라이브러리에 대한 몇 가지 참고 사항은 [링크된 논의](https://github.com/projectdiscovery/tlsx/discussions/2)에서 강조되어 있습니다. `auto` 모드는 최대 적용 범위를 보장하고 이전 버전의 TLS를 실행하는 호스트를 스캔하기 위해 지원되며, 연결 오류 발생 시 `ztls` 및 `openssl` 모드를 사용하여 연결을 재시도합니다.

`ztls` 모드를 사용하여 오래된/구식 TLS 버전을 사용하는 웹사이트를 스캔하는 예시입니다.```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

openssl 연결 모드를 사용하려면 시스템에 openssl이 설치되어 있어야 합니다. 대부분의 최신 시스템에는 openssl이 사전 설치되어 있지만, 시스템에 없는 경우 수동으로 설치할 수 있습니다. openssl version 명령을 실행하여 openssl이 설치되어 있는지 확인할 수 있습니다. openssl이 설치되어 있다면 이 명령은 버전 번호를 표시합니다.

Pre-Handshake (조기 종료)

tlsx는 SSL 연결을 조기에 종료하는 것을 지원하여 더 빠른 스캔과 더 적은 연결 요청(TLS serverhello 및 인증서 데이터가 수집된 후 연결 끊기)을 가능하게 합니다.

자세한 내용은 @erbbysam이 작성한 Hunting-Certificates-And-Servers를 참조하십시오.

```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:~
> **참고**:

> **pre-handshake** 모드는 `ztls` (**zcrypto/tls**)를 활용하며, 이는 `ztls` 라이브러리가 `TLS v1.3`을 지원하지 않으므로 지원 범위가 `TLS v1.2`까지로 제한된다는 의미이기도 합니다.

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

### TLS 버전

**최소** 및 **최대** TLS 버전은 `-min-version` 및 `-max-version` 플래그를 사용하여 지정할 수 있으며, 기본적으로 이 값은 사용 중인 기본 라이브러리에 의해 설정됩니다.

TLS 버전에 허용되는 값은 아래와 같습니다.

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

다음은 `max-version`을 사용하여 이전 버전의 TLS, 즉 **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

사용자 지정 암호

지원되는 사용자 지정 암호는 -cipher-input / -ci 플래그를 사용하여 제공할 수 있으며, 각 모드에 대해 지원되는 암호 목록은 위키 페이지에서 확인할 수 있습니다.```console $ tlsx -u example.com -ci TLS_AES_256_GCM_SHA384 -cipher

root@kitploit:~
Please provide the Markdown content to translate.```console
$ tlsx -u example.com -ci cipher_list.txt -cipher

감사의 글

이 프로그램은 선택적으로 다음을 사용합니다:

  • zmap 팀의 zcrypto 라이브러리.
  • cloudflare 팀의 cfssl 라이브러리
  • ciphersuite 분류를 위한 ciphersuite.info의 암호화 데이터

tlsx는 projectdiscovery 팀이 ❤️로 만들었으며 MIT License 하에 배포됩니다.

Join Discord

인증서 투명성(CT) 로그 스트리밍

tlsx는 공개 인증서 투명성 생태계에서 새로 발급된 TLS 인증서를 지속적으로 스트리밍하는 fire-hose 모드로 작동하여 호스트 이름과 메타데이터를 거의 실시간으로 제공할 수 있습니다.

-ctl 스위치를 통해 CT 로그 모드를 활성화합니다(입력이 제공되지 않을 때 기본값):```bash tlsx -ctl -silent | jq .subject_an

root@kitploit:~
#### 시작 오프셋

이 도구는 다음 플래그로 제어되는 세 가지 상호 배타적인 시작 동작을 제공합니다:

| Flag | 동작 |
|------|-----------|
| _default_ | 지금 **시작** (시작 시 트리 크기) – 미래 인증서만 스트리밍됩니다 |
| `-cb, --ctl-beginning` | 모든 로그에 대해 인덱스 **0**부터 시작 (전체 기록 재생) |
| `-cti, --ctl-index <log>=<n>` | 사용자 지정 로그별 인덱스 (반복 가능). 지정된 로그 URL/ID에 대해 시작 인덱스를 _n_으로 설정합니다. 예: `--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

기본적으로 중복 항목은 대규모 inverse bloom filter를 사용하여 필터링됩니다. -v를 전달하면 상세 통계를 확인할 수 있습니다.

도구 다운로드

-pre-handshake 모드를 사용하는 예시: