
Bash 기반 수동 정찰 + 공격 표면 매핑 스크립트로, 공용 API와 기본 Linux 도구(curl, dig, openssl, nmap, python3)만 사용합니다.
_ _ _ _ _ _______
| \ | | | | | |/ / ____|
| \| | | | | ' /| _|
| |\ | |_| | . \| |___
|_| \_|\___/|_|\_\_____|
N U K E // recon & attack surface mapper
-----------------------------------------
공용 API + 기본 Linux 도구(curl, dig, openssl, nmap, python3)만 사용하는 Bash 기반 수동 정찰 + 공격 표면 매핑 스크립트.
모든 출력은 단일 .txt 파일로 저장됨: nuke_<domain>.txt.
subfinder, ffuf, gobuster, subjs, getJS, jshunter, js_snitch에 대한 의존성 없음.
| # | 모듈 | 소스 / 기법 |
|---|---|---|
| 1 | CT를 통한 서브도메인 | crt.sh |
| 2 | 대체 CT를 통한 서브도메인 | crt.name |
| 3 | 서브도메인 (선택 사항, 키 필요) | SecurityTrails API |
| 4 | 서브도메인 + URL + IP | OTX AlienVault |
| 5 | 도메인 + IP + ASN/서버 | urlscan.io |
| 6 | 서브도메인 + 형제 도메인 + IP (키 필요) | VirusTotal v2 |
| 7 | 통합 서브도메인 | 모든 소스 통합 + 중복 제거 |
| 8 | DNS (TXT/SPF, A, AAAA, NS, MX, SOA + AXFR) | dns.google (DoH) + dig/host — dnsrecon -d와 동등 |
| 9 | WHOIS | rdap.org를 통한 RDAP |
| 10 | IP / 역방향 DNS / RDAP-IP / HTTP 상태 | dns.google PTR + rdap.org/ip + curl -I |
| 11 | 파비콘 해시 (Shodan 헌팅) + IP SSL 검증 | 로컬 Shodan 표준 murmur3 (http.favicon.hash) + openssl + nmap --script ssl-cert |
| 12 | JS 파일 + 추출된 엔드포인트 | <script src> 파싱 + 경로/URL 정규식 (subjs/getJS/jshunter 대체) |
| 13 | 과거 URL | Wayback Machine CDX |
| 14 | 오리진 IP 탐색 (CDN/WAF 우회) | DNS + OTX + urlscan + VT + SPF + Shodan 상관 분석, RDAP org + Host: 헤더 테스트로 필터링 |
| 15 | 내장 디렉터리 스캔 | 고신호 선별 워드리스트, 병렬 처리 (ffuf/gobuster 불필요) |
주요 기능:
pip install 불필요), 바로 사용 가능한 dork 포함: http.favicon.hash:X.ip4:/include:/a/mx) — 인프라 / 오리진 IP 유출.?api=, admin, token, .bak, .sql, .env, .git)..git/HEAD, .env, backup.zip, phpinfo.php, actuator/env, swagger/, graphql, jenkins/ 등.bash, curl, grep, sed, awk, sort, trdig 또는 host → AXFR용python3 → 파비콘 murmur3 해시용 (Shodan 표준)nmap → nmap --script ssl-cert -p 443 <IP>용openssl → 인증서 CN/SAN 검사용Kali, Ubuntu, Debian, WSL2에서 작동.
git clone https://github.com/AnkhCorp/Nuke.sh.git
cd Nuke.sh
chmod +x nuke.sh
# 기본 (100% 무료, 키 불필요)
bash nuke.sh example.com
# 키 사용 (인수로 전달)
bash nuke.sh example.com SECURITYTRAILS_KEY VIRUSTOTAL_KEY
# 환경 변수로 키 전달 (권장 — 키를 절대 커밋하지 마세요)
export SECURITYTRAILS_API_KEY="your_key"
export VT_APIKEY="your_key"
export SHODAN_API_KEY="your_key" # 선택 사항
export ZOOMEYE_KEY="your_key" # 선택 사항
bash nuke.sh example.com
지원되는 환경 변수:
| 변수 | 필수 여부 | 발급처 |
|---|---|---|
SECURITYTRAILS_API_KEY | 아니오 | https://securitytrails.com/app/signup |
VT_APIKEY | 아니오 | https://www.virustotal.com/gui/my-apikey |
SHODAN_API_KEY | 아니오 | https://account.shodan.io |
ZOOMEYE_KEY | 아니오 | https://www.zoomeye.hk |
URLSCAN_SIZE | 아니오 (기본값 1000) | 예: 최대치로 설정하려면 export URLSCAN_SIZE=10000 |
출력:
nuke_example.com.txt
===================================================================
== 7. CONSOLIDATED SUBDOMAINS (all sources)
===================================================================
crt.sh=45 | crt.name=38 | securitytrails=52 | otx=20 | urlscan=15 | virustotal=30
[UNIQUE total]: https://raw.githubusercontent.com/ankhcorp/nuke.sh/main/87
admin.example.com
api.example.com
...
===================================================================
== 14. ORIGIN IP DISCOVERY (consolidated)
===================================================================
[All candidate IPs (current DNS + OTX + urlscan + VT + SPF + Shodan)]:
https://raw.githubusercontent.com/ankhcorp/nuke.sh/main/1.2.3.4
5.6.7.8
...
IP: 1.2.3.4 | RDAP_ORG: CLOUDFLARENET
IP: 5.6.7.8 | RDAP_ORG: LOCAWEB
# Shodan — certificate
shodan search 'Ssl.cert.subject.CN:"example.com" 200 --fields ip_str'
# Shodan — favicon
shodan search 'http.favicon.hash:123456789'
# ZoomEye
ssl:"example.com" # at https://www.zoomeye.hk/
# Manual
https://crt.name/v1/search?apex=example.com
https://favicon-hash.kmsec.uk/
https://viewdns.info/iphistory/?domain=example.com
https://mxtoolbox.com/SuperTool.aspx
https://urlscan.io/search/#domain:example.com
오리진 IP 후보 수동 검증:
curl -sk -H 'Host: example.com' https://<CANDIDATE_IP>/ | head -n 20
echo | openssl s_client -connect <CANDIDATE_IP>:443 -servername example.com 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName
nmap --script ssl-cert -p 443 <CANDIDATE_IP>
인증서가 CN/SAN=example.com으로 응답하거나 (또는 title/Server가 사이트와 일치하면) 그것이 실제 IP임.
| 도구 | 대체 이유 |
|---|---|
subfinder | crt.sh + crt.name + OTX + urlscan + VT + SecurityTrails로 대체 (모두 API 경유, 설치 불필요) |
webanalyze | 신뢰할 수 있는 기술 탐지에는 유료 API(Wappalyzer/BuiltWith)가 필요 — 범위 밖 |
subjs / getJS | 내장 <script src> 추출로 대체 (섹션 12) |
jshunter | 내장 엔드포인트 정규식으로 대체 (섹션 12) |
js_snitch | 공용 API로 대체 불가 |
dnsrecon -d | 섹션 8에서 동등 기능 제공 (DoH + dig를 통한 NS/MX/SOA/AXFR) |
httpx-toolkit | 섹션 10에서 부분 동등 기능 제공 (호스트별 상태/서버) |
ffuf / gobuster | 선별 워드리스트 + xargs -P를 사용한 내장 디렉터리 스캔 (섹션 15) — 전체 퍼징에는 SecLists 사용: ffuf -u https://TARGET/FUZZ -w raft-medium-directories.txt |
권한이 있는 대상(본인 자산, 범위 내 버그바운티 프로그램, 계약된 모의 침투 테스트)에만 사용하세요.
작성자는 오용에 대해 책임지지 않습니다.
MIT — 자유롭게 사용, 수정, 공유 가능.
PR을 환영합니다! 로드맵 아이디어:
--only-ips / --only-subs 플래그amass / anubis 통합