vaspvort
Ночной дозор
Команда форума
Модератор
ПРОВЕРЕННЫЙ ПРОДАВЕЦ
Private Club
Старожил
Migalki Club
Меценат💎
сегодня мы осветим очень злободневную тему – выявление подозрительных активностей в трафике. Мы не будем говорить о каких-то специализированных решениях, типа IDS/IPS, а вместо этого рассмотрим основные принципы выявления подозрительных действий что называется вручную.
Наша задача будет состоять в том, чтобы самостоятельно, используя только Wireshark проанализировать образцы трафика и выявить в нем подозрительную активность для последующей настройки средств защиты.
Wireshark можно загрузить c
Так как мы находимся на стороне защитников, у нас есть административный доступ на все пользовательские машины, и мы можем включить журналирование сессионных ключей в файл. Далее в этой статье мы будем рассматривать ОС Windows, так как она больше всего подвержена атакам вредоносов, по крайней мере среди десктопных систем.
Для того, чтобы включить журналирование ключей, необходимо перейти в раздел Панель управления → Система и безопасность → Система. На вкладке «Дополнительные параметры системы» нажимаем кнопку «Переменные среды».
Далее в разделе "Переменные среды" для пользователя необходимо добавить переменную SSLKEYLOGFILE и указать в качестве значения полный путь и имя файла, в котором будут сохраняться ключи.
В нашем случае ОС 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.
Далее необходимо подгрузить файл с журналом ключей:
Теперь все готово к работе с дампом трафика. После открытия файла мы видим множество различных пакетов. Прежде всего нужно немного настроить Wireshark под наши задачи. В частности, уберем столбцы с МАС адресами отправителя и получателя, так как они нам сейчас не нужны. Для этого выбираем название каждого из ненужных столбцов и далее указываем Remove this Column.
Также неплохо было бы включить разрешение доменных имен для сетевых адресов. Для этого выберем 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)
В итоге для моего примера получилась следующая картина:
Как видно в дампе сайтов не так много и каждый из них можно проверить, например с помощью всем известного ресурса
Давайте посмотрим, что было передано во время сессии с этим сайтом. Для этого выберем первый пакет и нажав правую кнопку мыши укажем Follow → TLS Stream.
Как видно, все оказалось довольно скучно: всего лишь ошибка 502 Bad Gateway.
Посмотрим следующий ресурс
Давайте также посмотрим TLS сессию. Здесь в самом начале мы видим кое-что интересное.
В первом GET запросе мы запрашиваем файл invest_20.dll и как видно далее, его получаем, так как первые два байта MZ это заголовок PE-формата выполнимых файлов Windows. Ну и всем известное предупреждение про невозможность запуска в режиме DOS! Очевидно, что перед нами выполнимый файл, который пользователь загрузил себе на машину. Давайте извлечем его из дампа.
Для этого выберем Export Objects → HTTP.
Сейчас самое время предупредить читателя о том, что эксперименты с подозрительными файлами под Windows лучше всего проводить под Linux, чтобы случайно не запустить опасный файл.
Далее нажимаем Save и сохраняем интересующий нас файл на диск. После этого его можно: отправить на анализ разработчикам антивируса, отреверсить самостоятельно в песочнице. Для остальных веб ресурсов, представленных в дампе также можно провести подобные проверки, но это легальные сайты и на них нет ничего подозрительного.
Итак, нам известен только адрес клиентской машины 10.8.15.133, также известно, что эта машина входит в состав домена Active Directory. И собственно все. Однако, для того, чтобы разобраться в том, что происходило в сети одного адреса как правило бывает недостаточно, поэтому хорошо было бы узнать имя узла и имя пользователя, который на нем работал. Начнем с имени узла.
Для того, чтобы найти имя зараженного узла можно отфильтровать пакеты NetBios в Wireshark, по адресу 10.8.15.133. Для этого воспользуемся фильтром nbns.
Как уже было сказано чуть выше, наша машина входит в домен AD. Соответственно для того, чтобы узнать имя пользователя воспользуемся поиском пакетов по протоколу Kerberos.
Искать будем по фильтру:
Kerberos.CNameString
Для удобства можно добавить отдельный столбец в Wireshark, в котором будет отображаться значение CNAME. Для этого выберем один из найденных пакетов, укажем в нем поле Kerberos → Cname → Name и нажав правую кнопку мыши, выберем Apply as Column.
Теперь мы можем найти имя учетной записи пользователя Windows plucero, связанное с 10.8.15.133. Помимо логина мы можем извлечь из трафика имеющуюся в AD информацию об имени и фамилии данного пользователя.
Для этого нам потребуется следующий фильтр:
ldap.AttributeDescription == «givenName»
Часть нашей задачи мы решили: узнали кто и когда работал с этой машины. Теперь попробуем выяснить каким образом произошла компрометация. Здесь мы воспользуемся уже рассмотренными ранее способами.
Начнем с экспорта файлов из дампа. Как видно, Wireshark предлагает нам экспортировать большое количество различных данных.
Проверка на Virustotal показала, что 72.5.43.29 и
Имя zip-архива содержится в заголовках HTTP-ответа, которые можно увидеть, проследив за TCP или HTTP-потоком данного конкретного HTTP GET-запроса.
Этот zip-архив содержит .js-файл. Если дважды щелкнуть (в песочнице!) по распакованному файлу .js на уязвимом хосте, Windows он будет выполнен с помощью wscript.exe.
Если мы проследим поток TCP для первого HTTP GET-запроса к 72.5.43.29, мы увидим признаки передачи выполнимого файла, а для того, чтобы определить, является ли это EXE или DLL, воспользуемся командой file из дистрибутива Linux.
Анализ на VirusTotal для этой DLL показал много интересных срабатываний.
В результате чего мы можем сделать выводы о том, какое вредоносное ПО использовалось и откуда оно было загружено.
Также посмотреть дампы трафика можно на
В этой статье мы подробно рассмотрели использование Wireshark для анализа дампа трафика и выявления в нем подозрительной активности. Надеемся, что этот материал был полезен и интересен для читателя.
Наша задача будет состоять в том, чтобы самостоятельно, используя только Wireshark проанализировать образцы трафика и выявить в нем подозрительную активность для последующей настройки средств защиты.
Wireshark можно загрузить c
Для просмотра ссылки необходимо нажать
Вход или Регистрация
, либо установить с помощью менеджера пакетов.HTTPS не проблема
Шифрование TLS сейчас стало стандартом де факто при передаче трафика по сети. Если в прежние времена в дампе трафика можно было встретить незашифрованный HTTP, то сейчас такое практически невозможно. Большинство веб-сайтов используют защищенный протокол Hypertext Transfer Protocol Secure (HTTPS). Но, как и большинство веб-сайтов, различные типы вредоносного ПО также используют HTTPS. Так нам необходимо понять, что произошло на основе дампа, нужно получить трафик в расшифрованном виде. Поэтому, для начала нам нужно расшифровать HTTPS.Так как мы находимся на стороне защитников, у нас есть административный доступ на все пользовательские машины, и мы можем включить журналирование сессионных ключей в файл. Далее в этой статье мы будем рассматривать ОС Windows, так как она больше всего подвержена атакам вредоносов, по крайней мере среди десктопных систем.
Для того, чтобы включить журналирование ключей, необходимо перейти в раздел Панель управления → Система и безопасность → Система. На вкладке «Дополнительные параметры системы» нажимаем кнопку «Переменные среды».

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

