ATT&CK: T1593.002 Search Engines, T1596 Search Open Technical Databases · Reconnaissance (TA0043)
조직이 실수로 공개한 파일, 삭제했다고 믿는 과거 URL, 폐기된 서브도메인에 남아있는 엔드포인트를 찾는 작업. 전부 공개된 아카이브를 쿼리하는 것이라 대상에 트래픽 X.
1. Google dorking — 연산자 요약
| 연산자 | 의미 |
|---|---|
site: |
특정 도메인/서브도메인으로 제한 |
inurl: |
URL에 특정 문자열 포함 |
intitle: |
페이지 타이틀 매칭 |
intext: |
본문 매칭 |
filetype: 또는 ext: |
특정 확장자 |
-term |
제외 |
"..." |
정확한 구문 |
* |
와일드카드 |
2. 자주 쓰는 쿼리 패턴
2.1 공개된 설정/백업 파일
site:example.com ext:env OR ext:bak OR ext:old OR ext:sql
site:example.com inurl:config intext:password
site:example.com intitle:"index of" "parent directory"
2.2 노출된 관리 페이지
site:example.com inurl:admin
site:example.com intitle:"login" inurl:/admin
site:example.com "swagger" OR "openapi"
2.3 민감 데이터 노출
site:example.com filetype:xlsx intext:ssn
site:*.example.com "BEGIN RSA PRIVATE KEY"
2.4 특정 CMS/제품
site:example.com inurl:"/wp-content/" intitle:"Vulnerable"
site:example.com intitle:"Grafana" inurl:/d/
3. Google Hacking Database (GHDB)
Exploit-DB가 관리하는 공개 dork 데이터베이스:
https://www.exploit-db.com/google-hacking-database
카테고리별로 수천 개의 검증된 dork. 자동 조합용 리스트로 자주 쓰임.
4. Wayback Machine — 삭제된 과거 URL 복원
4.1 수동 조회
https://web.archive.org/web/*/example.com/*
페이지가 날아갔어도 아카이브된 스냅샷이 남아있을 수 있음.
4.2 waybackurls — CLI 자동 수집
go install github.com/tomnomnom/waybackurls@latest
echo example.com | waybackurls | tee all-urls.txt
Wayback Machine에서 수집한 모든 URL 출력. 결과에 흥미로운 패턴:
- 과거 노출된
.env,.git,.DS_Store참조 URL - 삭제된 API 엔드포인트 (서버에는 아직 라우트 존재할 수 있음)
- 과거 서브도메인 조합
4.3 gau — 더 많은 소스
go install github.com/lc/gau/v2/cmd/gau@latest
echo example.com | gau --threads 5 --subs > all-urls.txt
Wayback + CommonCrawl + Alien Vault OTX + URLScan을 통합 질의 → waybackurls 단독보다 결과 2~5배.
4.4 결과 필터링
# 흥미로운 확장자만
grep -E '\.(env|bak|old|sql|zip|tar\.gz|conf|yaml|yml|json)$' all-urls.txt
# 쿼리 파라미터 있는 URL만 (SSTI/SQLi 테스트 입력)
grep '?' all-urls.txt | sort -u
# 특정 패스
grep -E '/(admin|api|internal|debug)/' all-urls.txt
5. 체인 패턴
# 1) 서브도메인 수집 (passive)
subfinder -d example.com -silent > subs.txt
# 2) 각 서브도메인의 과거 URL
cat subs.txt | gau --subs | sort -u > urls.txt
# 3) 현재 live인 것만 확인
cat urls.txt | httpx -silent -mc 200,301,302,401,403 > live.txt
# 4) 흥미로운 응답 코드 (401/403) → 인증 필요하지만 존재
grep -E ' (401|403) ' live.txt
6. GitHub dorking
같은 패턴을 GitHub 검색에:
# 조직 공개 저장소
org:example-corp "api_key"
org:example-corp "password" filename:.env
# 이메일 패턴 기반
"@example.com" "AWS_SECRET_ACCESS_KEY"
자동화: gitleaks 또는 trufflehog을 공개된 저장소에 돌려 자격 노출 탐색.
7. 블루팀 관점
- 자기 조직 자산을 먼저 이 쿼리들로 검증 (self-dorking).
robots.txt/security.txt활용으로 의도치 않은 노출 체크.- Wayback에서 과거 노출을 삭제 요청 가능 (지원하지 않는 경우 많음) — 애초에 노출 안 하는 게 유일한 완화.
8. OPSEC
- Google은 자동 쿼리를 금지. 자동화하려면 Google Programmable Search Engine (CSE) API, 또는 Bing/DuckDuckGo로 분산.
- Wayback은 API가 공개되어 있어 쿼리 제한 느슨.
- GitHub 검색은 로그인한 계정 기록이 남음 — 민감한 쿼리는 분리 계정.
참고
- Google Hacking Database
- tomnomnom/waybackurls
- lc/gau
- MITRE ATT&CK — T1593