Привет цифровым детективам!

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

Первое что можно узнать это сведения о сетевых интерфейсах и их параметрах, которые крайний раз были заданы для них (IP, маска, шлюз, если использовался DHCP, информация о самом интерфейса). Всё это расположено в нескольких местах реестра Windows.

Рассмотрим расположение: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}.

Интересный факт, что имя ключа {4d36e972-e325-11ce-bfc1-08002be10318} скорее всего является GUID идентификатором для категории устройств Network Adapter (все GUID, по описанию MS используются в драйверах и системных компонентах). Каждый подключ в этом расположении реестра относится к отдельному интерфейсу, имя подключа это уникальный в рамках системы идентификатор интерфейса (этот идентификатор будет встречаться и в других местах реестра). Параметры подключей и их назначение:

  • Name - имя интерфейса.

  • PnPInstanceId - Windows Plug and Play идентификатор устройства.

  • MediaSubType - тип подключения, для WiFi это всегда значение dword 00000002, для локального проводного подключения значение обычно dword 00000001.

  • ShowIcon - скорее всего это необходимо системе для понимания необходимо ли отображать значок адаптера в taskbar или нет.

Второе расположение в реестре: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\.
Часть имён подключей соответствует именам подключей из первого расположения. Параметры подключей и их назначение:

  • AddressType - скорее всего обозначает тип протокола IPv4/IPv6.

  • EnableDHCP - если стоит 1, то параметры интерфейса были получены по DHCP.

  • DhcpServer - адрес DHCP сервера.

  • DhcpIPAddress - адрес полученный от DHCP сервера.

  • DhcpSubnetMask - маска сети полученная от DHCP сервера.

  • DhcpSubnetMaskOpt - маска сети полученная от DHCP сервера, прежде чем применить полученное значение к DhcpSubnetMask оно записывается в DhcpSubnetMaskOpt.

  • DhcpDefaultGateway - шлюз по умолчанию полученный от DHCP.

  • DhcpNameServer - адреса DNS серверов.

  • DefaultGateway - шлюз по умолчанию.

  • IPAddress - адрес заданный вручную.

  • SubnetMask - маска подсети.

  • NameServer - адреса DNS серверов.

  • LeaseObtainedTime - время получения параметров от DHCP.

  • LeaseTerminatesTime - время истечения параметров DHCP.

Третье расположение в реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}. Здесь не будет информации о настройках сетевых интерфейсов, но зато можно понять для чего использовался тот или иной сетевой интерфейс по значениям параметров, которые есть в этом расположении. Например, найти сетевые интерфейсы VPN (см. значения для DriverDesc и ProviderName). Сопоставить идентификаторы этих интерфейсов с интерфейсами из других путей реестра можно по значениям параметров RootDevice в /Linkage. Параметры подключей и их назначение:

  • DriverDesc - описание драйвера сетевого интерфейса.

  • ProviderName - организация/вендор.

  • InstallTimeStamp - дата добавления сетевого интерфейса в систему, SYSTEMTIME, в виде шестнадцетеричной строки Little Endian.

Данные из четвёртого расположения дублируют сведения из второго расположения: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces.

Наконец, данные из последнего расположения аналогичны, но для протокола IPv6: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\Interfaces.

Благодаря журналам событий Windows можно выяснить когда конкретно хост подключался к сети (Wi-Fi или проводное соединение). В директории: C:\Windows\System32\winevt\Logs нас будет интересовать файл Microsoft-Windows-NetworkProfile%4Operational.evtx. В нём события с ID 10000 “Network Connected” говорят о факте подключения к сети. Внутри данного события кроме времени подключения можно найти следующие сведения:

  • Тип сети (управляемая/managed или неуправляемая/unmanaged). Управляемая сеть обозначает, что данный хост является частью домена, т.е. это корпоративная сеть и хост управляется одним или несколькими контроллерами домена. Неуправляемая сеть “домашняя” сеть, WORKGROUP.

  • Категория сети задаёт поведение системы и правила для Windows Firewall. В Private/Частной сети система активирует сетевое обнаружение, т.е. пытается найти соседей, другие хосты с Windows. Данная функциональность использует протокол Microsoft WS-Discovery (WSD) и нужна для организации сетевого доступа к файлам (file sharing). В Public/Публичной сети эта функциональность отключена по-умолчанию.

События ID 10001 “Network disconnected” в том же файле говорят об отключении от сети и содержат аналогичные 10000 сведения.

Больше информации о подключении к беспроводным сетям можно найти в файле журнала Microsoft-Windows-WLAN-AutoConfig%4Operational.evtx. Он относится к сервису Wireless LAN Service (WLAN AutoConfig), в Windows отвечает за взаимодействие с Wi-Fi сетями.

