Network Performance Monitoring (NPM) and Diagnostics | Application Performance Monitoring (APM) | Application-Aware Network Performance Monitoring (AA NPM) | Network Fault Management | Information Security | Network Security

Поиск и анализ хостов и пользователей в сетевом трафике при помощи WireShark

Поиск и анализ хостов и пользователей в сетевом трафике при помощи WireShark

Когда хост заражен или любым другим образом угрожает вашей информационной безопасности, сетевым специалистам необходимо быстро проанализировать захваченные пакеты подозрительного сетевого трафика (захваченные и хранящиеся в файлах с расширением «.pcap» библиотеки libpcap), чтобы оперативно идентифицировать затронутые угрозой хосты и пользователей. В рамках данного руководства мы подробно, используя практические примеры, расскажем вам, как получить необходимую вам информацию об интересующих вас хостах и пользователях с помощью самой популярной программы-анализатора сетевого трафика Wireshark.

Итак, данные, которые вы, скорее всего, захотите извлечь для этих целей из захваченного трафика IPv4, можно разделить на четыре типа:

  • Информация о хосте из трафика DHCP;
  • Информация о хосте из трафика NetBIOS Name Service (NBNS);
  • Модели и операционные системы устройств из трафика HTTP;
  • Учетная запись пользователя Windows из трафика Kerberos.

Информация о хосте из трафика DHCP

Любой хост, генерирующий трафик в вашей сети, должен иметь три идентификатора: MAC-адрес, IP-адрес и имя хоста.

В большинстве случаев оповещения о подозрительной активности основаны на IP-адресах. Если у вас есть доступ к полному захвату пакетов вашего сетевого трафика, то полученные pcap-файлы наряду с внутренним IP-адресом также будут содержать информацию о связанном MAC-адресе и имени хоста.

Как же нам добыть эту информацию, используя Wireshark? Для этого нам необходимо использовать фильтр по одному из видов сетевой активности: DHCP или NBNS. Трафик DHCP может помочь идентифицировать хосты практически для любого типа компьютеров, подключенных к вашей сети. Трафик NBNS генерируется в основном компьютерами под управлением Microsoft Windows или хостами Apple под управлением MacOS.

Первый тренировочный pcap-файл «host-and-user-ID-pcap-01.pcap» для нашего практического руководства доступен для скачивания по этой ссылке: https://www.malware-traffic-analysis.net/training/host-and-user-ID.html (все остальные файлы мы также берем отсюда). Он содержит информацию о трафике для внутреннего IP-адреса «172.16.1.207». Открыв pcap-файл в Wireshark и применив фильтр «bootp», как показано на рисунке 1, вы получите отображение трафика DHCP. Обратите внимание, что, если вы используете новую версию Wireshark 3.0, то в качестве поискового запроса вам следует использовать значение «dhcp» вместо «bootp».

Отфильтровываем трафик DHCP в Wireshark

Рисунок 1: Отфильтровываем трафик DHCP в Wireshark

Выберите один из пакетов, который обозначен как DHCP-запрос («DHCP Request») в информационном столбце. Перейдите в раздел с детальной информацией о пакете и разверните пункт меню «Bootstrap Protocol (Request)», как показано на рисунке 2. Необходимая нам информация находится в подпунктах «Client Identifier» и «Host Name», что проиллюстрировано на рисунке 3. В подробной информации об идентификаторе клиента должен быть указан MAC-адрес, соответствующий IP-адресу «172.16.1.207», ну а сведения об имени хоста должны, как следует из названия, откроют нам имя хоста.

Разворачиваем пункт меню «Bootstrap Protocol (Request)» для DHCP-запроса

Рисунок 2: Разворачиваем пункт меню «Bootstrap Protocol (Request)» для DHCP-запроса

 

Находим MAC-адрес и имя хоста в запросе DHCP

Рисунок 3: Находим MAC-адрес и имя хоста в запросе DHCP

В нашем практическом примере имя хоста для IP-адреса «172.16.1.207» — это «Rogers-iPad», а MAC-адрес — это «7c:6d:62:d2:e3:4f». Этот MAC-адрес зарегистрирован за корпорацией Apple, как производителя данного сетевого устройства. Судя по имени хоста, это устройство, скорее всего, является планшетом Apple iPad, но точно утверждать это, опираясь только на имя хоста, мы не можем.

Мы можем легко сопоставить MAC-адрес и IP-адрес для любого пакета с источником «172.16.1.207», как это показано на рисунке 4.

Сопоставление MAC-адреса с IP-адресом для любого пакета

Рисунок 4: Сопоставление MAC-адреса с IP-адресом для любого пакета

Информация о хосте из трафика NBNS

В зависимости от того, как часто обновляется аренда DHCP, у вас могут возникнуть осложнения с анализом трафика DHCP в захваченном вами pcap-файле. К счастью, мы можем использовать трафик NBNS для определения имени хоста для компьютеров под управлением Microsoft Windows или устройств Apple под управлением MacOS.

