CapTipper를 이용한 악성 트래픽 분석

 

이번에 소개할 도구는 파이썬 기반의 Malicious 네트워크 트래픽 분석도구인 CapTipper이다.

일반적으로 네트워크 트래픽을 분석할 때 가장 많이 사용되는 도구로 WireShark를 떠올리지만,
필터링 expressions 를 제대로 활용하지 못할 경우 사용에 어려움을 느낄 수도 있다.
반면, CapTipper 는 악성 트래픽을 분석하는데 도움을 줄 수 있는 기능들로 구성되어 있어,
빠르게 분석을 수행할 수 있는 장점이 있다.

해당 도구에 대한 소개 및 다운로드 경로는 다음과 같다.

– 다운로드 경로 : https://github.com/omriher/CapTipper

 

1. 기능 및 특징

CapTipper의 가장 큰 특징 중 하나는 바로 가상 서버를 통한 시뮬레이션 기능이다.
분석하고자 하는 pcap 파일을 로드하면, 로컬 호스트 상의 가상 서버가 구동되면서
실제 트래픽이 오고 갔던 화면을 그대로 재연할 수 있는 기능이다.

또한, 자바스크립트 내 포함된 iframe 코드를 자동으로 찾아주거나
바이러스 토탈 API를 통해 자동으로 분석 결과를 업로드/조회 할 수 있는 것도
CapTripper의 장점이라 할 수 있겠다.

 

2. 설치 및 기본 명령어

CapTripper는 파이썬이 설치된 환경이라면 문제없이 사용할 수 있다.
단, 파이썬 2.7x 버전에서만 테스트 하였으며, 3.x 버전의 경우 제대로 동작하지 않을 수 있다.

git clone 을 통해 CapTripper를 로컬에 복사한 후 다음 명령으로 분석을 시작할 수 있다.

정상적으로 실행되면  “CT >”  형태의 프롬프트로 전환되면서 명령을 기다리게 된다.
지원되는 명령어 리스트를 보고 싶거나, 간단한 사용법을 알고 싶다면 “help”를 입력한다.

주로 사용되는 몇가지 명령어를 살펴본 후, 실제 악성 트래픽 샘플을 분석해 보도록 하자.

– hosts : 트래픽의 전반적인 접속 흐름을 호스트 단위로 묶어서 보여준다.
각 라인 마지막에 붙어 있는 숫자는 Conversation_id로써, 실제 트래픽이 오고간 순서를 의미한다.

Cap 2015-01-28 16-51-29-543
– head / body  <conv_id> : 해당 conv_id에 대한 헤더와 바디 내용을 출력한다.

Cap 2015-01-28 16-53-38-908

 

– convs : 전체 네트워크 트래픽 흐름을 (호스트 관계없이) 순서대로 표시한다.
의심되는 파일이 있을 경우 붉은색 또는 노란색으로 별도 표기 된다.

Cap 2015-01-28 16-55-50-507

– iframes <obj_id> : 해당 객체에 포함되어 있는 iframe 태그 정보를 추출하여 보여준다.

Cap 2015-01-28 16-59-25-925

– dump : 분석하는 pcap에서 파일 객체들을 추출한다. 전체 또는 특정 conv_id를 추출할 수 있다.

스크린샷 2015-01-29 오전 12.21.38

이외 ungzip, hexdump등의 명령어는  실제 분석 예제를 통해 알아보도록 하자.

 

3. 악성트래픽 분석 – Case 01 : Nuclear EK 분석

http://www.malware-traffic-analysis.net/2014/11/06/2014-11-06-Nuclear-EK-traffic.pcap

먼저 CapTipper를 통해 pcap 파일을 로드하면 자동으로 convs 리스트를 다음과 같이 보여준다.

스크린샷 2015-01-29 오전 12.31.10

