
Sudomy는 버그 헌팅/침투 테스트를 위한 자동화된 정찰(recon)을 수행하여 서브도메인을 수집하고 도메인을 분석하는 서브도메인 열거 도구입니다.
Sudomy는 서브도메인을 수집하고 고급 자동화 정찰(프레임워크)을 수행하여 도메인을 분석하는 서브도메인 열거 도구입니다. 이 도구는 OSINT(오픈 소스 인텔리전스) 활동에도 사용할 수 있습니다.
능동적 방법
수동적 방법
좋은 타사 사이트/리소스를 평가하고 선택함으로써 열거 과정을 최적화할 수 있습니다. 더 적은 시간으로 더 많은 결과를 얻을 수 있습니다. Sudomy는 잘 선별된 22개의 타사 사이트에서 데이터를 수집할 수 있습니다:
https://censys.io
https://developer.shodan.io
https://dns.bufferover.run
https://index.commoncrawl.org
https://riddler.io
https://api.certspotter.com
https://api.hackertarget.com
https://api.threatminer.org
https://community.riskiq.com
https://crt.sh
https://dnsdumpster.com
https://docs.binaryedge.io
https://securitytrails.com
https://graph.facebook.com
https://otx.alienvault.com
https://rapiddns.io
https://spyse.com
https://urlscan.io
https://www.dnsdb.info
https://www.virustotal.com
https://threatcrowd.org
https://web.archive.org
sudomy가 작동하는 방식 또는 정찰 흐름: 최상의 인수를 실행하여 서브도메인을 수집하고 자동 정찰을 통해 분석하는 방법입니다.
root@maland: ./sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze -sS
Sudomy v1.1.8#dev의 정찰 워크플로우

