개요
- TLSX 툴을 조사한다.
- 이 툴은 IP주소를 지정해주면 해당 주소의 TLS증명서 정보를 추출해주는 툴인 것 같다.
깃허브 페이지에서는 다음과 같이 소개하고 있다.
TLSX is a tls data gathering and analysis toolkit.
설치
- 설치에는
Go 1.21
가 필요하다. - 시간이 좀 걸린다.
go install github.com/projectdiscovery/tlsx/cmd/tlsx@latest
설치시 에러
다음과 같은 에러가 발생했다. GO버전이 1.18.6
으로, 툴에서 요구하는 버전보다 오래된 버전인 것이 원인이었다.
package crypto/ecdh is not in GOROOT (/usr/lib/golang/src/crypto/ecdh)
여기를 참고해서 GO를 재설치한다.
다음 커맨드를 사용하였다.
sudo su
cd
wget https://go.dev/dl/go1.21.6.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.6.linux-amd64.tar.gz
설치 후에는 GO경로를 등록한다.
.bash_profile에 go경로 등록
$PATH:/usr/local/go/bin:
Go 버전 확인
go version
go version go1.21.6 linux/amd64
재설치 및 PATH 등록
go install github.com/projectdiscovery/tlsx/cmd/tlsx@latest
tlsx 패키지는 go env GOPATH
값의 /bin 디렉토리에 설치된다. 이 경로도 PATH에 등록되어 있는지 확인한다. 등록되어 있지 않으면 추가한다.
사용법
tlsx -h
샘플: SAN/CN Probe
IP 대역을 주고 도메인을 뽑아내는 사용법이다.
echo 173.0.84.0/24 | tlsx -san -cn
샘플: 서브도메인 및 웹 서비스 호스트 찾기
dnsx
와 결합하면 서브도메인까지 찾을 수 있다.- 그리고 그 결과를
httpx
와 결합하면 실제로 동작중인 호스트를 찾을 수 있다.
echo 173.0.84.0/24 | tlsx -san -cn -silent -resp-only | dnsx -silent | httpx
샘플: TLS설정 미스 찾기
- Expired / Self Signed / Mismatched / Revoked / Untrusted Certificate
- 만료되거나 자기서명증명서이거나 도메인명이 틀리거나 폐지되었거나 신뢰하는 CA에서 발행하지 않은 증명서를 찾아준다.
tlsx -l hosts.txt -expired -self-signed -mismatched -revoked -untrusted
샘플: JSON 출력
-json
옵션을 줘서 JSON형식으로 출력할 수 있다.
echo example.com | tlsx -json -silent | jq .
참고
- https://github.com/projectdiscovery/tlsx?tab=readme-ov-file
- https://github.com/actions/setup-go/issues/27