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 상용 기능: 조직 자산 자동 추적 + 변경 알림.

참고