
悪意のある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 の悪意あるトラフィックを分析、探索、復元するための Python ツールです。 CapTipper は PCAP ファイル内のサーバとまったく同じ動作をする Web サーバをセットアップし、 検出されたホスト、オブジェクト、会話の分析と検査のための強力な対話コンソールと内部ツールを備えています。
このツールは、セキュリティ研究者がファイルに簡単にアクセスし、ネットワークフローを理解するのに役立ち、 エクスプロイト、前提条件、バージョン、難読化、プラグイン、シェルコードの調査に役立ちます。
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: サーバレスポンスヘッダで返されるcontent-type
FILENAME: ファイル名は以下のいずれかになります:
SIZE IN BYTES: レスポンスボディのサイズ
初期化後、以下の2つが行われます:
インタプリタには、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**でしたが、正確には何が私たちをリダイレクトしたのでしょうか?