CapTipper의 가장 큰 장점이라 할 수 있는 것이 바로 convs 기능이다.
분석가라면 위 한장의 그림만 보더라도 대략적인 악성코드 감염 경로와 진행 흐름을 파악할 수 있다.
8번 라인부터 집중적으로 .swf 파일 / pdf 파일 / exe 파일을 다운받는 것으로 볼 때,
특정 웹사이트 접속으로 인한 Drive-by infection일 가능성이 매우 높다고 할 수 있다.

스크린샷 2015-01-29 오전 12.40.22

hosts 명령을 통해 호스트 단위로 접속 기록을 살펴본 결과 이상한 점이 한군데 발견된다.
[1] www.magmedia.com.au에서, 갑자기 접속 경로가 pixeltouchstudios.tk [2]로  “튀는” 것이다.
게다가 튀는 경로역시 일반적인 경로는 아닌 듯 하다.
스크린샷 2015-01-29 오전 12.45.22

[1]번 Conv_id 에 대한 Head / Body 를 분석해본 결과  gzip 형태로 압축되어 있으며,
ungzip 명령을 통해 압축된 개체를 풀면 [15]번에 새로운 객체가 생성된다.

body 명령어를 통해 15번 객체를 열면 자바스크립트 구문이 들어있는데,
내용이 너무 길어 어떤 기능이 들어있는지는 한번에 확인이 어렵다.

이 때,  iframes 명령어를 사용하게되면 자바스크립트내 포함되어 있는 <iframe> 태그를 별도로 추출할 수 있다.
실행 결과 위 그림과 같이 [2]번 URL (pixeltouchstudios.tk)이  들어가 있는 것을 확인할 수 있다.
따라서, [1]번 URL 접속 후, 내부에 포함된 iframe 태그에 의해 [2]번 주소 페이지가 열린 것이라 볼 수 있다.

Cap 2015-01-29 17-28-46-307

[2] 번 Conv_id를 head로 보면 [3]번 Host(grannityrektonaver.co.vu)로 302 Redirection 되었다.
[3]번 Conv_id를 dump 한 후 열어본 결과 다음과 화면과 같이 난독화 된 자바스크립트가 나타났다.

Cap 2015-01-29 17-31-42-246
지금까지의, 전체적인 흐름을 다시 한번 되짚어 보면,
[1] 1차 경유지 접속 후 iframe 태그 호출 –>
[2] 악성코드 유포지로 Redirection –>
[3] Exploit Kit 동작 순인것을 알 수 있다.

이제 Exploit-Kit 동작 후, 실제 다운로드 받은 파일들을 자세히 살펴보자.
Conv_id [8] 번과 [13]번의 SWF 파일에 대해 hexdump 를 실행한 결과는 다음과 같다.Cap 2015-01-29 17-52-40-637

13번 객체의 hexdump 값이 PK로 시작하는 것으로 볼 때 zip으로 압축된 파일임을 알 수 있다.
ziplist 명령을 사용하면 실제 객체에 포함되어 있는 zip파일 객체 목록을 추출할 수 있다.
다음 그림과 같이 dll 파일이 zip 파일 내 포함되어 있는 것을 확인할 수 있다.

Cap 2015-01-29 17-56-53-096

현재까지의 결과로 볼 때, 13번 객체가 Exploit을 유발했을 것으로 의심이 된다.
hashes 명령어를 통해 해당 객체의 해시값을 추출한 다음, Virustotal 를 통해 검색한 결과
다음과 같이 악성코드 진단 기록을 확인할 수 있었다.

Cap 2015-01-29 17-57-02-573

 

Case 02 : Gongda-EK 분석

http://malware-traffic-analysis.net/2014/12/13/2014-12-13-Gondad-EK-infection-traffic.pcap

Nuclear EK 에 이어 국내에 널리(?) 알려진 공다(Gongda) Exploit Kit 에 대해 분석해보도록 하자.
Case 01과 동일하게 CapTipper 로 Pcap 파일을 오픈한다.

Cap 2015-02-02 16-32-10-397

Cap 2015-02-02 17-54-53-480

이번에도 역시 [4] –> [5] 번 항목으로 “튀는” 현상이 발견된다.
body 명령을 통해 [4]번 객체의 내용을 확인해본다.