정찰 파일 및 쥬시 데이터에 대한 상세 정보
------------------------------------------------------------------------------------------------------
- subdomain.txt -- 서브도메인 목록 < $DOMAIN (대상)
- httprobe_subdomain.txt -- 서브도메인 유효성 검사 < subdomain.txt
- webanalyzes.txt -- 기술 스캔 식별 < httprobe_subdomain.txt
- httpx_status_title.txt -- 제목+상태코드+길이 < httprobe_subdomain.txt
- dnsprobe_subdomain.txt -- 서브도메인 리졸브 < subdomain.txt
- Subdomain_Resolver.txt -- 서브도메인 리졸브 (대체) < subdomain.txt
- cf-ipresolv.txt -- Cloudflare 스캔 < ip_resolver.txt
- Live_hosts_pingsweep.txt -- 라이브 호스트 확인 < ip_resolver.txt
- ip_resolver.txt -- IP 리졸브 목록 < Subdomain_Resolver::dnsprobe
- ip_dbasn.txt -- ASN 번호 확인 < ip_resolver.txt
- vHost_subdomain.txt -- 가상 호스트 (IP별 그룹화) < Subdomain_Resolver.txt
- nmap_top_ports.txt -- 활성 포트 스캐닝 < cf-ipresolv.txt
- ip_dbport.txt -- 수동 포트 스캐닝 < cf-ipresolv.txt
------------------------------------------------------------------------------------------------------
- Passive_Collect_URL_Full.txt -- 전체 URL 크롤링 (WebArchive, CommonCrawl, UrlScanIO)
------------------------------------------------------------------------------------------------------
- ./screenshots/report-0.html -- 스크린샷 보고서 < httprobe_subdomain.txt
- ./screenshots/gowitness/gowitness.sqlite3 -- 데이터베이스 스크린샷 < httprobe_subdomain.txt
------------------------------------------------------------------------------------------------------
- ./interest/interesturi-allpath.out -- 관심 경로(/api,/git,등) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-doc.out -- 관심 문서 (doc,pdf,xls) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-otherfile.out -- 기타 파일 (.json,.env,등) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-js.out -- 모든 자바스크립트 파일(*.js) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-nodemodule.out -- /node_modules/ 폴더의 파일 < Passive_Collect_URL_Full.txt
- ./interest/interesturi-param-full.out -- 전체 매개변수 목록 < Passive_Collect_URL_Full.txt
- ./interest/interesturi-paramsuniq.out -- 고유 매개변수 목록 < Passive_Collect_URL_Full.txt
- 참고 : urlprobe 또는 httpx를 사용하여 쥬시/관심 URL/매개변수의 유효성을 검사하여 오탐을 방지할 수 있습니다.
------------------------------------------------------------------------------------------------------
- ./takeover/CNAME-resolv.txt -- CNAME 리졸버 < subdomain.txt
- ./takeover/TakeOver-Lookup.txt -- DNSLookup < CNAME-resolv.txt
- ./takeover/TakeOver-nxdomain.txt -- 기타 3rd 서비스 플랫폼 < TakeOver-Lookup.txt
- ./takeover/TakeOver.txt -- 취약점 확인 < CNAME-resolv.txt
------------------------------------------------------------------------------------------------------
- ./wordlist/wordlist-parameter.lst -- 매개변수 단어 목록 생성 < Passive_Collect_URL_Full.txt
- ./wordlist/wordlist-pathurl.lst -- 경로 단어 목록 생성 < Passive_Collect_URL_Full.txt
- 참고 : 이 단어 목록은 도메인 및 서브도메인 정보(경로, 파일, 쿼리 문자열 및 매개변수)를 기반으로 합니다.
------------------------------------------------------------------------------------------------------
Sudomy는 리소스(타사 사이트)를 사용할 때 리소스를 최소화합니다. 좋은 타사 사이트/리소스를 평가하고 선택함으로써 열거 과정을 최적화할 수 있습니다. 이 비교에 사용된 도메인은 tiket.com입니다.
다음은 Sublist3r v1.1.0, Subfinder v2.4.5 및 Sudomy v1.2.0의 수동 DNS 열거 테스트 결과입니다.
여기서 Subfinder는 상당히 많은 리소스를 활용하여 서브도메인을 수집하는 데 여전히 매우 빠른 것으로 분류됩니다. 특히 사용된 리소스가 최적화된 경우에는 더욱 그렇습니다(?).
컴파일 결과 및 영상은 여기에서 확인할 수 있습니다:
시간이 날 때, 아마도 미래에는 sudomy도 golang을 사용할 것입니다. 기여하고 싶다면 풀 리퀘스트를 자유롭게 보내주세요.
Sudomy는 현재 다음 도구들과 함께 확장됩니다. 설치 및 사용 방법에 대한 지침은 아래 링크되어 있습니다.
# 저장소 클론
git clone --recursive https://github.com/screetsec/Sudomy.git
$ python3 -m pip install -r requirements.txt
Sudomy를 실행하고 파싱하려면 jq 및 GNU grep이 필요합니다. jq 다운로드 및 설치 방법은 여기에서 확인할 수 있습니다.
# Linux
apt-get update
apt-get install jq nmap phantomjs npm chromium parallel
npm i -g wappalyzer wscat
# Mac
brew cask install phantomjs
brew install jq nmap npm parallel grep
npm i -g wappalyzer wscat
# 참고
최신 Google Chrome 또는 Chromium이 설치되어 있어야 합니다.
GNU grep 변경을 위해 rc 파일에 PATH를 설정하십시오.
# DockerHub에서 이미지 가져오기
docker pull screetsec/sudomy:v1.2.1-dev
# 출력 디렉토리 생성
mkdir output
# 이미지 실행 (사용자 정의 디렉토리에서 실행 가능하지만, 현재 디렉토리에 sudomy.api 설정 파일을 복사/다운로드해야 함)
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -v "${PWD}/sudomy.api:/usr/lib/sudomy/sudomy.api" -t --rm screetsec/sudomy:v1.1.9-dev [인수]
# 또는 이미지 실행 시 API 변수 정의
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -e "SHODAN_API=xxxx" -e "VIRUSTOTAL=xxxx" -t --rm screetsec/sudomy:v1.1.9-dev [인수]
타사 사이트(예: Shodan, Censys, SecurityTrails, Virustotal 및 BinaryEdge)에 쿼리하기 전에 API 키가 필요합니다.
# Shodan
# URL : http://developer.shodan.io
# 예시 :
# - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo"
SHODAN_API=""
# Censys
# URL : https://search.censys.io/register
CENSYS_API=""
CENSYS_SECRET=""
# Virustotal
# URL : https://www.virustotal.com/gui/
VIRUSTOTAL=""
# Binaryedge
# URL : https://app.binaryedge.io/login
BINARYEDGE=""
# SecurityTrails
# URL : https://securitytrails.com/
SECURITY_TRAILS=""
Slack 알림을 사용하기 전에 YOUR_WEBHOOK_URL이 필요합니다.
# Slack 알림 설정
# 웹후크 URL을 얻기 위한 설정/튜토리얼은 다음 사이트를 참조하십시오.
# - https://api.slack.com/messaging/webhooks
# 예시:
# - YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"
YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"
___ _ _ _
/ __|_ _ __| (_)(_)_ __ _ _
\__ \ || / _ / __ \ ' \ || |
|___/\_,_\__,_\____/_|_|_\_, |
|__/ v{1.2.1#dev} by @screetsec
Sud⍥my - 고속 서브도메인 열거 및 분석 도구
http://github.com/screetsec/sudomy
사용법: sud⍥my.sh [-h [--help]] [-s[--source]][-d[--domain=]]
예시: sud⍥my.sh -d example.com
sud⍥my.sh -s Shodan,VirusTotal -d example.com
최상의 인수:
sudomy -d domain.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze --slack -sS
선택적 인수:
-a, --all 모든 열거 실행 (nmap 및 gobuster 제외)
-b, --bruteforce Gobuster를 사용한 서브도메인 무차별 대입 (단어 목록: 모든 상위 SecList DNS)
-d, --domain 스캔할 웹사이트 도메인
-h, --help 이 도움말 메시지 표시
-o, --outfile 완료 시 출력 파일 지정
-s, --source 서브도메인 열거에 사용할 소스
-aI, --apps-identifier 웹사이트 기술 식별 (예: -aI webanalyze)
-dP, --db-port 타사로부터 포트 수집 (기본값=shodan)
-eP, --extract-params 엔진에서 URL 매개변수 수집
-tO, --takeover 서브도메인 탈취 취약점 스캐너
-wS, --websocket WebSocket 연결 확인
-cF, --cloudfare IP가 Cloudflare 소유인지 확인
-pS, --ping-sweep Ping Sweep 방법을 사용한 라이브 호스트 확인
-rS, --resolver 도메인 목록을 중복 없는 IP 목록으로 변환
-sC, --status-code 도메인 목록에서 상태 코드 및 응답 가져오기
-nT, --nmap-top 도메인 목록에서 nmap을 사용한 상위 포트 스캐닝
-sS, --screenshot 웹사이트 목록 스크린샷 (기본값: gowitness)
-nP, --no-passive 수동 서브도메인 열거 수행 안 함
-gW, --gwordlist 수집된 URL 리소스(수동)를 기반으로 단어 목록 생성
--httpx retryablehttp를 사용한 다중 프로버 수행
--dnsprobe 다중 DNS 쿼리(dnsprobe) 수행
--no-probe httprobe 수행 안 함
--html 보고서를 HTML 형식으로 출력
--graph 네트워크 그래프 시각화
모든 22개 소스를 사용하고 작동하는 http 또는 https 서버를 탐색(유효성 검사):
$ sudomy -d hackerone.com
하나 이상의 소스 사용:
$ sudomy -s shodan,dnsdumpster,webarchive -d hackerone.com
유효성 검사 없이 모든 소스 사용:
$ sudomy -d hackerone.com --no-probe
하나 이상의 플러그인 사용:
$ sudomy -pS -sC -sS -d hackerone.com
모든 플러그인 사용: 호스트 상태, http/https 상태 코드, 서브도메인 탈취 및 스크린샷 테스트.
Nmap, Gobuster, wappalyzer 및 wscat는 포함되지 않음.
$ sudomy -d hackerone.com --all
HTML 형식으로 보고서 생성
$ sudomy -d hackerone.com --html --all
HTML 보고서 샘플:
| 대시보드 | 보고서 |
|---|---|
![]() | ![]() |
서브도메인 및 가상 호스트 네트워크 그래프 시각화 생성
$ sudomy -d hackerone.com -rS --graph
그래프 시각화 샘플:
| nGraph |
|---|
![]() |
최상의 인수를 사용하여 서브도메인 수집, 자동 정찰 분석 및 Slack 알림 전송
./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph -aI webanalyze --slack -sS
Slack 알림 샘플:
| Slack |
|---|
![]() |
이 프로젝트의 모든 주요 변경 사항은 이 파일에 기록됩니다.