События с ID 8000 “WLAN AutoConfig service started a connection to a wireless network” - сообщают нам о том, что было инициировано подключение к Wi-Fi. Полезные сведения данного события:

  • Имя сетевого интерфейса и его GUID (можно сопоставить с сведениями из реестра).

  • SSID (Service Set Identifier, имя точки доступа) Wi-Fi сети.

  • Connection Mode, если установлено значение “Automatic connection with a profile”, то это значит, что ранее уже осуществлялось подключение и сохранён пароль Wi-Fi.

События с ID 8001 “WLAN AutoConfig service has successfully connected to a wireless network” - было выполнено успешное подключение к Wi-Fi сети. Полезные сведения аналогичны событию 8000, но в этом событии также есть некоторые технические сведения о самом подключении (тип аутентификации, шифрования, Physical Layer (PHY) type).

События с ID 11000 “Wireless network association started” покажет локальный MAC адрес, который использовался хостом при подключении к Wi-Fi. Также можно найти MAC сетевого устройства к которому подключался хост с Windows, но этот MAC сохраняется отдельно, в реестре: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures в ключах “Managed” и “Unmanaged” (соответственно типу сети) для вложенных ключей это будет параметр DefaultGatewayMac. В этом же расположении можно найти ProfileGuid, т.е. уникальный идентификатор сетевого профиля.

События с ID 8003 “WLAN AutoConfig service has successfully disconnected from a wireless network” - отключение от Wi-Fi сети. Полезные сведения аналогичны событию 8000, в дополнение к ним здесь же есть пункт Reason с указанием причины отключения от сети (может быть полезно не столько при forensic изысканиях, сколько при траблшутинге).

Информацию о сетевых профилях (описание сетевых профилей от MS), в т.ч. и Wi-Fi сетей, можно найти в реестре: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles

Сетевой профиль создаётся автоматически при самом первом подключении к сети. Имена вложенных ключей этого расположения реестра являются уникальными идентификаторами сетевых профилей. Полезными сведениями являются:

  • NameType - шестнадцетеричное значение 47 указывает на то, что это профиль для Wi-Fi.

  • ProfileName и Description - имя сетевого профиля/описание, по умолчанию совпадает с SSID Wi-Fi, но может быть изменено вручную пользователем.

  • DateCreated - время первого подключения к сети, SYSTEMTIME Little-Endian.

  • DateLastConnected - время последнего подключения с использованием этого профиля, SYSTEMTIME Little-Endian. 

Пароли подключения к Wi-Fi хранятся в зашифрованном виде отдельно от сетевых профилей (Windows сохраняет пароли автоматически при первом подключении к сети и создании сетевого профиля) внутри XML файлов в директории %ProgramData%\Microsoft\Wlansvc\Profiles\Interfaces. Для шифрования паролей используется механизм Windows DPAPI.

При наличии дампа оперативной памяти можно извлечь информацию о сетевых соединениях на момент снятия дампа. Для этого можно использовать всем известный Volatility3: python vol.py -f ../ram_dmp.raw windows.netstat.NetStat. Из данных сведений можно узнать:

  • Номера портов, программы, которые слушали эти порты, IP адреса.

  • Приблизительные геолокацию/страну, кому принадлежит адрес (организация), замечен ли адрес при атаках, использовании в ВПО (для этого в случае с публичными белыми IP можно попробовать использовать whois, geoip lookup, сервисы наподобие URLhaus).

Ещё одним источником артефактов на хосте с Windows, или даже как его назвают “окном в мир”, является браузер и следы его использования. Не обязательно, что это предустановленный Internet Explorer или Edge. Как правило история загрузок/открывавшихся сайтов хранится в форме sqlite базы данных. Например, для Google Chrome это %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\History, у Firefox файл

%USERPROFILE%\AppData\Roaming\Mozilla\Firefox\Profiles\profile_name\places.sqlite. Для автоматического парсинга этих артефактов существует множество forensic утилит. Например, бесплатные утилиты от foxton forensics или встроенная функциональность Autopsy.

Подводя итог, сам по себе хост с Windows содержит интересные сетевые артефакты для forensic специалиста, но если это корпоративная среда или есть возможность получить логи с сетевого оборудования (NGFW, анализатора трафика), то полезных сведений может быть в разы больше, т.к. у продвинутых средств сетевой защиты как правило есть функционал определения конкретных приложений в трафике, возможность подсчёта переданного/принятого объёма трафика и времени сессий, дешифрования защифрованного трафика (SSL Inspection, по факту MITM).

Продолжение следует...

Комментарии (0)