1. Google Dorking
1) Google Dorking이란
- Google Dorking은 일반적인 검색이 아니라, 검색 연산자(operator) 를 활용하여 검색엔진에 인덱싱된 정보 중에서 원하는 조건의 페이지, 문서, 디렉터리, 에러 메시지, 설정 화면, 노출 파일 등을 정밀하게 찾는 기법이다.
2) Google Dorking을 사용하는 이유
1) 관리자가 직접 숨겼다고 생각하는 페이지라도, 검색엔진이 한 번 수집해 갔다면 검색 결과에 남아 있을 수 있다.
- 예를 들어 테스트 페이지, 임시 업로드 파일, 문서 자료, 캐시된 페이지, 오래된 경로, 디렉토리 목록 페이지 등이 검색 결과에 드러날 수 있다.
2) 직접 사이트를 전부 크롤링하려면 시간이 많이 걸리지만, 검색엔진은 이미 방대한 페이지를 분류해 두었기 때문에 원하는 조건으로 훨씬 빠르게 후보를 좁힐 수 있다.
3) Google Dorking으로 무언가가 검색된다는 것은 단순히 “페이지가 존재한다”를 넘어 외부 검색엔진이 해당 리소스를 인지하고 있다는 뜻이다.
- 즉 robots.txt 정책이 미흡한지, 민감 문서가 공개 저장소/웹 경로에 있는지, 관리 화면이 공개 검색에 걸리는지, 개발/스테이징 흔적이 남아있는 지와 같은 판단이 가능하다.
3) 주의사항
3-1) 검색 결과는 현재 상태와 다를 수 있음
- Google 결과는 실시간 서버 상태와 다를 수 있다.
예를들어 이미 삭제된 페이지거나 캐시만 남아 있거나, 접근하면 403/404가 나오거나 예전 버전 정보일 수 있다.
3-2) 검색엔진마다 지원 연산자가 다름
- 어떤 엔진에서는 filetype:을 잘 지원하고 다른 엔진에서는 inurl:에 대한 정확도가 다르고 또 다른 엔진에서는 쿼리 최적화 과정에서 일부 조건이 약해진다.
4) 핵심 검색 연산자 정리
4-1) site:
- 특정 사이트 또는 도메인으로 검색 범위를 제한 할 때 사용
- ex: site:example.com, site:sub.example.com
- example.com 도메인에 속한 결과만 조회한다.
- 가장 기본이 되는 연산자이다.
- 해당 연산자의 경우 특정 조직의 인덱싱 자산 파악 및 서브도메인별 노출 상태 확인에 사용된다.
4-2) intitle:
- 페이지 title에 특정 단어가 포함된 결과를 찾는다.
- ex: site:example.com intitle:login, site:example.com intitle:"index of"
- 이를 이용해 로그인 페이지, 관리자 페이지, 디렉터리 listing 페이지, 에러 페이지 등을 찾을 수 있다.
4-3) inurl:
- URL 경로에 특정 문자열이 포함된 결과를 찾는다.
- ex: site:example.com inurl:admin, site:example.com inurl:login, site:example.com inurl:backup
- 이를 이용해 /admin, /manage, /old, /test, /dev, /backup 같은 경로를 탐색할 수 있다.
4-4) filetype:
- 특정 파일 형식만 검색한다.
- ex: site:example.com filetype:pdf, site:example.com filetype:xlsx, site:example.com filetype:sql
- 이를 이용해, 문서 노출, 보고서, 데이터 덤프 흔적, 백업 파일 흔적 등을 탐색한다.
4-5) "문자열"
- 정확히 일치하는 문자열을 포함한 결과만 검색.
- ex: site:example.com "internal use only", site:example.com "confidential" ,site:example.com "password"
- 이를 이용해, 고정 문구 기반 문서 식별, 에러 페이지 기반 페이지 식별, 특정 템플릿 문구가 들어간 페이지를 찾는다.
4-6) -키워드
- 특정 키워드를 제외한다.
- site:example.com login -support, site:example.com admin -blog
- 이를 이용해 불필요한 검색 결과를 제거하고, 마케팅/블로그/고객지원 페이지 탐색 대상에서 제외한다.
4-7) OR
- 둘 이상의 조건 후보를 넓게 찾을 때 사용함
- site:example.com (inurl:admin OR inurl:manage), site:example.com (filetype:pdf OR filetype:docx)
- 이를 이용해 관리자/운영 경로 동시 탐색 및 여러 문서 유형을 동시 검색한다.
2. Shodan
1) Shodan이란
- Shodan은 일반 웹페이지를 찾는 검색엔진이 아니라, 인터넷에 직접 노출된 장비와 서비스의 응답 정보를 검색하는 엔진이다. 검색의 핵심 단위는 서비스가 반환하는 배너(banner) 데이터이다.
2) Shodan을 사용하는 이유
1) 외부에서 실제로 보이는 자산 표면을 빠르게 파악할 수 있다.
2) 웹이 아닌 SSH, RDP, VPN, NAS, DB, IoT, 산업장비 같은 서비스도 검색 대상이 될 수 있다.
3) Shodan은 검색뿐 아니라 CLI, API, Monitor, 온디맨드 스캔 같은 기능을 제공해서 자동화와 추적에 유리하다.
3) Shodan 필터 문법
3-1) port
- 포트 기준 필터
- ex
- port:80
- port:443
- port:22
- port:3389
3-2) org
- 조직명 기준 필터
- ex) org:"target company Inc"
3-3) net
- CIDR 기준 필터
- ex) net:198.51.100.0/24
3-4) contry
- 국가 기준 필터
- ex
- contry:KR
- contry:JP
3-5) hostname
- 호스트명 기준 필터
- ex
- hostname:target.com
- hostname: subdomain.target.com
3-6) product
- 제품명 기준 필터
- ex
- product:nginx
- product:OpenSSH
- product:Apache
3-7) os
- 운영체제 힌트 기준
- ex
- os:"Windows"
- os:"Linux"
3-8) has_ssl:true
- SSL/TLS 존재 여부
- has_ssl:true
3-9) http.title
- 웹 제목 기준
- ex
- http.title:"Login"
- http.title:"Welcome"
4) 실제 사용 페이로드 예시
4-1) 전체 외부 노출 자산 찾기
- hostname:your-company.com
org:"Your Company Inc"
net:198.51.100.0/24
4-2) SSH 노출 확인
- net:198.51.100.0/24 port:22
org:"Your Company Inc" product:OpenSSH
hostname:your-company.com port:22
4-3) RDP 노출 확인
- net:198.51.100.0/24 port:3389
org:"Your Company Inc" port:3389
- 이를 이용해 원격 데스크톱 서비스 외부 노출 여부 확인 가능
4-4) HTTPS 서비스 식별
- net:198.51.100.0/24 port:443
hostname:your-company.com has_ssl:true
org:"Your Company Inc" port:443
4-5) 웹 로그인 페이지 후보 찾기
- hostname:your-company.com http.title:"Login"
hostname:your-company.com http.title:"Sign in"
hostname:your-company.com http.title:"관리자"
hostname:your-company.com http.title:"로그인"
4-6) 특정 웹서버 제품 찾기
- net:198.51.100.0/24 product:nginx
net:198.51.100.0/24 product:Apache
net:198.51.100.0/24 product:"Microsoft-IIS"
4-7) 인증서 기반 자산 추적
- ssl:"your-company.com"
ssl.cert.subject.cn:"your-company.com"
ssl.cert.issuer.cn:"Let's Encrypt"
4-8) 국가/지역 범위로 좁히기
- org:"Your Company Inc" country:KR
org:"Your Company Inc" country:JP
product:nginx country:KR port:443
4-9) 기술 스택 흔적 보기
- hostname:your-company.com http.component:"nginx"
hostname:your-company.com http.component:"PHP"
hostname:your-company.com http.component:"WordPress"
4-10) favicon 기반 묶음 찾기
- http.favicon.hash:-123456789
3. Censys
1) Censys란
- Censys는 인터넷 전역의 장비와 서비스에 대해 스캔 데이터를 수집하고, 이를 검색할 수 있게 해주는 인터넷 인텔리전스 플랫폼이다.
2) Censys를 사용하는 이유
1) IP를 몰라도 자산 추적이 가능하다.
2) SSL/TLS기반 자산 추적이 용이하다.
- 인증서 CN/SAN, 발급자, fingerprint, chain을 이용해 숨겨진 서브도메인까지 찾을 수 있다.
3) Censys 데이터 구조 이해
- Censys는 크게 2가지 핵심 데이터셋이 있다.
3-1) Hosts
- IP기준 데이터로 어떤 포트가 열려있는 지 및 어떤 서비스가 있는지 알 수있음
3-2) Certificates
- SSL 인증서 기준데이터로 도메인, SAN 목록, 발급자, fingerprint를 알 수 있음
4) 실제 사용 페이로드
4-1) 도메인 기반 자산 찾기
- services.tls.certificates.leaf_data.names: "example.com"
- example.com 관련(서브도메인 포함) 모든 인증서 확인
4-2) 특정 도메인의 실제 서버 IP 찾기
- services.tls.certificates.leaf_data.subject.common_name: "example.com"
- 해당 인증서 사용하는 서버 IP 노출됨
4-3) 서브도메인 확장
- services.tls.certificates.leaf_data.names: "*.example.com"
- dev.example.com, admin.example.com 등 서브도메인 정보 확인
4-4) HTTPS 서비스만 필터링
- services.port: 443
4-5) 로그인 페이지 찾기
- services.http.response.html_title: "Login"
- services.http.response.html_title: "로그인"
4-6) 특정 기술 찾기
- services.software.product: "nginx"
4-7) 특정 국가 + 서비스
- location.country: "South Korea" AND services.port: 443
4-8) 특정 조직 자산 찾기
- autonomous_system.organization: "Amazon"
4-9) 특정 IP 대역 분석
- network: 1.2.3.0/24
4-10) 인증서 fingerprint 기반 추적
- services.tls.certificates.leaf_data.fingerprint_sha256: "xxxxx"
'보안 프로젝트' 카테고리의 다른 글
| [보안 프로젝트] Android SSL Pinning Bypass using Frida (0) | 2026.04.13 |
|---|---|
| [보안 프로젝트] Injection (0) | 2026.04.05 |
| KT Cloud VM 서버 초기 구축 및 SSH 보안 하드닝 정리 (0) | 2025.12.21 |
| 모바일 해킹을 위한 JADX & Frida with FridaLab (0) | 2025.09.21 |
| 커스텀 보안툴 만들기 (1) | 2025.09.03 |