Реестр Windows: ключ к системе

Введение в реестр Windows

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

Реестр состоит из множества ключей и значений, которые организованы в древовидную структуру. Каждый ключ может содержать подразделы и значения, которые определяют конкретные параметры системы или приложений.

Реестр играет критически важную роль в функционировании Windows. Он используется для:

  • Хранения конфигурации системы и пользовательских настроек.

  • Управления установленным программным обеспечением.

  • Контроля за работой оборудования и драйверов.

  • Реализации политик безопасности

  • Автозагрузки приложений и служб.

Без реестра операционная система не сможет корректно загрузиться или работать, так как именно в нём хранятся все необходимые для этого данные.

Почему реестр является критически важным компонентом Windows

Реестр Windows — это не просто хранилище настроек, а механизм, который напрямую влияет на поведение системы. Изменения в реестре могут:

  • Включать или отключать функции системы.

  • Менять параметры безопасности.

  • Управлять работой сетевых служб.

  • Контролировать доступ пользователей к ресурсам.

Из-за своей важности реестр часто становится целью злоумышленников. Доступ к реестру позволяет атакующему:

  • Получить конфиденциальную информацию.

  • Изменить настройки системы для обхода защиты.

  • Установить вредоносное ПО или создать бэкдор.

Краткая история реестра

Реестр Windows появился в начале 1990-х годов как замена INI-файлам, которые использовались для хранения настроек приложений. С ростом сложности операционных систем и приложений INI-файлы стали неэффективными, и Microsoft разработала реестр как централизованное и структурированное решение для хранения конфигураций.

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

Почему аналитикам SOC важно понимать реестр?

Для аналитиков SOC понимание реестра Windows — это ключевой навык, так как:

  • Реестр часто используется злоумышленниками для внедрения вредоносного кода и сохранения доступа к системе.

  • Анализ реестра позволяет обнаружить следы взлома или подозрительной активности.

  • Знание структуры реестра помогает быстро находить и устранять уязвимости.

Структура реестра

Реестр Windows имеет иерархическую структуру, организованную в виде дерева. Он состоит из кустов (hives), ключей (keys), подразделов (subkeys) и значений (values). Каждый элемент реестра играет свою роль в хранении и управлении настройками системы.

Основные разделы (кусты) реестра

Реестр разделён на несколько корневых кустов, каждый из которых отвечает за определённый аспект системы:

  1. HKEY_CLASSES_ROOT (HKCR)

    • Содержит информацию о зарегистрированных типах файлов и их ассоциациях с программами.

    • Используется для управления COM-объектами и ActiveX.

  2. HKEY_CURRENT_USER (HKCU)

    • Хранит настройки текущего пользователя, такие как персонализация, параметры рабочего стола и установленного ПО.

    • Уникален для каждого пользователя.

    • Единственное, что доступно для редактирования без прав локального администратора.

  3. HKEY_LOCAL_MACHINE (HKLM)

    • Содержит глобальные настройки системы, общие для всех пользователей.

    • Включает данные о железе, драйверах, установленных программах и системных конфигурациях.

  4. HKEY_USERS (HKU)

    • Хранит настройки всех пользователей, зарегистрированных в системе.

    • Каждый пользователь представлен своим уникальным идентификатором (SID).

  5. HKEY_CURRENT_CONFIG (HKCC)

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

Ключи, подразделы и значения

  • Ключи (keys) — это контейнеры, которые могут содержать подразделы и значения. Например, HKEY_LOCAL_MACHINE\Software.

  • Подразделы (subkeys) — вложенные элементы внутри ключей. Например, HKEY_LOCAL_MACHINE\Software\Microsoft.

  • Значения (values) — конкретные данные, хранящиеся в ключах или подразделах. Например, строка, число или двоичные данные.

Типы данных в реестре

Реестр поддерживает несколько типов данных для значений:

  • REG_SZ — строка текста.

  • REG_DWORD — 32-битное число.

  • REG_BINARY — двоичные данные.

  • REG_MULTI_SZ — массив строк.

  • REG_EXPAND_SZ — строка с переменными окружения.

Пример структуры

Пример пути в реестре: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

  • Здесь Run — это ключ, который содержит значения для автозагрузки программ.

Реестр как цель атакующего

Реестр Windows — это не только важный компонент системы, но и привлекательная цель для злоумышленников.

  1. Хранение конфиденциальной информации

    • В реестре могут храниться пароли, хэши, ключи шифрования и другие чувствительные данные. HKEY_LOCAL_MACHINE\SECURITY\Policy\Secrets

    • Например, данные для автозаполнения в браузерах или кэшированные учётные данные. HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2

  2. Управление поведением системы

    • Изменение реестра позволяет злоумышленникам:

      • Настроить автозапуск вредоносного ПО. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

      • Отключать защитные механизмы (антивирусы, брандмауэры). Или добавлять исключения, например, определенный директории или вообще все исполняемый файлы: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions\Extensions

      • Модифицировать системные параметры для обхода безопасности. Например, этот параметр позволит включить WDigest, после чего все пароли будут в памяти в открытом виде HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest

  3. Закрепление (Persistence)

    • Реестр часто используется для создания механизмов автозапуска, которые позволяют вредоносному ПО оставаться в системе даже после перезагрузки. Например, через задачи планировщика, созданные через реестр: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks

  4. Сокрытие следов

    • Атакующие могут изменять реестр для маскировки своего присутствия, например, скрывая процессы или файлы.

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

SAM, SYSTEM и Security

Одним из популярных методов, который используют злоумышленники с доступом на чтение к реестру, является дамп (экспорт) веток SAM, SYSTEM и Security. Эти ветки содержат критически важную информацию, связанную с учётными записями пользователей, хэшами паролей и настройками безопасности системы.

  1. Если атакующий получил удалённый доступ с правами администратора, он может использовать встроенные инструменты (например, reg.exe) или сторонние утилиты для экспорта веток реестра:

reg save HKLM\SAM C:\sam.save
reg save HKLM\SYSTEM C:\system.save
reg save HKLM\SECURITY C:\security.save
  1. Атакующие часто используют специализированные инструменты, такие как Mimikatz, secretsdump (из Impacket) или pwdump, чтобы извлечь данные из этих веток.

    • Используя данные из SAM и SYSTEM, атакующий может извлечь хэши паролей (NTLM или LM).

    • Пример команды в Mimikatz:

      lsadump::sam /sam:sam.save /system:system.save
  2. Атакующий может использовать хэши для аутентификации на других системах без необходимости знать пароль в чистом тексте

Last updated

Was this helpful?