
악성 HTTP 트래픽 탐색기

CapTipper v0.3: http://www.omriher.com/2015/08/captipper-v03-is-out.html
CapTipper v0.2: http://www.omriher.com/2015/03/captipper-02-released.html
CapTipper v0.1: http://www.omriher.com/2015/01/captipper-malicious-http-traffic.html
CapTipper는 악성 HTTP 트래픽을 분석, 탐색 및 재현하는 파이썬 도구입니다.
CapTipper는 PCAP 파일의 서버와 동일하게 동작하는 웹 서버를 설정하며, 강력한 대화형 콘솔과 함께 발견된 호스트, 개체 및 대화를 분석하고 검사하기 위한 내부 도구를 포함합니다.
이 도구는 보안 연구자에게 파일에 대한 쉬운 접근과 네트워크 흐름에 대한 이해를 제공하며, 익스플로잇, 사전 조건, 버전, 난독화, 플러그인 및 셸코드를 연구할 때 유용합니다.
CapTipper에 드라이브 바이 트래픽 캡처(예: 익스플로잇 킷)를 입력하면 전송된 요청 URI와 응답 메타데이터가 사용자에게 표시됩니다.
이 시점에서 사용자는 http://127.0.0.1/[host]/[URI]로 이동하여 브라우저에 응답을 받을 수 있습니다.
또한, hosts, hexdump, info, ungzip, body, client, dump 등 다양한 명령어를 사용하여 심층 조사를 위한 대화형 셸이 실행됩니다.
문서: http://captipper.readthedocs.org
2020년 10월 2일 업데이트:
CapTipper는 이제 Python3을 지원하며 다음 브랜치에서 찾을 수 있습니다: https://github.com/omriher/CapTipper/tree/python3_support

