
본격적인 버그헌팅에 앞서 가장 먼저 해야 할 일은 향상된 타겟 정보 수집이다.
향상된 타겟 정보 수집이란 말 그대로 취약점을 찾을 대상(타겟)에 대한 유의미한 데이터를 최대한 모으고 파악하는 과정을 의미한다.
정보 수집을 철저히 해야 하는 가장 큰 이유는 바로 가성비 때문이다.
한정된 리소스와 시간 안에서 효과적으로 취약점을 찾아내기 위해서는 타겟의 구조와 특징에 대한 광범위한 이해가 반드시 선행되어야 한다.
정보 수집의 기본, 수동 탐색
이러한 정보 수집의 가장 기본이 되는 단계는 수동 탐색이다. 타겟 웹사이트에 직접 접속하여 로그인 페이지부터 각종 메뉴까지 하나하나 직접 눌러보며 전체적인 구조를 파악한다. 이 과정을 통해 사이트가 어떻게 동작하는지 관찰하고, 체크리스트를 작성하여 어떤 부분에서 공격이 가능할지 그 가능성을 체계적으로 정리해야 한다.
구글 검색 연산자 해킹
수동 탐색과 더불어 매우 강력한 정보 수집 수단이 바로 구글 해킹이다.
평범해 보이는 검색 엔진인 구글도 특정 연산자(Operator)들과 결합하면 타겟의 숨겨진 정보를 찾아내는 강력한 도구로 변한다.
실습에 활용하기 좋은 주요 구글 검색 연산자들은 다음과 같다.





이 외에도 검색어를 조합할 때 사용하는 유용한 특수 기호들이 있다.


실전 구글 해킹 활용과 GHDB
앞서 살펴본 기본 구글 검색 연산자들을 단독으로 쓰기보다는, 서로 조합했을 때 타겟의 숨겨진 취약점을 더욱 정교하게 파헤칠 수 있다. 실제 버그헌팅에서 타겟을 분석할 때 자주 쓰이는 유용한 검색 패턴들을 적용해 보았다.
- 특정 도메인의 서브도메인 및 전체 페이지 검색: site:*.targetSystem.com
- 타겟 도메인 내 특정 경로(예: 특정 앱이나 대시보드) 탐색: site:*.targetSystem.com inurl:app/kibana
- 특정 기업의 노출된 Amazon S3 버킷 찾기: site:s3.amazonaws.com TargetName
- 타겟 사이트의 텍스트 파일 중 비밀번호 노출 여부 확인: site:*.targetSystem.com ext:txt password (이때 ext는 확장자를 지정하는 연산자로 filetype과 유사한 역할을 한다.)
- LFI(Local File Inclusion) 취약점 사이트 검색: inurl:/etc/passwd root:x:0:0:root:/root:/bin/bash
- 디렉토리 리스팅(Directory Listing) 취약점 검색: intitle:index of
이러한 검색어 조합(Dork)을 매번 백지상태에서 직접 고민하기 어렵다면 GHDB(Google Hacking Database)를 적극적으로 활용하는 것이 좋다.
https://www.exploit-db.com/google-hacking-database
OffSec’s Exploit Database Archive
www.exploit-db.com
Exploit-DB에서 제공하는 이 데이터베이스에는 로그인 포털, 중요 정보 유출 파일, 취약한 서버 등 목적과 카테고리에 따라 수많은 구글 검색 쿼리들이 정리되어 있어 실전에서 매우 유용한 참고서가 된다.