В нашем случае ОС 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.
Далее необходимо подгрузить файл с журналом ключей:

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

Также неплохо было бы включить разрешение доменных имен для сетевых адресов. Для этого выберем 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)
В итоге для моего примера получилась следующая картина:

Как видно в дампе сайтов не так много и каждый из них можно проверить, например с помощью всем известного ресурса
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. Например, представленный в дампе ресурс
Для просмотра ссылки необходимо нажать
Вход или Регистрация
некоторые антивирусные вендоры определили, как вредоносный или фишинговый.
Давайте посмотрим, что было передано во время сессии с этим сайтом. Для этого выберем первый пакет и нажав правую кнопку мыши укажем Follow → TLS Stream.
Как видно, все оказалось довольно скучно: всего лишь ошибка 502 Bad Gateway.

Посмотрим следующий ресурс
Для просмотра ссылки необходимо нажать
Вход или Регистрация
. Этот сайт сочло подозрительным даже меньшее число антивирусных вендоров, правда среди них есть Kaspersky, что наводит на некоторые мысли.
Давайте также посмотрим TLS сессию. Здесь в самом начале мы видим кое-что интересное.

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

Сейчас самое время предупредить читателя о том, что эксперименты с подозрительными файлами под Windows лучше всего проводить под Linux, чтобы случайно не запустить опасный файл.
Далее нажимаем Save и сохраняем интересующий нас файл на диск. После этого его можно: отправить на анализ разработчикам антивируса, отреверсить самостоятельно в песочнице. Для остальных веб ресурсов, представленных в дампе также можно провести подобные проверки, но это легальные сайты и на них нет ничего подозрительного.
Ищем активность в LDAP
Разобравшись с простым примером загрузки вредоносного файла, давайте усложним нашу задачу. Теперь нам известен только IP адрес скомпрометированного узла и необходимо узнать что это за узел и как его собственно взломали..Итак, нам известен только адрес клиентской машины 10.8.15.133, также известно, что эта машина входит в состав домена Active Directory. И собственно все. Однако, для того, чтобы разобраться в том, что происходило в сети одного адреса как правило бывает недостаточно, поэтому хорошо было бы узнать имя узла и имя пользователя, который на нем работал. Начнем с имени узла.
Для того, чтобы найти имя зараженного узла можно отфильтровать пакеты NetBios в Wireshark, по адресу 10.8.15.133. Для этого воспользуемся фильтром nbns.

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

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

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

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

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

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

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