Cap 2015-02-02 18-01-17-088

“\x” 형태의 Ascii 문자들이 스크립트에 삽입되어 있으며, 이것을 문자열로 변환하면
다음 화면과 같이 [5]번 항목으로의 iframe이 설정된 것을 알 수 있다.

Cap 2015-02-04 13-29-04-078

결국 [5]번 까지는 Exploit-Kit 배포지로 연결하기 위한 과정이었으며,
실제 Exploit은 “comm.sansung.org” 사이트 ( [6]번 이후 ) 에서 실행됨을 알 수 있다.

[6]번 “index.html”을 덤프해보면, 난독화된 Gongada Exploit-Kit 코드가 삽입되어 있으며,
이 후, Exploit을 통해 추가적인 악성 파일들이 다운로드 되었다.

Exploit 유포지에서 다운 받은 jar 파일 [12번 항목] 에 대한 hashes 값으로
Virustotal 에 검색해 본 결과 Java Exploit임을 최종 확인하였다.
Cap 2015-02-04 13-44-07-172

Cap 2015-02-04 13-42-58-855

 

4. 활용 방안에 대하여

CapTipper는 Wireshark에 비해 제공되는 기능은 그리 많지 않다.
그러나, 악성 트래픽을 빠르고 효율적으로 분석하는데는 충분한 것으로 보인다.

특히 hosts / convs 명령어를 통해 사용자의 접속 흐름을 쉽고 빠르게 분석할 수 있는 것은
이 도구가 가진 가장 큰 장점이라 할 수 있다.

따라서, 침해사고 분석 또는 실시간 분석 시 악서 트래픽 경로를 신속하게 파악하는데
도움을 줄 수 있을 것으로 보인다.

끝으로, CapTipper 소스코드에는 파이썬에 Ansi 컬러를 입힐 수 있는 Colorama가 사용되었다 🙂

  • 물론 좀 더 심층 분석을 위해서는 wireshark 사용을 권장함을 밝힙니다 🙂

  • 장보미

    안녕하세요. 해당 글을 통해 CapTipper 및 패킷 분석을 공부하고 있는 학생입니다. 네트워크 및 패킷 분석 지식이 많이 부족하여 질문 드리니 도움 부탁 드리겠습니다.
    Case1) 객체1에서 2로 튄다는 말이 정확히 어떤 의미인가요?
    Case2) 객체1에서 2도 튄다고 할 수 있나요?

    • 안녕하세요.
      예를 들어 http://www.naver.com 에 접속한 상황이라고 가정을 해볼께요.
      그럼 대부분의 네트워크 트래픽에 잡힌 호스트(Host)명은 naver.com을 가리키고 있을겁니다.

      그런데 현재 케이스 1번과 2번의 경우는 특정 A 사이트에 접속했는데
      생뚱맞게 갑자기 B라는 사이트에서 특정 파일을 로드 한 것을 볼 수 있습니다.

      [1] http://www.magmedia.com.au에서, 갑자기 접속 경로가 pixeltouchstudios.tk [2]로 “튀는” 것이다.

      라고 표현되어 있는 것이 바로 이것을 설명하는 것입니다.
      [1]번 사이트에 접속했다면 해당 호스트에서 추가적인 파일들을 로드하는게 정상인데
      뜬금없이 [2]번 사이트를 갔다 오는 것은 뭔가 의심해볼만한 거리가 있다는 것이죠.

      물론 포털 사이트나 일반적인 커뮤니티 사이트의 경우
      광고 서버 (Ad Server) 에서 이미지들을 받아오는 것이 일반적입니다만.
      그렇지 않은 전혀 무관한 사이트로 부터 파일들을 받아온다면
      악성코드 유입을 의심해볼 수 있습니다.

      답변이 되셨는지요? ㅎㅎ

      • 장보미

        네~ 빠른 답변 감사드립니다.^^

Site Footer

Sliding Sidebar

About Me

About Me

June Park