Второй pcap-файл «host-and-user-ID-pcap-02.pcap» для нашего практического руководства вы можете загрузить по ссылке, которую мы уже дали выше. Этот файл от хоста Windows, использующего внутренний IP-адрес «10.2.4.101». Откройте данный pcap-файл в Wireshark и используйте фильтр «nbns». Это действие должно показать вам трафик NBNS. Выбрав первый пакет, вы можете быстро и легко сопоставить IP-адрес с MAC-адресом и именем хоста, как это показано на рисунке 5.

Сопоставление имени хоста с IP-адресом и MAC-адресом, используя трафик NBNS

Рисунок 5: Сопоставление имени хоста с IP-адресом и MAC-адресом, используя трафик NBNS

В разделе с детальной информацией о пакете вы также можете найти имя хоста, соответствующее IP-адресу, как показано на рисунке 6.

Детальная информация о пакете для трафика NBNS, где вы можете найти имя хоста, соответствующее IP-адресу

Рисунок 6: Детальная информация о пакете для трафика NBNS, где вы можете найти имя хоста, соответствующее IP-адресу

 

Модели и операционные системы устройств из трафика HTTP

Текстовые строки User-agent из заголовков HTTP-трафика могут помочь определить операционную систему. А если HTTP-трафик поступает с устройства под управлением Android, вы также можете определить производителя и модель устройства.

Теперь скачиваем третий pcap-файл «host-and-user-ID-pcap-03.pcap». Он от хоста Windows, использующего внутренний IP-адрес «192.168.1.97». Откройте данный pcap-файл в Wireshark и используйте фильтр «http.request and !(ssdp)». Выберите второй пакет, который является первым HTTP-запросом к сайту «www.ucla.edu», задав опцию меню «Follow —> TCP stream», как показано на рисунке 7.

Выбор опции меню «Follow —> TCP stream» для HTTP-запроса

Рисунок 7: Выбор опции меню «Follow —> TCP stream» для HTTP-запроса

 

Собственно, опция «TCP stream» позволит увидеть заголовок HTTP-запроса, как вы можете убедиться, взглянув на картинку 8. В рассматриваемом нами примере строка «User-Agent» указывает на веб-браузер «Google Chrome версии 72.0.3626.81», работающий в операционной системе «Microsoft Windows 7 x64».

Строка User-Agent открывает, что хост находится под управлением операционной системы Windows 7 x64 и использует веб-браузер Google Chrome

Рисунок 8: Строка User-Agent открывает, что хост находится под управлением операционной системы Windows 7 x64 и использует веб-браузер Google Chrome

 

Обратите внимание на рисунке 8 на следующий фрагмент в строке User-Agent: «(Windows NT 6.1; Win64; x64)».

В данном случае фрагмент «Windows NT 6.1» соответствует Windows 7. Если же отойти от нашего практического примера и копнуть глубже, то используемые версии Windows NT для строк User-Agent имеют следующее соответствия привычным нам версиям Microsoft Windows:

  • Windows NT 5.1: Windows XP;
  • Windows NT 6.0: Windows Vista;
  • Windows NT 6.1: Windows 7;
  • Windows NT 6.2: Windows 8;
  • Windows NT 6.3: Windows 8.1;
  • Windows NT 10.0: Windows 10.

Таким образом, анализируя HTTP-трафик веб-браузера устройств под управлением Windows вы можете определить операционную систему и браузер.

Тот же тип трафика с Android-устройств поможет вам получить не только эти данные, но и идентифицировать название бренда и модель устройства. Как практически это сделать мы расскажем на примере использования четвертого pcap-файла «host-and-user-ID-pcap-04.pcap». Он содержит захваченный трафик с хоста Android, использующего внутренний IP-адрес «172.16.4.119». Открываем данный файл в Wireshark и используем фильтр «http.request». Выбираем второй пакет, который представляет собой HTTP-запрос к сайту www.google.com с атрибутом «/blank.html». Задаем опцию меню «Follow —> TCP stream», как показано на рисунке 9.

Выбор опции меню «Follow —> TCP stream» для HTTP-запроса при анализе трафика Android-устройства

Рисунок 9: Выбор опции меню «Follow —> TCP stream» для HTTP-запроса при анализе трафика Android-устройства

 

Строка User-Agent для хоста Android, использующего веб-браузер Google Chrome

Рисунок 10: Строка User-Agent для хоста Android, использующего веб-браузер Google Chrome

Строка User-Agent на рисунке 10 указывает нам на операционную систему Android относительно старой версии 7.1.2, выпущенную в апреле 2017 года. Ну а фраза «LM-X210APM» относится к номеру модели для этого Android-устройства. Быстрый поиск в Google позволяет нам идентифицировать, что данная модель является смартфоном LG Phoenix 4.