Usage: ./CapTipper.py <PCAP_file> [-p] [web_server_port=80]
다음 Nuclear EK 드라이브바이 감염 PCAP [2014-11-06-Nuclear-EK-traffic.pcap](http://malware-traffic-analysis.net/2014/11/06/2014-11-06-Nuclear-EK-traffic.pcap.zip)을 분석해 보겠습니다```sh
C:\CapTipper> CapTipper.py "C:\NuclearFiles\2014-11-06-Nuclear-EK-traffic.pcap"
CapTipper v0.1 - Malicious HTTP traffic explorer tool
Copyright 2015 Omri Herscovici <[email protected]>
[A] Analyzing PCAP: C:\NuclearFiles\2014-11-06-Nuclear-EK-traffic.pcap
[+] Traffic Activity Time: Thu, 11/06/14 17:02:35
[+] Conversations Found:
0: / -> text/html (0.html) [5509 B]
1: /wp-includes/js/jquery/jquery.js?ver=1.7.2 -> application/javascript (jquery.js) [39562 B]
2: /seedadmin17.html -> text/html (seedadmin17.html) [354 B]
3: /15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html -> text/html (15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html) [113149 B]
4: /wp-content/uploads/2014/01/MetroWest_COVER_Issue2_Feb2014.jpg -> image/jpeg (MetroWest_COVER_Issue2_Feb2014.jpg) [350008 B]
5: /images/footer/3000melbourne.png -> image/png (3000melbourne.png) [2965 B]
6: /images/footer/3207portmelbourne.png -> image/png (3207portmelbourne.png) [3092 B]
7: /wp-content/uploads/2012/09/background1.jpg -> image/jpeg (background1.jpg) [33112 B]
8: /00015d76d9b2rr9f/1415286120 -> application/octet-stream (00015d76.swf) [31579 B]
9: /00015d766423rr9f/1415286120 -> application/pdf (XykpdWhZZ2.pdf) [9940 B]
10: /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6 -> application/octet-stream (5.exe) [139264 B]
11: /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6;1 -> application/octet-stream (5.exe) [139264 B]
12: /00015d76rr9f/1415286120/7 -> application/octet-stream (7.exe) [139264 B]
13: /00015d761709rr9f/1415286120 -> application/octet-stream (00015d76.swf) [8064 B]
14: /00015d76rr9f/1415286120/8 -> application/octet-stream (8.exe) [139264 B]
[+] Started Web Server on http://localhost:80
[+] Listening to requests...
CapTipper Interpreter
Type 'open <conversation id>' to open address in browser
type 'hosts' to view traffic flow
Type 'help' for more options
CT>
초기화는 클라이언트와 서버 간에 발견된 대화를 다음 형식으로 출력합니다:
[ID] : REQUEST URI -> SERVER RESPONSE TYPE (FILENAME) [SIZE IN BYTES]
ID: 특정 대화에 할당된 ID
REQUEST URI: GET 요청에서 서버로 전송된 URI
SERVER RESPONSE TYPE: 서버 응답 헤더에서 반환된 콘텐츠 유형
FILENAME: 파일 이름은 다음 중 하나일 수 있습니다:
SIZE IN BYTES: 응답 본문 크기
초기화 후에 두 가지가 발생합니다:
인터프리터에는 pcap의 객체를 추가로 조사하기 위한 내부 도구가 포함되어 있습니다.
브라우저에서 URI를 열려면 객체 id와 함께 'open'을 입력하기만 하면 됩니다.```sh CT> open 0 CT> log [2015-01-09T18:01:28.878000] 127.0.0.1 : GET / HTTP/1.1
* 명령들 중 어느 것도 ('open' 제외) 서버가 실행 중일 필요는 없습니다. 'server off'를 입력하거나 CapTipper 실행 시 -s를 추가하여 서버를 끌 수 있습니다.
이제 브라우저를 사용하지 않고 무엇을 알 수 있는지 살펴보겠습니다.
먼저 'hosts' 명령을 사용하여 트래픽을 조감해 보겠습니다.```sh
CT> hosts
Found Hosts:
www.magmedia.com.au
├-- / [0]
├-- /wp-includes/js/jquery/jquery.js?ver=1.7.2 [1]
├-- /wp-content/uploads/2014/01/MetroWest_COVER_Issue2_Feb2014.jpg [4]
├-- /images/footer/3000melbourne.png [5]
├-- /images/footer/3207portmelbourne.png [6]
└-- /wp-content/uploads/2012/09/background1.jpg [7]
pixeltouchstudios.tk
└-- /seedadmin17.html [2]
grannityrektonaver.co.vu
├-- /15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html [3]
├-- /00015d76d9b2rr9f/1415286120 [8]
├-- /00015d766423rr9f/1415286120 [9]
├-- /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6 [10]
├-- /00015d76rr9f/1415286120/5/x00809070554515d565b010b03510053535c0505;1;6;1 [11]
├-- /00015d76rr9f/1415286120/7 [12]
├-- /00015d761709rr9f/1415286120 [13]
└-- /00015d76rr9f/1415286120/8 [14]
**www.magmedia.com.au**이 손상된 사이트인 것으로 보입니다.
이 정보와 대화 목록에서 얻은 파일 유형을 교차 비교해 보면, grannityrektonaver.co.vu가 감염 호스트인 것으로 보입니다.
그렇다면 pixeltouchstudios.tk는 무엇일까요?
익스플로잇 킷이 일반적으로 작동하는 방식을 고려하면, 이는 아마 TDS(트래픽 분산 시스템) 서버일 것입니다.
자세히 살펴보겠습니다.
'head'와 'body'를 입력하여 페이지의 헤더와 본문을 출력할 수 있습니다:```sh CT> head 2 Displaying header of object 2 (seedadmin17.html):
HTTP/1.1 302 Found Server: nginx Date: Thu, 06 Nov 2014 15:02:38 GMT Content-Type: text/html; charset=iso-8859-1 Content-Length: 354 Connection: keep-alive Set-Cookie: ehihm=YocADE3AAIAAgCvjVtU_.vjVtUQAABAAAAr41bVAA-; expires=Fri, 06-Nov-2015 15:03:11 GMT; path=/; domain=pixeltouchstudios.tk Location: http://grannityrektonaver.co.vu/15c0b14drr9f_1_08282d03fb0251bbd75ff6dc6e317bd9.html
CT> body 2 Displaying body of object 2 (seedadmin17.html) [256 bytes]:
302 FoundThe document has moved here.
객체 2가 감염 호스트로 302 리디렉션을 반환하는 것을 확인할 수 있습니다. 따라서 가설이 아마도 맞았을 것입니다.
info를 입력하여 객체 2에 대한 추가 정보를 얻어 보겠습니다.```sh
CT> info 2
Info of conversation 2:
SERVER IP : 108.61.196.84:80 HOST : pixeltouchstudios.tk URI : /seedadmin17.html REFERER : http://www.magmedia.com.au/ RESULT NUM : 302 Found RESULT TYPE : text/html FILE NAME : seedadmin17.html LENGTH : 354 B
그 페이지로의 리퍼러는 물론 **magmedia.co.au**였지만, 정확히 무엇이 우리를 리디렉션했을까요?