구글 해킹
정의
구글 해킹 (Google Hacking, Dorking)은 구글 검색 명령어와 기술을 사용하여 웹에 노출된 민감한 정보나 취약점을 발견하는 것이다.
세부적으로는 구글의 검색 엔진을 사용하여 조직 및 개인에 의해 의도치 않게 노출된 안전하지 않은 파일, DB 및 서버를 확인한다.
Google Hacking Database (GHDB)의 창시자인 Johnny Long에 의해 대중화된 이 기법은 1) 관통 테스트 (penetration testing), 2) 사이버보안, 3) 보안 결함을 식별하는 악성 활동에 사용된다.
GHDB (by Exploit-DB)는 사전에 생성된 Google dorks 중 엄선한 목록으로, 용도에 따라 아래와 같이 분류할 수 있다.
- 민감한 디렉터리 (Sensitive Directories)
- 노출된 신용 자격 (Exposed Credentials)
- 취약한 기기 (Vulnerable Devices)
GHDB를 참조로 사용하면 특정 취약점들을 찾는데 소요되는 시간을 절감하고 정확도를 향상시킬 수 있다.
키워드 종류 및 사용 방법
구글 해킹은 검색 명령어(search operators)를 사용한다. 아래는 가장 많이 사용되는 명령어와 그 목적이다.
1. filetype: <extension>
- 특정 파일 형식(e.g. PDF, XLS, SQL etc..)을 찾을 때 사용
- e.g. filetype: sql "password"
- "password"를 포함한 SQL 파일 탐색
2. site: <domain>
- 탐색 영역을 특정 도메인이나 웹사이트로 한정할 때 사용
- e.g. site: example.com
- 'example.com' 도메인 내 문서 탐색
3. intitle: <keyword>, inurl: <keyword>
- 웹페이지 제목 혹은 URL에 특정 단어가 포함된 페이지 탐색 시 사용
- e.g. intitle: "admin login"
- "admin login"을 제목으로 가진 페이지 탐색
4. intext: <content>
- 페이지 내용에 특정 단어가 포함된 페이지를 찾을 때 사용
- e.g. intext: "password"
- "password"를 본문에 담고 있는 페이지 탐색
구글 해킹 키워드 조합
여러 해킹 명령어를 조합하면 검색의 효과를 높일 수 있다.
- e.g. `site:example.com filetype:pdf "confidential"`
- 'example.com' 도메인 사이트에서 'confidential'을 포함하는 'pdf' 파일 탐색
취약점
위의 구글 해킹 키워드를 사용하여 취약점을 가진 웹사이트를 검색할 수 있다.
1. Directory Listing
- 비밀번호나 백업 파일 등 민감한 파일의 노출 여부를 확인할 수 있다.
- e.g. "index of /" "passwords.txt"
2. Log 및 Config 등 민감한 정보 노출
- 문서나 DB 덤프 등 민감한 정보를 포함한 클라우드 스토리지의 공개 여부를 확인할 수 있다.
- e.g
- `site:s3.amazonaws.com confidential` (Amazon S3 Buckets)
- `site:drive.google.com "password"` (Google Drive)
3. 관리자 페이지 노출
- 웹사이트의 관리자 페이지가 공개되었는지 확인하고 이에 대해 무차별 대입(Brute-Force) 공격을 시도할 수 있다.
- e.g. `intitle: "admin login"`
4. 취약점 Parameters
- 구글 해킹은 다음과 같은 웹 취약점 또한 발견할 수 있다.
- SQL Injection Points : `inurl: index.php?id=`
- XSS Entry Points : `inurl: search?q=<script>`
- Backup Files : `inurl: backup filetype:sql`
5. IoT 및 Device 취약점
- Default Credentials
- 여전히 기본 username과 password를 사용 중인 기기를 탐색한다.
- e.g. `intitle: "DVR Login" inurl:login`
- Unsecured Cameras
- e.g. `inurl: "view/view.shtml"
대처 방법
위와 같은 구글 해킹의 위험에 대처하기 위한 방법은 다음과 같다.
1. Directory Listing 비활성화
- 적절히 웹 서버를 설정하여 directory indexing을 방지한다.
2. 민감한 파일 공개 회피
- 중요한 정보, 파일이 공개 도메인에 호스팅되지 않도록 보장한다.
3. Robots.txt 파일 사용
- 웹사이트의 민감한 영역에 대한 검색 엔진의 crawling을 제한한다.
- 'robots.txt' 파일은 검색 엔진에게 사이트 및 웹 페이지를 수집할 수 있도록 허용하거나 제한하는 국제 권고안이다.
4. 관리자 페이지 보호
- 관리자 페이지에 대한 인증과 IP whitelist를 구축한다.
5. Error Messages Masking
- 내부의 세부사항을 노출하는 장황한 error log를 비활성화한다.
6. 정기적인 감사 수행
- Google Alerts 및 Dork scanner 같은 도구를 사용하여 asset 노출을 감시한다.
결론
구글 해킹은 노출된 취약점과 민감한 정보를 발굴할 수 있는 강력한 도구로, 윤리적으로 사용된다면 시스템을 보호하고 잘못된 환경설정을 인식하는 데 매우 유용하다.
검색 키워드를 숙달하고, 도구를 사용하여 잠재적 위험을 이해한다면 이를 오용할 일 없이 안전하게 Google Hacking의 잠재력을 온전히 이용할 수 있을 것이다.
참고 출처
'리팩토링 > 3. CERT' 카테고리의 다른 글
침해대응 & CERT 4주차. 사물인터넷과 Shodan (1) | 2025.01.07 |
---|---|
침해대응 & CERT 3주차. 구글 해킹 취약점 (1) | 2024.12.30 |
침해대응 & CERT 1주차. 침해 사고 대응 (CERT) (1) | 2024.12.10 |