콘텐츠로 이동

스크린샷, 샌드박스, 그리고 수동 분석으로 넘어갈 때

이 페이지에서 다루는 것

자격 증명 피싱을 가장 쉽게 확인하는 스크린샷 서비스와 그 결과를 읽는 법, 도구마다 다른 "공유 여부", 평판으로 부족할 때 쓰는 샌드박스(HTML 분석형과 가상 머신형)와 질문에 맞는 도구 고르기, 샌드박스를 속이는 수법, 그리고 자동 방법이 답을 못 줄 때 넘어가는 수동 분석의 지도. 마지막에 확인 문제와 해설이 있습니다.

표기

[보충] = 꼭 알아야 할 실무 보충, [변경됨]/[주의] = 최근 바뀐 점과 옛 방식대로 하면 위험한 점. 앞 단계는 HTTP 악용의 단계, 분석 방법, URL 평판에 있습니다.

한눈에 보는 핵심 8가지

  1. 자격 증명 피싱은 화면을 보면 가장 빨리 알 수 있다. 스크린샷 서비스가 대신 열어 준다.
  2. 도구마다 결과를 공개하는지가 다르다. 링크를 남에게 보이면 안 되는 상황이면 공유하지 않는 도구를 고른다.
  3. 스크린샷이 진짜와 똑같아도 안심하지 않는다. 주소창의 호스트, 인증서 나이, 입력값이 어디로 가는지를 본다.
  4. 샌드박스는 두 종류: 페이지만 열고 HTML·HTTP 거래를 기록하는 것(네트워크 중심)과 가상 머신에서 실제로 열어 PC 변화를 기록하는 것(악성코드 중심).
  5. "무엇을 알고 싶은가"로 도구를 고른다. 요청 하나하나가 필요하면 네트워크 중심, 프로세스·파일 변화가 필요하면 VM 중심.
  6. 샌드박스는 속는다. 가상 머신 감지, 시간 끌기, 사람의 클릭 요구, 국가·기기 확인으로 깨끗한 척한다.
  7. 회사 문서를 공개 샌드박스에 올리면 남이 내려받을 수 있다.
  8. 자동 방법이 답을 못 주면 수동 분석: 헤더(URL·User-Agent·Host), GET·POST 내용, 파일, 그리고 이상 징후(Base64, IP 직접 접속, 반복 비콘).

스크린샷으로 자격 증명 피싱 확인하기

왜 필요한가. 비밀번호를 훔치는 자격 증명 피싱(Credential Phishing) 사이트는 마이크로소프트·구글·은행 로그인 화면을 흉내 내야 하므로, 눈으로 보면 바로 알 수 있는 경우가 많습니다. 하지만 사용자가 신고한 메일에는 스크린샷이 없고, 회사 PC로 직접 열어 볼 수도 없습니다. 그래서 남의 컴퓨터가 대신 열고 사진을 찍어 주는 서비스를 씁니다.

도구 하는 일 결과 공유
urlscan.io 페이지를 열어 스크린샷 + 오간 HTTP 거래·리소스·리디렉션을 모두 기록. 사라진 사이트의 과거 기록 찾기에 좋음 공개·목록 제외(Unlisted)·비공개(Private) 중 선택
URLQuery 스크린샷, IDS 규칙 검사, 불러온 리소스 목록 공개
PhishTank 커뮤니티가 피싱 여부를 투표로 확인 공개(목적 자체가 공유)
Hybrid Analysis 스크린샷 + 아주 자세한 샌드박스 분석 제출물 공개
단순 스크린샷 서비스 사진만 찍어 줌 서비스에 따라 다름
Cloudflare URL Scanner 스크린샷, 네트워크 요청, 기술 스택 공개·비공개 선택

공유 여부가 왜 중요한가. OPSEC에서 본 것처럼, 링크를 공개 데이터베이스에 남기면 피해자 정보가 드러나거나 공격자가 알아챌 수 있습니다. "이 링크를 남에게 보여도 되는가?"를 먼저 정하고 도구를 고릅니다.

스크린샷 결과 읽기

스캔 서비스 결과 요약은 보통 이런 모양입니다(예시).