스파이더링(Spidering)을 통한 자동화된 정보 수집
직접 클릭해보는 수동 탐색과 구글 해킹만으로는 규모가 큰 웹사이트의 모든 페이지를 찾아내기 벅찰 때가 많다. 이때 수동 탐색의 한계를 보완해 주는 것이 바로 스파이더링(Spidering), 즉 웹 크롤링(Web Crawling)이다. 스파이더링은 타겟 사이트에서 접근 가능한 모든 페이지와 경로를 자동으로 식별해 내는 과정이다.
스파이더링을 위해 주로 사용하는 대표적인 툴이 ZAP (OWASP Zed Attack Proxy)이다.
The ZAP Homepage
Welcome to ZAP!
www.zaproxy.org
- ZAP을 설치하고 실행한 뒤, 타겟 URL을 시작점(Starting Point)으로 설정하여 스파이더(Spider) 기능을 작동시킨다.
- 툴이 사이트를 자동으로 돌아다니며 Seed URL을 바탕으로 연결된 수많은 URL과 노드(Node)들을 찾아내어 리스트 형태로 정리해 준다.
- 이 과정을 통해 사용자의 눈에는 보이지 않던 숨겨진 디렉토리나 관리자 페이지, API 엔드포인트 등을 가성비 있게 수집할 수 있다.
결국 버그헌팅의 첫 단추인 정보 수집은 수동 탐색의 꼼꼼함, 구글 해킹의 정교함, 그리고 ZAP 같은 도구를 활용한 스파이더링의 효율성이 합쳐질 때 가장 강력한 시너지를 낸다. 앞으로의 타겟 분석에서는 이 세 가지 무기를 적절히 병행하여 공격 표면을 최대한 넓히고 취약점의 단서를 놓치지 않도록 해야겠다.
클라우드 저장소 노출 탐색: AWS S3 Bucket
정보 수집 단계에서 웹사이트 자체만 바라보는 것은 시야가 좁은 행동이다. 웹 서비스를 운영하는 기업들은 데이터를 따로 구축하기보다 AWS의 온라인 저장 공간 서비스인 S3(Simple Storage Service) 버킷을 이용하거나 이를 백업용 서버로 활용하는 경우가 매우 많다. 만약 이 S3 버킷의 접근 권한(ACL) 설정이 잘못되어 있다면, 숨겨진 서버 정보나 로그, 크리덴셜, 소스코드 등 치명적이고 유용한 정보들이 외부로 그대로 노출된다.
이러한 취약한 버킷을 찾기 위해 앞서 배운 구글 검색(Dorking)을 응용할 수 있다.
- site:s3.amazonaws.com [Target]
- site:amazonaws.com [Target]
구글 검색 외에도 오픈된 버킷을 전문적으로 찾아주는 도구들이 존재한다. GrayhatWarfare 웹사이트를 이용해 퍼블릭 상태로 방치된 버킷을 검색하거나, 인증서 투명성 로그(Certificate Transparency logs)를 모니터링하여 지속적으로 S3 버킷을 찾아내는 Bucket Stream 같은 툴을 활용하면 더 넓은 범위의 타겟을 효율적으로 탐색할 수 있다.
소스코드 저장소 정찰: Github Recon
이번 강의 내용 중 가장 흥미로웠던 부분은 깃허브(Github) 정찰이었다. 타겟 회사의 이름이나 프로젝트명, 혹은 소속 개발자의 닉네임을 조사하여 깃허브 레포지토리를 뒤지다 보면, 개발자의 실수로 하드코딩된 민감한 정보들을 심심치 않게 발견할 수 있다고 한다.
깃허브 정찰 시 중점적으로 파고들어야 할 포인트는 다음과 같다.
- Issues / Code Commits: 프로젝트의 커밋 내역과 이슈 게시판 현황을 조사한다.
- Code History / Blame: 코드의 수정 내역(History)과 Blame 기능을 추적하여, 현재는 삭제되었으나 과거에 노출되었던 정보를 확인한다.
- 검색 키워드: key, secret, password, cred 등을 검색하여 API 키, 암호화 키, DB 비밀번호 등을 찾는다. (참고로 유출된 키의 유효성을 검증하고 활용법을 찾을 때는 keyhacks 레포지토리가 유용하다.)
수많은 코드 더미 속에서 수동 검색이 번거롭다면 Gitrob이나 TruffleHog 같은 자동화 오픈소스 툴을 사용하는 것이 좋다.
이 툴들은 레포지토리의 커밋 히스토리를 깊게 파고들어 민감한 파일이나 유출된 크리덴셜(비밀번호, 토큰 등)을 자동으로 식별해 주어 시간 대비 효율이 매우 뛰어나다.
michenriksen/gitrob: Reconnaissance tool for GitHub organizations
GitHub - michenriksen/gitrob: Reconnaissance tool for GitHub organizations
Reconnaissance tool for GitHub organizations. Contribute to michenriksen/gitrob development by creating an account on GitHub.
github.com
trufflesecurity/trufflehog: Find, verify, and analyze leaked credentials
GitHub - trufflesecurity/trufflehog: Find, verify, and analyze leaked credentials
Find, verify, and analyze leaked credentials. Contribute to trufflesecurity/trufflehog development by creating an account on GitHub.
github.com
공격 표면 확장을 위한 도메인 조사 (Domain Reconnaissance)
마지막으로 타겟 도메인의 하위 도메인(Subdomain)을 조사하는 방법을 다루었다. 메인 도메인(예: target.com) 외에도 개발용(dev.target.com)이나 관리자용(admin.target.com) 하위 도메인에 접근할 수 있다면 공격할 수 있는 지점은 기하급수적으로 늘어난다.

