Выясняем, кто поселился в вашей сети

vaspvort

Ночной дозор
Команда форума
Модератор
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
Private Club
Старожил
Migalki Club
Меценат💎
Регистрация
10/4/18
Сообщения
5.894
Репутация
11.168
Реакции
16.851
USD
0
Сделок через гаранта
18
сегодня мы осветим очень злободневную тему – выявление подозрительных активностей в трафике. Мы не будем говорить о каких-то специализированных решениях, типа IDS/IPS, а вместо этого рассмотрим основные принципы выявления подозрительных действий что называется вручную.

Наша задача будет состоять в том, чтобы самостоятельно, используя только Wireshark проанализировать образцы трафика и выявить в нем подозрительную активность для последующей настройки средств защиты.

Wireshark можно загрузить c , либо установить с помощью менеджера пакетов.

HTTPS не проблема​

Шифрование TLS сейчас стало стандартом де факто при передаче трафика по сети. Если в прежние времена в дампе трафика можно было встретить незашифрованный HTTP, то сейчас такое практически невозможно. Большинство веб-сайтов используют защищенный протокол Hypertext Transfer Protocol Secure (HTTPS). Но, как и большинство веб-сайтов, различные типы вредоносного ПО также используют HTTPS. Так нам необходимо понять, что произошло на основе дампа, нужно получить трафик в расшифрованном виде. Поэтому, для начала нам нужно расшифровать HTTPS.

Так как мы находимся на стороне защитников, у нас есть административный доступ на все пользовательские машины, и мы можем включить журналирование сессионных ключей в файл. Далее в этой статье мы будем рассматривать ОС Windows, так как она больше всего подвержена атакам вредоносов, по крайней мере среди десктопных систем.

Для того, чтобы включить журналирование ключей, необходимо перейти в раздел Панель управления → Система и безопасность → Система. На вкладке «Дополнительные параметры системы» нажимаем кнопку «Переменные среды».

bd82a14cc7d781900e1471c8f64fa95e.png

Далее в разделе "Переменные среды" для пользователя необходимо добавить переменную SSLKEYLOGFILE и указать в качестве значения полный путь и имя файла, в котором будут сохраняться ключи.

c118bfe443b7cede6a8683dc788e37da.png

В нашем случае ОС Windows 10 Pro 19045.5737 и этот способ сработал. Однако, если у вас не получилось запустить логирование, то в качестве альтернативы можно попробовать воспользоваться Powershell.

[Environment]::SetEnvironmentVariable("SSLKEYLOGFILE", "c:\Temp\sslkeylog.txt", "User1")

В Linux для выполнения той же задачи просто выполним:

export SSLKEYLOGFILE=/путь/к/файлу/sslkeylog.log

Теперь мы можем смело приступать к сбору трафика, так как с помощью файла журнала ключей мы можем расшифровать HTTPS-активность в pcap и просмотреть ее содержимое.

Получаем артефакт​

Рассмотрим первый случай: пользователь получил письмо со ссылкой и нажав на эту ссылку загрузил и автоматически выполнил на своей машине вредоносный файл, в результате чего машина была заражена. Нам необходимо получить образец данного вредоноса (артефакт) в изначальном виде, до того, как он был запущен для того, чтобы затем принять защитные меры. Например, если антивирус пропустил этот файл, то передать его в антивирусную компанию для анализа.

У нас имеется дамп трафика и журнал с ключами. Сначала нам необходимо подгрузить в Wireshark файл с ключами. Для этого выберем Edit → Preferences… → Protocols и в списке укажем TLS.

Далее необходимо подгрузить файл с журналом ключей:

6698f54f9b383f25488f6c6f3564684b.png

Теперь все готово к работе с дампом трафика. После открытия файла мы видим множество различных пакетов. Прежде всего нужно немного настроить Wireshark под наши задачи. В частности, уберем столбцы с МАС адресами отправителя и получателя, так как они нам сейчас не нужны. Для этого выбираем название каждого из ненужных столбцов и далее указываем Remove this Column.

3003f347b8e8517bf961c33d32b9cd84.png

Также неплохо было бы включить разрешение доменных имен для сетевых адресов. Для этого выберем View → Name resolution → Resolve Network Addresses. Также, при необходимости можно указать нужный формат времени также во вкладке View → Time Display Format.

Теперь необходимо отфильтровать только те пакеты, которые нас интересуют. Нам нужно найти пакеты с запросами HTTP или рукопожатия TLS так как именно с этих пакетов начинаются сессии. И на всякий случай уберем SSDP (Simple Service Discovery Protocol) пакеты, так как они будут только засорять наш вывод.

В итоге укажем следующий фильтр:

(http.request or tls.handshake.type eq 1) and !(ssdp)

В итоге для моего примера получилась следующая картина:

ec1b9a285743734de4e5498cdbe2766e.png

Как видно в дампе сайтов не так много и каждый из них можно проверить, например с помощью всем известного ресурса . Например, представленный в дампе ресурс некоторые антивирусные вендоры определили, как вредоносный или фишинговый.

f78efb61b38379f5f2ab8fa794092c3c.png

Давайте посмотрим, что было передано во время сессии с этим сайтом. Для этого выберем первый пакет и нажав правую кнопку мыши укажем Follow → TLS Stream.

