
Исследователь вредоносного 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 — это инструмент на Python для анализа, изучения и восстановления вредоносного HTTP-трафика.
CapTipper запускает веб-сервер, который действует точно так же, как сервер в PCAP-файле,
и содержит внутренние инструменты с мощной интерактивной консолью для анализа и проверки найденных хостов, объектов и диалогов.
Инструмент предоставляет специалисту по безопасности лёгкий доступ к файлам и понимание сетевого потока,
и полезен при исследовании эксплойтов, предварительных условий, версий, обфускаций, плагинов и шелл-кодов.
При подаче CapTipper захвата трафика drive-by (например, эксплойт-кита) пользователю отображаются URI запросов и метаданные ответов.
Теперь пользователь может перейти по адресу http://127.0.0.1/[host]/[URI] и получить ответ в браузере.
Кроме того, запускается интерактивная оболочка для более глубокого исследования с помощью различных команд, таких как: hosts, hexdump, info, ungzip, body, client, dump и других...
Документация: http://captipper.readthedocs.org
Обновление от 02-Oct-2020:
CapTipper теперь поддерживает Python3 и доступен в следующей ветке: https://github.com/omriher/CapTipper/tree/python3_support

Usage: ./CapTipper.py <PCAP_file> [-p] [web_server_port=80]
Давайте проанализируем следующий PCAP заражения drive-by от Nuclear EK [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: Присвоенный идентификатор конкретного разговора
REQUEST URI: URI, отправленный серверу в GET-запросе
SERVER RESPONSE TYPE: Тип содержимого, возвращённый в заголовке ответа сервера
FILENAME: Имя файла может быть одним из следующих:
SIZE IN BYTES: Размер тела ответа
После инициализации происходят два события:
Интерпретатор содержит внутренние инструменты для дальнейшего исследования объектов в pcap-файле.
Открыть URI в браузере можно просто введя 'open' вместе с идентификатором объекта```sh CT> open 0 CT> log [2015-01-09T18:01:28.878000] 127.0.0.1 : GET / HTTP/1.1
* Ни одна из команд (кроме 'open') на самом деле не требует, чтобы сервер был запущен. Вы можете отключить сервер, введя 'server off' или добавив -s при вызове CapTipper.
Давайте посмотрим, что можно узнать, не используя браузер.
Сначала получим общий обзор трафика с помощью команды '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 (Traffic Distribution System).
Давайте рассмотрим подробнее.
Мы можем вывести заголовок и тело страницы, набрав '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 редирект на инфицирующий хост.
Таким образом, наша гипотеза, вероятно, была верна.