
HTTPS 사이트의 SSL 인증서에서 서브도메인을 추출합니다.
GSAN은 HTTPS 서버에서 직접 SSL 인증서에 포함된 주체 대체 이름(Subject Alternative Names, SAN)을 추출할 수 있는 도구로, DNS 이름(서브도메인)이나 가상 서버를 제공할 수 있습니다.
이는 인증서 투명성 로그에 의존하지 않고 서버에 직접 연결하여 인증서에서 SAN을 추출하므로, 내부 서버나 자체 서명 인증서를 분석할 때 특히 유용합니다.
pip(또는 pipx - 권장)를 사용하여 시스템에 많은 종속성이 섞이는 것을 방지하세요.
$ pipx install --user gsan
Docker를 사용하여 설치하고 실행할 수도 있습니다.
$ docker run --rm -i francc3sco/gsan <DOMAIN>
기본 사용법은 도구에 HTTPS 서버의 도메인을 전달하면 인증서에서 발견된 서브도메인 목록을 반환합니다.
$ gsan microsoft.com
microsoft.com [126]:
- microsoft.com
- successionplanning.microsoft.com
- explore-security.microsoft.com
...
- wwwbeta.microsoft.com
- gigjam.microsoft.com
- mspartnerira.microsoft.com
...
또는 xargs 명령을 사용하여 스캔할 도메인 목록이 포함된 텍스트 파일을 전달할 수 있습니다.
$ cat domains.txt | xargs gsan
google.com [93]:
- google.fr
...
- google.com.au
amazon.com [37]:
- uedata.amazon.com
...
- origin-www.amazon.com.au
youtube.com [93]:
- google.fr
...
- google.com.au
도커화된 버전을 사용하는 경우 다음과 같이 동일한 작업을 수행할 수 있습니다:
$ cat domains.txt | xargs docker run --rm -i francc3sco/gsan
IP|DOMAIN:PORT 형식을 준수하는 한, gsan을 shodan과 같은 다른 도구와 결합하여 도메인 또는 IP 주소 목록에서 발견된 SAN 목록을 가져올 수 있습니다.
$ shodan search --fields ip_str,port --separator : --limit 100 https | cut -d : -f 1,2 | xargs gsan --timeout 1
207.21.195.58 [1]:
- orielstat.com
162.159.135.42 [4]:
- temp927.kinsta.cloud
- temp312.kinsta.cloud
34.230.178.151 [2]:
- procareltc.com
- clarest.com
20.62.53.137 [1]:
- budget.lis.virginia.gov
199.60.103.228 [3]:
- hscoscdn40.net
- sites-proxy.hscoscdn40.net
...
또한 --output 플래그를 사용하여 파일로 출력할 수 있으며, 이를 나중에 Nmap과 같은 다른 도구에 전달하는 데 유용합니다.
$ gsan microsoft.com --output microsoft.txt | nmap -iL microsoft.txt
또는 대규모 도메인 목록이 있는 경우:
$ cat domains.txt | xargs gsan --output domains.txt | nmap -iL domains.txt
또는 혼돈을 원한다면:
$ shodan search --fields ip_str,port --separator : --limit 1000 has_ipv6:false https | \
cut -d : -f 1,2 | \
xargs gsan --timeout 1 --output sans.txt && \
sudo nmap -sS -F -vvv -iL sans.txt -oX import_to_metasploit.xml