Как видно, все оказалось довольно скучно: всего лишь ошибка 502 Bad Gateway.

d634d1c93968fd549e8e857e00dc6a59.png

Посмотрим следующий ресурс . Этот сайт сочло подозрительным даже меньшее число антивирусных вендоров, правда среди них есть Kaspersky, что наводит на некоторые мысли.

1f7cc9dd6f46f96f9c0c8027b4d8d2d2.png

Давайте также посмотрим TLS сессию. Здесь в самом начале мы видим кое-что интересное.

00f2183150d8a76554eab3947ada95ff.png

В первом GET запросе мы запрашиваем файл invest_20.dll и как видно далее, его получаем, так как первые два байта MZ это заголовок PE-формата выполнимых файлов Windows. Ну и всем известное предупреждение про невозможность запуска в режиме DOS! Очевидно, что перед нами выполнимый файл, который пользователь загрузил себе на машину. Давайте извлечем его из дампа.

Для этого выберем Export Objects → HTTP.

0e659f463d85b41e40378edb7e83e2f9.png

Сейчас самое время предупредить читателя о том, что эксперименты с подозрительными файлами под Windows лучше всего проводить под Linux, чтобы случайно не запустить опасный файл.

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

Ищем активность в LDAP​

Разобравшись с простым примером загрузки вредоносного файла, давайте усложним нашу задачу. Теперь нам известен только IP адрес скомпрометированного узла и необходимо узнать что это за узел и как его собственно взломали..

Итак, нам известен только адрес клиентской машины 10.8.15.133, также известно, что эта машина входит в состав домена Active Directory. И собственно все. Однако, для того, чтобы разобраться в том, что происходило в сети одного адреса как правило бывает недостаточно, поэтому хорошо было бы узнать имя узла и имя пользователя, который на нем работал. Начнем с имени узла.

Для того, чтобы найти имя зараженного узла можно отфильтровать пакеты NetBios в Wireshark, по адресу 10.8.15.133. Для этого воспользуемся фильтром nbns.

61be658bbe57a947cbc4ddb2866fca5a.png

Как уже было сказано чуть выше, наша машина входит в домен AD. Соответственно для того, чтобы узнать имя пользователя воспользуемся поиском пакетов по протоколу Kerberos.

Искать будем по фильтру:

Kerberos.CNameString

Для удобства можно добавить отдельный столбец в Wireshark, в котором будет отображаться значение CNAME. Для этого выберем один из найденных пакетов, укажем в нем поле Kerberos → Cname → Name и нажав правую кнопку мыши, выберем Apply as Column.

2b2f945750a68ceb57212978bff16b32.png

Теперь мы можем найти имя учетной записи пользователя Windows plucero, связанное с 10.8.15.133. Помимо логина мы можем извлечь из трафика имеющуюся в AD информацию об имени и фамилии данного пользователя.

Для этого нам потребуется следующий фильтр:

ldap.AttributeDescription == «givenName»

269bfe7ce9c068ed8d72a34a924472f4.png

Часть нашей задачи мы решили: узнали кто и когда работал с этой машины. Теперь попробуем выяснить каким образом произошла компрометация. Здесь мы воспользуемся уже рассмотренными ранее способами.

Начнем с экспорта файлов из дампа. Как видно, Wireshark предлагает нам экспортировать большое количество различных данных.

cd904c08ef94de557746e893363797a6.png

Проверка на Virustotal показала, что 72.5.43.29 и могут представлять определенную опасность. Мы можем экспортировать zip-архив с сайта и DLL с сайта 72.5.43.29, используя уже знакомый нам путь меню Файл → Экспорт объекта → HTTP....

Имя zip-архива содержится в заголовках HTTP-ответа, которые можно увидеть, проследив за TCP или HTTP-потоком данного конкретного HTTP GET-запроса.

899a460d3c9f24023d16f46720650f77.png

Этот zip-архив содержит .js-файл. Если дважды щелкнуть (в песочнице!) по распакованному файлу .js на уязвимом хосте, Windows он будет выполнен с помощью wscript.exe.

Если мы проследим поток TCP для первого HTTP GET-запроса к 72.5.43.29, мы увидим признаки передачи выполнимого файла, а для того, чтобы определить, является ли это EXE или DLL, воспользуемся командой file из дистрибутива Linux.

1604170452e974d6575e3fd682972d85.png

Анализ на VirusTotal для этой DLL показал много интересных срабатываний.

0431702d8af5aabcefbeb572b2842706.png

В результате чего мы можем сделать выводы о том, какое вредоносное ПО использовалось и откуда оно было загружено.

Тренируемся на кошках​

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

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

Подведем итоги​

С помощью анализа дампов сетевого трафика можно получить массу полезной информации об активности вредоносов в сети. Мы можем узнать, когда, с каких ресурсов и каким пользователем был загружен тот или иной вредоносный файл. При этом нам не требуется большое количество инструментов, достаточно анализатора Wireshark и штатных команд операционной системы.

В этой статье мы подробно рассмотрели использование Wireshark для анализа дампа трафика и выявления в нем подозрительной активности. Надеемся, что этот материал был полезен и интересен для читателя.

 
  • Теги
    http linux windows информационная безопасность сети
  • Назад
    Сверху Снизу