ATT&CK: T1596.005 Shodan, T1596 Search Open Technical Databases · Reconnaissance (TA0043)
Shodan·Censys는 인터넷 전역을 상시 스캔해 둔 데이터베이스. “대상 조직에 어떤 외부 자산이 있는지” 질의로 받아올 수 있어, 능동 스캔(T1595) 전에 범위를 좁히기 좋다. 대상에 패킷을 보내지 않으므로 흔적 없음 — passive에 가까운 분류.
1. Shodan
1.1 가입 + CLI
pip install shodan
shodan init YOUR_API_KEY
무료 티어는 결과 수 제한이 큼. 유료 또는 .edu 계정이 유리.
1.2 유용한 필터
# 조직 명으로
shodan search 'org:"Example Corp"'
# ASN
shodan search 'asn:AS12345'
# 특정 서비스
shodan search 'org:"Example" port:3389'
shodan search 'org:"Example" product:"nginx"'
# TLS 인증서 기반
shodan search 'ssl.cert.subject.cn:example.com'
shodan search 'ssl.cert.issuer.cn:"Let\'s Encrypt"'
# HTTP 응답
shodan search 'org:"Example" http.title:"Login"'
shodan search 'org:"Example" http.favicon.hash:116323821'
1.3 공개 노출 체크
흔히 쓰는 조합 (외부에 노출되면 위험한 서비스):
shodan search 'org:"Example" port:22,3389,445,3306,5432,27017,6379'
1.4 결과 다루기
# JSON으로 저장
shodan download results 'org:"Example"'
# .json.gz 파일 생성
# 파싱해서 IP 리스트만
shodan parse --fields ip_str,port results.json.gz
2. Censys
2.1 API 설정
pip install censys
censys config
# API ID + Secret 입력
2.2 검색
# 호스트 검색
censys search 'services.service_name: HTTP and services.port: 8080 and location.country: KR'
# 특정 조직
censys search 'autonomous_system.name: "Example Corp"'
# 인증서
censys search --index-type certificates 'parsed.names: example.com'
Censys가 Shodan보다 인증서 데이터베이스가 강하다 — 조직의 서브도메인 발견에 특히 유용.
2.3 Censys Search UI
https://search.censys.io/
웹 UI가 깔끔. 결과를 CSV/JSON으로 export.
3. 두 서비스 비교
| 측면 | Shodan | Censys |
|---|---|---|
| 가격 | 유료 중심, 가끔 세일 | 무료 티어 상대적으로 넉넉 |
| 서비스 지문 | 포트/배너 중심 | 전체 서비스 핸드셰이크까지 |
| 인증서 DB | 있음 (덜 상세) | 매우 상세 (CT log 통합) |
| 특수 데이터 | ICS/SCADA 쿼리 전문 | 범용 인터넷 전역 |
| CLI | 성숙 | 발전 중 |
실전에선 둘 다 조회가 기본 (중복/보완 관계).
4. 조직 자산 매핑 패턴
# 1) 알려진 도메인에서 시작
echo example.com > seed.txt
# 2) crt.sh(CT log) → 서브도메인
curl -s "https://crt.sh/?q=%25.example.com&output=json" | \
jq -r '.[].name_value' | sort -u > subs-ct.txt
# 3) Shodan으로 조직명 → IP 범위
shodan search 'org:"Example Corp"' --fields ip_str | sort -u > ips-shodan.txt
# 4) Censys로 인증서 → 추가 도메인
censys search --index-type certificates 'parsed.names: *.example.com' | \
jq -r '.parsed.names[]' | sort -u > names-censys.txt
# 5) 전부 합쳐서 중복 제거
sort -u subs-ct.txt names-censys.txt > assets.txt
이 결과를 능동 스캔(nmap, httpx 등) 입력으로.
5. 유사 서비스
- FOFA: 중국 기반, 외부 자산 노출 쿼리 특화.
- ZoomEye: FOFA와 유사.
- Hunter.how: 비교적 신생, 포지셔닝은 Shodan 유사.
- Netlas.io: 무료 티어가 상대적으로 넉넉, 커스텀 쿼리 가능.
여러 소스를 돌아가며 조회하면 커버리지가 다름 — 하나만 믿지 말기.
6. OPSEC
- 쿼리 자체가 대상 자산 소유자에게 노출되지는 않음 — Shodan/Censys가 수집한 데이터를 조회하는 것이므로.
- 다만 쿼리 로그는 서비스 측에 남음. 민감한 조사면 Tor + 익명 계정 조합이 흔함.
- API 키는 자신의 활동이 추적되는 식별자이므로 분리 운영.
7. 블루팀 관점
- 자기 조직 자산을 먼저 Shodan/Censys에 쿼리 → 공격자가 보기 전에 “노출된 거 뭐가 있나” 식별.
- 특히 shadow IT (팀이 임의로 띄운 외부 서비스) 찾는 데 가장 효과적.
- Shodan Monitor / Censys ASM 상용 기능: 조직 자산 자동 추적 + 변경 알림.
참고
- Shodan Search Filters
- Censys Search
- MITRE ATT&CK — T1596