Submitted URL:  https://secure-docs-share.example/view?id=7731
Effective URL:  https://secure-docs-share.example/m365/login.php
Screenshot:     "Sign in" page with Microsoft logo, email + password form
Page title:     Sign in to your account
Main IP:        198.51.100.38  (AS64500 Example Hosting, NL)
TLS cert:       issued 2026-11-03 by Let's Encrypt (1 day old)
Domains:        secure-docs-share.example, aadcdn.msftauth.net, code.jquery.com
Form action:    POST https://secure-docs-share.example/m365/next.php
  • Submitted → Effective URL: 처음 주소에서 리디렉션돼 실제로 도착한 곳. 경로 m365/login.php부터 흉내 냄
  • Screenshot·Page title: 마이크로소프트 로그인 화면과 제목을 그대로 흉내
  • Main IP·AS: 마이크로소프트가 아닌 일반 호스팅 업체
  • TLS cert 하루 전 발급: 갓 만든 사이트. 정상 로그인 페이지는 이런 인증서를 쓰지 않음
  • Domains: 로고 같은 그림은 진짜 마이크로소프트 CDN(aadcdn.msftauth.net)에서 불러옴. 진짜처럼 보이려는 피싱 키트의 흔한 수법
  • Form action: 입력한 이메일·비밀번호가 마이크로소프트가 아닌 next.php로 전송됨 → 결정적 증거

판단 포인트는 그림보다 주소입니다. 화면이 진짜와 똑같은지가 아니라, 그 화면이 진짜 마이크로소프트 주소(login.microsoftonline.com)에서 나왔는가를 봅니다.

더 깊이: 샌드박스

무엇인가. 평판과 스크린샷으로 부족하면 샌드박스(Sandbox)를 씁니다. 모래 놀이터처럼 밖과 분리된 공간에서 링크나 파일을 실제로 열어 보고, 무슨 일이 일어나는지 전부 기록하는 도구입니다. 링크를 따라가고, HTML을 내려받고, 가상 머신에서 페이지를 열어, 호스트에 수상한 변화(새 프로세스, 새 파일, 레지스트리 변경)가 생기는지 봅니다.

종류 하는 일 예 맞는 사람
HTML·네트워크 중심 페이지만 열고 HTML과 HTTP 요청·응답 하나하나를 기록, 각각 내려받기 가능 urlscan.io 초보 분석가도 읽기 쉬움
가상 머신(VM) 중심 실제 윈도우 VM에서 열어 프로세스·파일·레지스트리 변화까지 기록 Hybrid Analysis, ANY.RUN, Joe Sandbox 결과가 복잡해 숙련자에게 적합

알고 싶은 것으로 도구를 고릅니다.

알고 싶은 것 맞는 결과물
페이지가 불러오는 자바스크립트 파일 이름 네트워크 중심 샌드박스의 요청 목록
사이트를 연 데스크톱 화면 VM 샌드박스의 화면 녹화·스크린샷
통신 전체의 패킷 캡처(PCAP), 내려받은 파일 PCAP·파일 다운로드를 제공하는 샌드박스
어떤 IDS 규칙에 걸리는지, 어떤 ATT&CK 기법인지 IDS 경보·ATT&CK 매핑을 제공하는 샌드박스
파일이 윈도우에서 무엇을 실행하는지(프로세스 트리) VM 샌드박스

VM 중심 샌드박스는 악성 파일 분석에 강하고 호스트에서 일어나는 일을 자세히 판정하지만, 화면이 네트워크 연결 중심은 아닙니다. 반대로 urlscan.io는 실제 HTTP 거래를 요청·응답 단위로 보여 줘서 네트워크 분석에 좋습니다. 분석가는 여러 도구를 직접 써 보며 각각의 강점을 익혀 둡니다.

[보충] 샌드박스는 속는다

공격자도 샌드박스를 알기 때문에 분석 환경이면 얌전히 있는 기능을 넣습니다.

수법 내용
가상 머신 감지 VM 드라이버, 적은 CPU 수·메모리, 분석 도구 프로세스를 보고 멈춤
시간 끌기 몇 분~몇 시간 기다렸다 실행(샌드박스는 보통 몇 분만 관찰)
사람 행동 요구 마우스 움직임, 클릭, 문서 스크롤이 있어야 실행
국가·기기 확인(지오펜싱) 표적 국가 IP, 특정 언어 설정, 휴대폰에서만 악성 페이지 표시
확인 화면 CAPTCHA·Turnstile 뒤에 피싱 페이지를 숨김

그래서 샌드박스 결과가 깨끗해도 확정이 아닙니다. ANY.RUN 같은 대화형 샌드박스는 분석가가 직접 클릭하고 기다리며 진행할 수 있어 일부 수법을 넘을 수 있습니다. 표적 국가에 맞춘 출구 IP를 고를 수 있는 서비스도 있습니다.

