본문으로 건너뛰기

CTF 정찰: OSINT 기법 완전 정복

OSINT(오픈소스 인텔리전스)는 CTF 대회, 침투 테스트, 보안 연구에서 핵심 스킬이다. 이 가이드는 문제를 풀기 전후에 정보를 수집하는 데 도움이 되는 실전 OSINT 기법을 다룬다.

OSINT란?

OSINT는 공개된 소스에서 공개적으로 이용 가능한 정보를 수집하는 것이다. CTF 맥락에서는 웹 페이지, 메타데이터, SNS, DNS 레코드, 공개 데이터베이스에서 숨겨진 단서를 찾는 것을 의미한다.

CTF에서 OSINT가 중요한 이유:

  • 메타데이터에 숨겨진 플래그 발견
  • 사용자명, 이메일, 자격 증명 발굴
  • 인프라와 관계 구조 파악
  • 과거 데이터 및 삭제된 콘텐츠 발견

필수 OSINT 도구

웹 정찰

Wayback Machine (archive.org) - 웹사이트의 과거 버전을 볼 수 있다. 삭제된 페이지에는 현재 버전에서 제거된 플래그나 민감한 정보가 남아있는 경우가 많다.

Google 도킹 - 고급 검색 연산자로 숨겨진 콘텐츠를 발견한다:

  • site:example.com filetype:pdf - 특정 파일 타입 찾기
  • inurl:admin - 관리자 패널 찾기
  • intitle:"index of" - 디렉토리 목록 찾기

Shodan (shodan.io) - 인터넷 연결 장치 검색 엔진. 노출된 서비스, 기본 자격 증명, 취약한 시스템을 발견할 수 있다.

메타데이터 분석

ExifTool - 이미지, 문서, 파일에서 메타데이터 추출:

exiftool image.jpg
exiftool -all= image.jpg # 모든 메타데이터 제거

GPS 좌표, 소프트웨어 버전, 사용자명이 EXIF 데이터에 숨어있는 경우가 많다.

Strings - 바이너리 파일에 단순하지만 효과적인 방법:

strings file.bin | grep -i flag

DNS 및 도메인 인텔리전스

dig - DNS 레코드 쿼리:

dig example.com ANY
dig -x 192.168.1.1 # 역방향 조회

whois - 도메인 등록 데이터로 소유자, 이메일, 등록 날짜를 확인한다.

인증서 투명성 (crt.sh) - SSL 인증서를 통해 서브도메인 발견:

%.example.com

소셜 미디어 인텔리전스

사용자명 OSINT - sherlock이나 namechk 같은 도구로 플랫폼 전체에서 계정을 찾는다:

sherlock username123

트위터 고급 검색 - 날짜, 위치, 사용자, 키워드로 필터링. 타임라인 재구성에 유용하다.

LinkedIn - 직원 정보를 통해 조직 구조, 사용 기술, 잠재적 소셜 엔지니어링 타깃을 파악한다.

실전 CTF 기법

이미지 스테가노그래피 탐지

이미지에 숨겨진 데이터 확인:

binwalk image.png
steghide extract -sf image.jpg
zsteg image.png # PNG 분석

아카이브 및 파일 분석

재귀적 아카이브 추출:

binwalk -e firmware.bin
foremost disk.img # 디스크 이미지에서 파일 카빙

네트워크 트레이스

Wireshark 필터로 패킷 캡처 분석:

  • http.request.method == "POST" - 폼 제출 찾기
  • ftp-data - FTP 트래픽에서 파일 추출
  • dns - 접근한 도메인 확인

Git 저장소 마이닝

Git 히스토리에서 시크릿 추출:

git log --all --full-history -- "*password*"
trufflehog --regex --entropy=False .

삭제된 커밋과 브랜치에는 플래그나 자격 증명이 남아있는 경우가 많다.

OSINT 워크플로우 구축

1. 넓게 시작하기 - 검색 엔진과 공개 데이터베이스 활용
2. 깊이 파고들기 - 링크, 서브도메인, 관련 계정 추적
3. 자동화 - Python이나 Bash로 반복 작업 스크립팅
4. 문서화 - 발견 사항과 관계 노트 기록

빠른 정찰 스크립트

#!/bin/bash
TARGET=$1
echo "[+] DNS 레코드"
dig $TARGET ANY
echo "[+] 서브도메인 (crt.sh)"
curl -s "https://crt.sh/?q=%.$TARGET&output=json" | jq -r '.[].name_value' | sort -u
echo "[+] 과거 스냅샷"
curl -s "http://archive.org/wayback/available?url=$TARGET" | jq -r '.archived_snapshots.closest.url'

자주 나오는 CTF OSINT 시나리오

메타데이터 속 플래그 - 다운로드한 이미지의 EXIF 데이터를 항상 확인하라
삭제된 SNS 포스트 - 캐시/아카이브 버전 검색
서브도메인 열거 - 잊혀진 서브도메인에 플래그가 숨어있는 경우가 많다
과거 유출 - 오래된 pastebin/gist 포스트에 자격 증명이 남아있다
QR 코드 - zbarimg로 수동 스캔 없이 디코딩

법적·윤리적 고려사항

OSINT는 공개 정보를 사용하지만 맥락이 중요하다. CTF 대회에서는 챌린지 범위 내에서만 활동하라. 실제 연구에서는 개인정보 보호법과 서비스 이용 약관을 준수하라.

항상 지켜야 할 것:

  • 프로덕션 시스템 테스트 전 반드시 권한 취득
  • 동의 없이 실제 사람을 소셜 엔지니어링하지 않기
  • 방법론 문서화
  • 취약점 책임 있게 보고

연습 리소스

CTF 플랫폼 - TryHackMe와 HackTheBox에 OSINT 챌린지가 있다
Trace Labs - 실종자 대상 OSINT CTF (실제 임팩트 있음)
OSINT Framework (osintframework.com) - 종합 도구 디렉토리

마치며

OSINT는 익스플로잇 없는 정찰이다. 이 기법을 마스터하면 플래그를 더 빠르게 찾고, 공격 표면을 더 잘 이해하고, 보안 연구자의 사고방식을 기를 수 있다. 정보는 이미 공개되어 있다 — 어디를 봐야 할지만 알면 된다.

Google로 시작해서 전문 도구로 깊이 파고들고, 항상 메타데이터를 확인하라. 해피 헌팅!