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 검색은 로그인한 계정 기록이 남음 — 민감한 쿼리는 분리 계정.

참고