자동으로 안 되면: 수동 헤더·내용 분석

평판, 스크린샷, 샌드박스로도 답이 안 나오면 직접 봅니다. 처음엔 시간이 걸리지만, 정상과 악성 예를 충분히 보면 "이건 뭔가 이상하다"는 감이 생깁니다. 다만 신호 하나로 완벽하게 판정되는 경우는 드물고, 여러 신호가 같은 방향을 가리킬 때 결론이 납니다.

볼 것 무엇을 자세히
헤더 URL, Host(가상 호스트), User-Agent 등 요청 판정 연습
GET·POST 내용 파라미터·본문이 쓸데없이 인코딩됐나 POST와 악용
파일 받은 파일의 실제 종류, 해시 응답 헤더
이상 징후 Base64 내용, 도메인 없이 IP로 직접 접속, 반복 비콘, 그 밖의 어색함 이 섹션 다음 페이지들

예를 들어 다음 요청은 신호 하나하나는 약하지만 모이면 강합니다.

POST http://198.51.100.77/api/v2/sync        ← naked IP, no domain, plain http
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/112.0.0.0
Content-Type: application/octet-stream
body: dXNlcj1qc21pdGgmaG9zdD1GSU4tUEMwNw==   ← Base64
(repeats every 300 s)                         ← beacon
  • IP 직접 접속 + http: 정상 서비스는 보통 도메인과 https를 씀
  • Chrome 112: 2023년 버전. 회사 크롬은 자동 업데이트되는데 이 값만 몇 년째 그대로라면 프로그램에 박아 둔 가짜 값
  • Base64 본문: 풀면 user=jsmith&host=FIN-PC07 — 사용자와 PC 이름 보고
  • 300초 반복: 비콘

각각은 "그럴 수도 있지" 수준이지만, 네 개가 겹치면 C2라고 판단할 근거가 됩니다. User-Agent, 쿠키, Base64, 파일 추출, 잦은 요청, IP 직접 접속은 이 섹션의 다음 페이지들에서 하나씩 자세히 다룹니다.

[2026 현재] 그대로 유효한 것

"피싱은 화면부터 본다", "공유 여부를 보고 도구를 고른다", "질문에 맞는 샌드박스를 고른다", "자동으로 안 되면 여러 약한 신호를 모아 수동 판단"은 그대로입니다.

[변경됨] 바뀐 것

  • PhishTank는 2020년부터 신규 가입을 받지 않습니다. 데이터 조회와 내려받기는 가능하지만 커뮤니티 투표 서비스로서의 역할은 크게 줄었습니다. urlscan.io, Cloudflare URL Scanner처럼 공개·비공개를 고를 수 있는 스캐너가 주로 쓰입니다.
  • AiTM 피싱 키트 때문에 스크린샷이 "진짜"로 보입니다. Evilginx나 Tycoon 2FA 같은 중간자형 피싱 키트는 진짜 마이크로소프트 로그인 페이지를 그대로 중계하므로, 화면과 문구가 완벽하게 진짜입니다. 그래서 판단은 그림이 아니라 주소창 호스트, 인증서 나이, 호스팅 위치로 합니다. 이 키트는 MFA 뒤의 세션 쿠키까지 가로챕니다(Cookie).
  • 피싱 페이지가 확인 화면 뒤로 숨습니다. CAPTCHA나 Turnstile을 먼저 통과해야 피싱 화면이 나와, 자동 스캐너 스크린샷에는 확인 화면만 찍히는 경우가 많습니다.
  • 샌드박스가 다양해졌습니다. 대화형(ANY.RUN), 대규모 자동(Joe Sandbox, Recorded Future Triage 등), 클라우드 보안 제품에 붙은 샌드박스가 흔하고, 결과를 요약해 주는 AI 기능도 붙고 있습니다. 요약은 출발점일 뿐, 원본 기록(요청 목록, 프로세스 트리)을 확인합니다.

[주의] 지금 그대로 하면 틀리거나 위험한 것

  • 회사 문서를 공개 샌드박스에 올리지 않습니다. 공개 제출 파일은 다른 사용자(특히 유료 계정)가 내려받을 수 있어, 내부 문서가 그대로 유출됩니다. 비공개 옵션이나 사내 샌드박스를 씁니다.
  • 샌드박스·스캔 결과가 깨끗해도 종결하지 않습니다. 회피 수법과 확인 화면 때문에 "아무 일도 없었다"는 결과가 나올 수 있습니다.
  • 화면이 진짜 같다는 이유로 정상 판정하지 않습니다. 주소와 입력값이 가는 곳이 기준입니다.

