Как стать автором
Поиск
Написать публикацию
Обновить
605.78
OTUS
Развиваем технологии, обучая их создателей

Исследование сетевого трафика

Время на прочтение4 мин
Количество просмотров13K

Специально для будущих студентов курса «Network engineer. Basic» наш эксперт - Александр Колесников подготовил интересный авторский материал.

Также приглашаем принять участие в открытом онлайн-уроке на тему «STP. Что? Зачем? Почему?». Участники урока вместе с экспертом рассмотрят протокол STP, разберут логику его работы, разберут его преимущества и недостатки.


Статья расскажет, как можно работать с сетевым трафиком. На примере нескольких дампов сетевого трафика будет разобрана работа нескольких полезных инструментов, показаны подходы к извлечению и сборке информации из трафика.

Инструментарий и методика исследования

Для разбора трафиков будем использовать следующее программное обеспечение:

Все инструменты не нуждаются в особенно развернутом представлении, так как являются единственными в своем роде бесплатными решениями для работы с трафиком. Первые два tshark и wireshark вообще предоставляются в составе одного и того же решения. Оба инструмента позволяют выполнять запись и разбор трафика с точки зрения статистики, передаваемых данных и структурах протокола.

Попробуем использовать эти инструменты на записанных сетевых трафиках. Все трафики взяты из различных ресурсов и собраны вот здесь, поэтому читатель при желании может самостоятельно провести их анализ по инструкциям из статьи.

Disclamer: Все файлы трафиков взяты из различных соревнований CTF, все права на задания принадлежат их авторам.

Для исследования трафиков будем придерживаться минимальной стратегии:

  1. Определить количество участников сети;

  2. Определить стек используемых протоколов;

  3. На основании пункта 2 принять решение искать данные по убыванию популярности использования трафика;

  4. Если выясняется, что данные, которые передаются в трафике, не были обработаны дополнительным кодированием, то применять фильтр по тексту.

Примеры разбора трафика

Первое задание для разбора:

1.pcap(9cd84b46fee506dae818ecdca76607d1). Задача — найти данные, которые будут содержать информацию видаFLAG-???????????. Приступим к разбору. Пройдемся по методике, которую описали в прошлом пункте:

Количество участников в сети очень просто определить при помощи WireShark (Всё, что описано для этого инструмента, можно повторить и на tshark. Автор использует WireShark для наглядности). В опциях WireShrak выбираем "Statistics->Endpoints":

Итого у нас 8 уникальных IP адресов, которые участвовали во взаимодействии. Определим стек протоколов. Сделать это можно в том же самом меню "Statistics->Protocol Hierarchy":

Итак, самый популярный протокол взаимодействия — http. Этот протокол внутри файла pcap хранится в текстовом представлении поэтому можно попробовать показать все данные из body пересылаемых данных и отфильтровать данные по формату искомой строки. Попробуем это сделать с помощью tshark. Команда для фильтра будет выглядеть так:

 tshark -r ./1.pcap -Y http -Tfields -e http.file_data | grep "FLAG"

В результате получаем результат:

Второй файл для исследования — 2.pcap (9a67e1fb9e529b7acfc6e91db6e1b092). Проведем этапы исследования. Количество участников взаимодействия:

В этом случае участников 13 — задание усложняется. Какие протоколы используются:

К сожалению, в этот раз всё не так просто с используемыми протоколами для передачи данных. Среди информации пересылаемой через tcp протокол ничего интересного для нашего задания не встретилось. В udp же попалось кое-что интересное:

tshark -r ./2.pcap -Y 'dns' 

Однако, если обратить внимание на резолв локальных адресов через dns, то мы можем обнаружить вот такую картину:

Странная часть ip адреса, которая очень похожа на какие-то кодированные шестнадцатеричные символы. Попробуем их провести через кодировку:

tshark -r ./2.pcap -Y '!icmp.code && dns.qry.name contains 192.168' -Tfields -e 
dns.qry.name | tr '.' ' ' |awk '{print $1}' |xxd -r

Полученная строка очень похожа на base64 кодировку, раскодируем:

base64 -D <<< 
"VGhpcyBpcyBhIHNlY3JldCB0Y3JldCB0cmFuc21pdHRlZCB0aHJvdWdoaHJvdWdoIGRucyBxdWVyeSA6KSBGTEFHKSBGTEFHLUZUNDdjTVgyNnBXeUZTSTZSeUZTSTZSUFdhU3I1WVJ3"

В итоге:

В качестве целевого сетевого трафика будем использовать 3.pcap(0e66830db52ad51971d40c77fa5b02c0). Проанализируем количество участников взаимодействия и статистику используемых протоколов:

Похоже, что в этот раз протоколов меньше, но вариантов куда спрятать данные — больше. Попробуем отфильтровать данные по протоколу http.

tshark -r ./3.pcap -Y http

Самые интересные строки находятся в конце записанного трафика, это запросы http к файлам "flag.zip" и "secret.txt". Сдампим их через Wireshark и попробуем открыть:

Попробуем сдампить файл, который называется flag.zip через WireShark. Стандартным интерфейсом это сделать не получится, поэтому придется сделать небольшой хак — сохранить данные в Raw формате:

Открываем с уже найденным паролем:

Похоже, что файл поврежден в нем нет части, которая содержит необходимую нам информацию. Спустя время, если отфильтровать по потокам, которые есть в tcp, можно натолкнуться на части фрагменты архивов:

Сохраним дамп этого потока и вырежем с помощью простой программы фрагмент архива:

python 
 data = []
 with open('dump') as f:
     data = f.read()
     
with open('tesst.zip','w') as w:
    w.write(data[1010788:])

Пробуем распаковать:

7z x ./test.zip

Похоже, что часть данных недоступна, но мы смогли восстановить файл flag.txt

Описанная методика может позволить извлекать информацию из записанных сетевых данных. В качестве закрепления материала, предлагаем читателю найти данные в трафике 4.pcap(604bbac867a6e197972230019fb34b2e).


Узнать подробнее о курсе «Network engineer. Basic».

Зарегистрироваться на вебинар по теме «STP. Что? Зачем? Почему?».


Читать ещё:

Теги:
Хабы:
Всего голосов 7: ↑6 и ↓1+6
Комментарии2

Публикации

Информация

Сайт
otus.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия
Представитель
OTUS