- 인증서 SAN 조사 (crt.sh): 보통 기업들은 1개의 SSL/TLS 인증서에 여러 도메인을 한 번에 등록하는 SAN(Subject Alternative Name) 방식을 많이 쓴다. crt.sh 사이트에서 타겟을 검색하면, 동일한 인증서로 묶여 있는 숨겨진 하위 도메인들을 단번에 파악할 수 있다.
- 도메인 열거 툴 (amass): 서브도메인 열거(Subdomain Enumeration)에 특화된 툴인 amass를 활용한다.
터미널에서 amass enum -d target.com 명령어를 실행하면, 타겟과 연관된 수많은 서브도메인과 그에 매칭되는 IP 주소들을 샅샅이 수집해 준다.
오늘 강의를 통해 타겟을 분석하는 방법이 단순히 눈에 보이는 웹사이트 구조 파악에 그치지 않고, 클라우드 스토리지, 소스코드 저장소, 도메인 인프라까지 다방면으로 뻗어 있다는 것을 확실히 깨달았다. 배운 이론론과 툴들을 실제 타겟에 하나씩 적용해 보며 나만의 빈틈없는 정보 수집 파이프라인을 구축해 보아야겠다.
마무리
평소 일상적으로 사용하던 구글 검색이 버그헌팅의 초기 단계에서 이토록 정교하게 쓰일 수 있다는 점이 새삼 인상적이다. 단순히 해킹 툴을 돌리는 것이 아니라, 수동 탐색과 구글 검색 연산자를 통해 논리적으로 공격 표면을 좁혀가는 과정이야말로 해킹의 기본임을 다시 한번 상기하게 된다. 앞으로의 실습 과제에서는 오늘 정리한 정보 수집 기법들을 적극적으로 조합하여 타겟의 취약점을 파헤쳐 볼 것이다.
'Security > Basic' 카테고리의 다른 글
| [버그헌팅과정 초급, CVD·VDP 시범사업] 취약점 공개 정책 (VDP) (0) | 2026.06.14 |
|---|---|
| [OSCP] 명령어 - 정보 수집 단계 (1) | 2023.04.21 |
| [OSCP] 명령어 - 기본 (0) | 2023.04.21 |
| [OSCP] Swaks - 스와크 (2) | 2023.04.21 |
| [OSCP] CyberChef (암호화, 인코딩, 압축 및 데이터 분석을 위한 웹 앱) (0) | 2023.04.21 |