확인 문제

문제 1

사용자가 신고한 링크를 스캔했더니, 스크린샷이 진짜 마이크로소프트 로그인 화면과 픽셀 하나까지 똑같습니다. 동료는 "진짜 화면이네, 정상 링크야"라고 합니다. 결과 요약은 이렇습니다.

Effective URL:  https://login.microsoftonline.com.sso-verify.example/common/oauth2
TLS cert:       issued 2026-11-04 (today)
Main IP:        203.0.113.140  (AS64511 Budget VPS)

동료의 판단이 틀린 이유와, 이런 사이트의 정체는 무엇일 가능성이 높습니까?

정답과 해설

틀린 이유: 화면이 아니라 주소를 봐야 합니다. 오른쪽부터 읽으면 진짜 주인은 sso-verify.example이고, login.microsoftonline.com은 그 앞에 붙인 서브도메인일 뿐입니다. 인증서는 오늘 발급됐고, IP는 마이크로소프트가 아니라 저가 VPS 업체입니다.

정체: 화면이 완벽하게 진짜라는 점은 오히려 AiTM(중간자형) 피싱 키트를 가리킵니다. 이 키트는 진짜 마이크로소프트 페이지를 그대로 중계하면서 가운데서 이메일, 비밀번호, MFA 이후의 세션 쿠키까지 가로챕니다.

다음 행동: 그 사용자가 이 사이트에 로그인 정보를 보냈는지(프록시 로그의 POST) 확인합니다. 보냈다면 비밀번호 변경만으로는 부족하고 모든 로그인 세션을 끊어야 합니다. 이어서 로그인 기록에서 낯선 IP·기기의 로그인을 찾고, 도메인을 차단하고, 같은 메일을 받은 다른 사람을 찾습니다.

문제 2

다음 각 질문에 가장 맞는 도구 종류는 무엇입니까?

(a) 이 피싱 페이지가 어떤 자바스크립트 파일을 어디서 불러오고, 각 요청에 서버가 무엇을 답했는지 하나하나 보고 싶다. (b) 메일 첨부로 온 문서를 열면 윈도우에서 어떤 프로세스가 실행되고 어떤 파일이 생기는지 알고 싶다. (c) 링크에 고객 이름이 들어 있어, 어떤 형태로든 결과가 공개되면 안 된다.

정답과 해설

(a) 네트워크 중심 샌드박스 — urlscan.io처럼 HTTP 요청·응답을 하나하나 기록하고 내려받을 수 있는 도구.

(b) VM 중심 샌드박스 — Hybrid Analysis, ANY.RUN, Joe Sandbox처럼 실제 윈도우 VM에서 열어 프로세스 트리, 파일·레지스트리 변화를 기록하는 도구. 사람의 클릭을 요구하는 문서라면 대화형(ANY.RUN)이 유리합니다.

(c) 비공개 옵션 또는 사내 격리 환경 — 공개 기본값인 서비스(Hybrid Analysis 공개 제출, URLQuery, PhishTank 등)는 피합니다. 가능하면 고객 이름이 든 파라미터를 지우거나 가짜 값으로 바꾸고 분석합니다.

문제 3

동료가 직원이 받은 "Board_Minutes_Q3.docx"(회사 이사회 회의록으로 보이는 첨부 파일, 매크로 포함)를 확인하려고 공개 샌드박스에 그대로 올리려 합니다. 무엇이 위험하고, 어떻게 해야 합니까?

정답과 해설

위험: 공개 샌드박스에 올린 파일은 다른 사용자가 검색하고 내려받을 수 있습니다. 그 문서가 진짜 회사 회의록(내부 사람이 매크로가 든 정상 문서를 보낸 경우)이라면 기밀 문서가 통째로 외부에 유출됩니다. 공격자가 보낸 악성 문서라면, 공격자가 자기 파일이 제출된 것을 보고 들켰다는 걸 알 수 있습니다.

대응:

  1. 먼저 파일 해시(SHA-256)만 평판 서비스에서 조회 — 이미 분석된 악성 파일이면 파일을 올릴 필요가 없음
  2. 내용 분석이 필요하면 사내 샌드박스나 비공개 제출 옵션 사용
  3. 발신자와 메일 헤더를 확인해 진짜 내부 문서인지 공격인지 판단
  4. 같은 첨부를 받은 다른 직원을 메일 게이트웨이에서 찾음