Gobuster (디렉토리 및 서브도메인 열거)
Overview
Gobuster: Go 언어로 작성된 고속 디렉토리/파일 및 서브도메인 브루트포스 도구. 직관적인 명령어 구조와 빠른 속도가 특징.
- 지원 모드:
dir(디렉토리/파일),dns(서브도메인),vhost(가상 호스트),fuzz(파라미터)
1. Reconnaissance (스캐닝 모드)
dir 모드 (디렉토리 및 파일 스캔)
웹 서버의 숨겨진 경로나 파일을 식별
# 기본 스캔 (쓰레드 50)
gobuster dir -u http://<target>/ -w /usr/share/wordlists/dirb/common.txt -t 50
# 확장자 지정 (-x) 및 상태 코드 필터링 (-s)
gobuster dir -u http://<target>/ -w wordlist.txt -x php,txt,html,js -s "200,204,301,302,307"
# HTTPS 인증서 검증 무시 (-k) 및 리다이렉트 추적 (-r)
gobuster dir -u https://<target>/ -w wordlist.txt -k -r
# User-Agent 설정 (-a) 및 인증 추가 (-U, -P)
gobuster dir -u http://<target>/ -w wordlist.txt -a "Mozilla/5.0" -U admin -P password123
dns 모드 (서브도메인 열거)
DNS 쿼리를 통해 유효한 서브도메인 주소 도출
# 기본 DNS 스캔
gobuster dns -d <target_domain.com> -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
# 와일드카드(Wildcard) 레코드 필터링 적용 (-i)
gobuster dns -d <target_domain.com> -w wordlist.txt -i --wildcard
vhost 모드 (가상 호스트 발견)
DNS 서버에 등록되지 않은 내부 가상 호스트 식별
# 기본 VHost 열거 (Host 헤더 브루트포스)
gobuster vhost -u http://<target> -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -t 50
# 기본 도메인을 단어 뒤에 자동 결합 (--append-domain)
gobuster vhost -u http://<target_domain.com> -w wordlist.txt --append-domain
2. Exploitation (활용 옵션)
API 및 파라미터 퍼징 (fuzz 모드)
URL 파라미터 등을 대상으로 브루트포스 수행
gobuster fuzz -u "http://<target>/?FUZZ=value" -w wordlist.txt
유용한 공통 옵션 정리
-e, --expanded # 출력 시 전체 URL 표시 (http://.../path)
-q, --quiet # 배너 및 진행률 등 불필요한 메시지 생략 (파이프 전달 시 유용)
-o, --output # 결과를 파일로 저장
-b, --status-codes-blacklist # 제외할 상태 코드 (기본: 404)
--add-slash # 각 워드리스트 항목 끝에 '/'를 붙여서 디렉토리 여부 명확화 테스트
3. Advanced Techniques
거대 워드리스트 및 백업 파일 헌팅
큰 워드리스트와 자주 쓰이는 백업/로그 확장자를 결합하여 중요 정보 유출 탐색
gobuster dir -u http://<target>/ -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt -x bak,backup,old,zip,tar.gz,sql,log -t 100