Однако, для смартфонов iPhone или любого другого мобильного устройства производства корпорации Apple строка User-Agent при анализе HTTP-трафика не будет столь информативной. Описанный в данном практическом руководстве способ позволит вам определить только операционную систему и тип устройства, но не его модель. Другими словами, мы сможем понять, является ли данное Apple-устройство iPhone, iPad или iPod без какой-либо большей конкретики.

Чтобы убедиться в этом на практике, протестируйте пятый pcap-файл «host-and-user-ID-pcap-05.pcap». Он содержит трафик, захваченный с устройства iPhone, использующего внутренний адрес «10.0.0.114». Откройте этот pcap-файл в Wireshark и отфильтруйте по «http.request». Выберете пакет первого по порядку HTTP-запроса к сайту «web.mta.Info» и задайте опцию меню «Follow —> TCP stream», как показано на рисунке 11.

Выбор опции меню «Follow —> TCP stream» для HTTP-запроса при анализе трафика Apple-устройства

Рисунок 11: Выбор опции меню «Follow —> TCP stream» для HTTP-запроса при анализе трафика Apple-устройства

Как можно увидеть на рисунке 12, найденный фрагмент строки User-Agent звучит так: «(iPhone; CPU iPhone OS 12_1_3 like Mac OS X)». Это указывает на то, что устройством Apple является смартфоном iPhone, и он работает под управлением iOS версии 12.1.3.

Строка User-Agent для iPhone, использующего веб-браузер Safari

Рисунок 12: Строка User-Agent для iPhone, использующего веб-браузер Safari

Закрывая часть, которая относится к использованию HTTP-трафика и строки User-Agent для получения информации о модели устройства и используемой им операционной системы, обращаем ваше внимание на то, что не вся активность HTTP является трафиком веб-браузера. Поэтому не все HTTP-запросы будут содержать необходимую вам информацию о браузере или операционной системе. Таким образом, при анализе трафика для идентификации хоста вам может потребоваться проверить несколько разных HTTP-запросов, прежде чем вы сможете обнаруживать трафик веб-браузера с искомой информацией.

Кроме того, все больше сайтов ориентируются на HTTPS, и поэтому использовать данный метод идентификации хоста становится все сложнее, так как заголовки и передаваемый контент HTTP не видны в трафике HTTPS. Тем не менее, тем, кому посчастливится захватить HTTP-трафик веб-браузера, именно этот метод сможет предоставить много интересной информации о хосте.

Учетная запись пользователя Windows из трафика Kerberos

Для хостов Windows в среде Active Directory (AD) мы можем найти имена учетных записей пользователей в трафике Kerberos.

Шестой и последний учебный pcap-файл - «host-and-user-ID-pcap-06.pcap». Он получен для хоста Windows в следующей доменной среде Active Directory:

  • Domain: happycraft.org;
  • Network segment: 172.16.8.0/24 (172.16.8.0 – 172.16.8.255);
  • Domain controller IP: 172.16.8.8;
  • Domain controller hostname: Happycraft-DC;
  • Segment gateway: 172.16.8.1;
  • Broadcast address: 172.16.8.255;
  • Windows client: 172.16.8.201.

Откройте данный pcap-файл в Wireshark и задайте фильтр «kerberos.CNameString». Выберите первый пакет. Перейдите в раздел с детальной информацией и разверните поочередно линейные пункты меню, как это показано на рисунке 13. Выберите строку «CNameString: johnson-pc$» и примените к ней опцию «Apply as Column».

Поиск значения «CNameString» и применение к нему опции «Apply as Column»

Рисунок 13: Поиск значения «CNameString» и применение к нему опции «Apply as Column»

Эта операция позволит вам создать новый столбец, озаглавленный «CNameString». Отсортируйте вывод информации по этому столбцу и прокрутите вниз до последних пакетов. Здесь, как показано на рисунке 14, в трафике между контроллером домена с IP-адресом «172.16.8.8» и клиентом Windows с IP-адресом «172.16.8.201» вы должны найти имя учетной записи пользователя «theresa.johnson».

Поиск имени учетной записи пользователя Windows

Рисунок 14: Поиск имени учетной записи пользователя Windows

Значения CNameString для имен хостов всегда заканчиваются символом «$» (знаком доллара), в то время как имена учетных записей пользователей — нет. Поэтому, чтобы отфильтровать имена пользователей и исключить результаты CNameString со знаком доллара, используйте следующее выражение в Wireshark: «kerberos.CNameString and !(kerberos.CNameString contains $)».

Заключение

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

 

Появились вопросы или нужна консультация? Обращайтесь!

Вечный параноик, Антон Кочуков.

Комментарии
Тут пока ничего нет, но Вы можете быть первым!
Авторизуйтесь для этого

См. также:
Заказать звонок

- Email
- Confirm
Имя *
Телефон *
Комментарий
Согласие на отправку персональных данных *

* - Обязательное для заполнения