Hkcu software microsoft windows nt currentversion winlogon

Где прячутся вирусы, автозагрузка операционной системы, userinit.exe, uihost.exe, удаление вирусов, ERD

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

Где прячутся вирусы

В зависимости от продвинутости создателя вируса это может быть реализовано по-разному. Рассмотрим самые распространенные случаи, где прячутся вирусы:

1. В автозагрузке операционной системы

Проверить это можно с помощью команды msconfig, запущенной через меню Пуск — Выполнить

Автозагрузка Windows

В столбце «Команда» не должно быть подозрительных элементов, например C:Program Filesnovirus.exe

Команда msconfig позволяет только отображать и отключать ненужные программы из автозагрузки, для полного удаления следов необходимо почистить соответствующие ветки реестра (посмотреть в столбце «Расположение»).

Как альтернативe команде msconfig можно использовать программу XPTweaker.

XPTweaker

В разделе «Система» перейти на закладку «Загрузка системы», прокрутить скроллом немного вниз до заголовка «Автозагрузка». Также просмотреть внимательно список загружаемых вместе с операционной системой приложений и при необходимости удалить ненужные. Программа удаляет информацию сразу и в реестре Windows.

Внимание! Для того, чтобы случайно не удалить важный системный процесс Windows — уточните предварительно у компьютерных гуру или найдите ответ через поисковую систему Яндекс или Гугл о неизвестных вам загружаемых приложений, например RTHDCPL.EXE

Данный способ загрузки вируса — самый элементарный. Он легко обнаруживается, и вирус удаляется. Так действовали вирусы 5-10-летней давности.

Дополнительно:

Если вы словили порно-баннер, и нет возможности посмотреть автозагрузку, то, загрузившись с любого загрузочного диска удалите все файлы из директорий C:Temp, C:WINDOWSTemp, C:Documents and SettingsuserLocal SettingsTemp, т.к. существует очень большая вероятность загрузки вируса из этих папок.

Если загрузочный диск позволяет подключиться к удаленному реестру операционной системы (к вашей) — типа ERD, то можно проверить ключи реестра, отвечающие за автозагрузку. Для операционной системы Windows XP это:

HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun и

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun

При нахождении в них подозрительных элементов — мочить гадов! :)

2. Вместо проводника

Это очень распространенный случай при заражении вирусами, особо часто он был замечен при установке порно-баннеров на операционную систему. Вирус в этом случае грузится вместо проводника Windows, заменив запись в реестре:

В ветке HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon
Параметр Shell (reg_sz) вместо значения «explorer.exe» заменяется вирусом на свой, например C:WINDOWSsystem32h6d8dn.exe или подобную хрень.

Исправить это с наименьшими потерями можно, загрузившись с загрузочного CD-ROM или USB, проверить систему с помощью утилиты от Доктора Веба — launcher.exe. Но только в том случае, если в базе вирусов Доктора Веба есть информация об этом вирусе.

Более действенный и быстрый способ — загрузившись с загрузочного диска запустить программу редактирования реестра с возможностью подключения к удаленному реестру. Для этого идеально подходит сборка ERD.

Нужно посмотреть запись в реестре по адресу HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon, исправить «хрень» у записи параметра Shell (reg_sz) на «explorer.exe» и запомнить путь нахождения и имя файла вируса, чтобы удалить его вручную.

3. Вместе с userinit.exe или uihost.exe

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

Userinit.exe — программа, которая открывает Рабочий стол и активирует сетевые функции после запуска Windows. Находится он по адресу C:WINDOWSsystem32userinit.exe. Размер оригинального файла составляет 26,0 КБ (26 624 байт), на диске: 28,0 КБ (28 672 байт).

Некоторые вирусы могут изменить запись в реестре у трех параметров (у всех или только некоторых) Userinit, UIHost и Shell, расположенных по адресу:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon

Оригинальные параметры записи в реестре должны быть следующими:

Userinit = C:WINDOWSsystem32userinit.exe
UIHost = logonui.exe
Shell = explorer.exe

Где прячутся вирусы

Вирус может прописать себя например так:

Userinit = C:WINDOWSsystem32userinit.exe,C:WINDOWSsystem32gertinw.exe

В данном примере файл gertinw.exe — это 100% вирус! Обязательно запомнить путь к файлу вируса и удалить его!

После удаления нужно заменить файлы userinit.exe, logonui.exe (находятся в C:WINDOWSsystem32) и explorer.exe (находится в C:WINDOWS) на аналогичные файлы из дистрибутива виндовса (найдете поиском), т.к. остатки червя могут находиться в файлах ключей. Или скачайте отсюда.

После нужно проверить файл hosts (открыть любым тестовым редактором) на наличие запретов на известные сайты антивирусных программ: C:windowssystem32driversetchosts. Удалить все после строки 127.0.0.1 localhost

Также запрет на загрузку сайтов может быть прописан в реестре по следующим адресам:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersPersistentRoutes

и

HKEY_LOCAL_MACHINESYSTEMControlSet {номера 001 или 002}ServicesTcpipParameters PersistentRoutes

Удалить их содержимое полностью кроме строки «По умолчанию» с неприсвоенным значением.

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

Используемые сокращения

HKLM = HKEY_LOCAL_MACHINE
HKCU = HKEY_CURRENT_USER
HKCR = HKEY_CLASSES_ROOT

  • Вход в Windows
  • Регистрационные данные
  • Путь установки Windows
  • Диспетчер задач Windows
  • Синий Экран Смерти
  • Сообщение при загрузке
  • Восстановление системы
  • Панель переключателя задач
  • Всплывающие подсказки
  • Пароль после ждущего режима
  • Автозагрузка
  • Контекстное меню панели задач
  • Диалоговое окно открытия и сохранения файла
  • Добавление нового пункта в меню «Создать»

Продолжение: страница 1234

Вход в Windows

  • Автоматический вход в Windows
    Существует возможность автоматического входа в Windows, минуя экран приветствия. Учтите, что данный способ не совсем безопасен, так как любой может войти в систему, если не требуется вводить пароль. Для автоматического входа в систему требуется изменить строковый параметр AutoAdminLogon на 1 в разделе

    HKLMSoftwareMicrosoftWindowsCurrentVersionWinlogon

    Также необходимо установить строковые значения DefaultUserName и DefaultPassword в этом же разделе равными имени пользователя и пароля, которые используются для входа в Windows. Возможно, вам также придется установить строковое значение DefaultDomainName, если ваш компьютер используется как домен. Однако, вы должны понимать, что при автоматическом входе любой пользователь, получивший доступ к вашем компьютеру, может узнать ваш пароль, который хранится в реестре в открытом виде.

  • Лимит на число попыток автоматического входа в Windows.
    Данная настройка является логическим продолжением предыдущей настройки. Можно задать число попыток для автоматического входа в Windows. В этом случае в том же разделе надо создать параметр Dword AutoLogonCount и присвоить ему некоторое значение. Например, если вы присвоите значение 5, то система пять раз автоматически войдет в Windows. Причем, при каждом входе данный параметр в реестре будет автоматически уменьшаться на единицу. Когда значение параметра достигнет 0, ключи AutoLogonCount и DefaultPassword будут удалены из реестра, а параметру AutoAdminLogo будет присвоено значение 0.
  • Экран приветствия
    Существует возможность замены экрана приветствия без модификации самого файла logonui.exe, в котором содержится внешний вид экрана. Для этого скачайте из интернета или создайте самостоятельно такой экран. Затем в разделе

    HKLM/SOFTWARE/Microsoft/Windows NT/CurrentVersion/WinLogon

    создайте строковый параметр UIHost, в котором и пропишите полный путь к вашему новому файлу

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

    HKU.DEFAULTControl PanelDesktop

    и установить значения 2 для параметров FontSmoothing и FontSmoothingType и значение 1 для параметра FontSmoothingOrientation

Регистрационные данные
Если вы нажмете на пункт меню О программе в Проводнике или в других программах, поставляемых с Windows, то увидите, кто обладает правом использования этой копии. Также эти данные можно увидеть в апплете Система Панели управления. Возможно, вам компьютер достался от вашего босса Пупкина, и вы страстно хотели бы изменить регистрационные данные. Для этого нужно изменить строковые параметры RegisteredOwner (Ваше имя) и RegisteredOrganization (название организации) в разделе

HKLMSOFTWAREMicrosoftWindowsNTCurrentVersion

Путь установки Windows
Иногда приходится переустанавливать Windows с разных мест — с жесткого диска, с компакт-диска, с записывающего CD-RW. Но Windows запоминает путь инсталляционных файлов, что порой создает проблему. Чтобы «обмануть» Windows, используйте в разделе

HKLMSOFTWAREMicrosoftWindowsCurrentVersionSetup

строковый параметр SourcePath, указав в нем ваш путь

Диспетчер задач Windows
Чтобы запретить пользователю возможность запуска Диспетчера задач Windows, установите значение параметра типа DWORD DisableTaskMgr в разделе

HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesSystem

равным 1

Синий Экран Смерти
Если вы хотите полюбоваться на культовый Синий Экран Смерти — Blue Screen of Death (BSOD) в любое время, то откройте раздел

HKLMSYSTEMCurrentControlSetServisesi8042prtParameters

и присвойте параметру типа DWORD CrashOnCtrlScroll значение 1
Удерживая правую клавишу Ctrl, нажмите два раза на клавишу Scroll Lock и вы увидите этот синий экран

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

HKLMSoftwareMicrosoftWindowsNTCurrentVersionWinlogon

и создайте строковый параметр LegalNoticeCaption и введите вашу строку, которая будет выводиться в заголовке вашего сообщения, а для текста самого сообщения используйте строковый параметр LegalNoticeText в том же разделе. Теперь перед входом в систему появится созданное вами сообщение

Восстановление системы
Восстановление системы используется для отмены конфигурации Windows. Программа позволяет вернуть настройки компьютера в более раннее состояние (контрольная точка). Все описываемые настройки являются параметрами DWORD и происходят в разделе

HKLMSoftwareMicrosoftWindows NTCurrentVersionSystemRestore

  • CompressionBurst — задает время сжатия в секундах при простое системы. Восстановление системы сохраняет данные в течение данного времени и прекращает свою работу до следующего периода простоя системы
  • DiskPersent — указывает, какой объем дискового пространства будет использовать программа. Для дисков с объемом более 4 Гигабайт по умолчанию используется 12 процентов
  • DSMax — указывает, какой объем дискового пространства будет использовать программа. Для дисков с объемом менее 4 Гигабайт по умолчанию используется 400 мегабайт
  • DSMin — указывает минимальное количество свободного дискового пространства, которое потребуется программе восстановления системы для создания точек восстановления
  • RestoreStatus — статус последней операции восстановления системы (0 — ошибка, 1 — успешное восстановление, 2 — прерванная операция)
  • RPGlobalInterval — число секунд, в течении которого программа ожидает перед созданием новой контрольной точки. По умолчанию — 24 часа (86400)
  • RPLifeInterval— число секунд, в течении которого программа хранит точки восстановления перед их удалением. По умолчанию 90 дней (7776000)
  • RPSessionInterval — число секунд, в течении которого ожидает перед созданием новой контрольной точки при включенном компьютере. По умолчанию установлено 0 (выключено), вы можете установить свое значение (например, интервал в один час), чтобы программа создавала контрольные точки через заданный интервал
  • ThawInterval — число секунд, в течении которого программа ожидает перед возобновлением своей работы, если появился свободный объем дискового пространства.

Панель переключателя задач

  • Отключение панели переключателя задач
    Чтобы отключить панель переключателя задач (который выводится по Alt+Tab), надо в разделе

    HKCUControl PanelDesktop

    присвоить строковому параметру CoolSwitch значение 0 (чтобы включить — значение 1)

  • Изменение числа строк и колонок
    Чтобы изменить число строк и колонок, показываемое на панели переключателя задач (который выводится по Alt+Tab), надо в разделе

    HKCUControl PanelDesktop

    отредактировать значения строковых параметров CoolSwitchRows и CoolSwitchColumns соответственно

Всплывающие подсказки

  • Описания папок и файлов на Рабочем столе и в Проводнике
    Если подвести указатель какому-нибудь элементу рабочего стола или оболочки, то открывается небольшое окно, содержащее текст описания этого элемента. Чтобы запретить появление этих окон, нужно присвоить параметру типа DWORD ShowInfoTip значение 0 в разделе

    HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced

  • Всплывающие подсказки на панели задач
    Windows XP показывает всплывающие подсказки для начинающих пользователей. Чтобы отключить подсказки, нужно присвоить параметру типа DWORD EnableBalloonTips значение 0 в разделе

    HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced

Пароль после ждущего режима
Можно настроить систему таким образом, чтобы при включении компьютера после Ждущего режима появлялось диалоговое окно с приглашением ввести пароль. Для этого в разделе

HKCUSoftwarePoliciesMicrosoftWindowsSystemPower

создаем параметр типа DWORD PromptPasswordOnResume со значением 1

Автозагрузка

  • Что скрывается в автозагрузке?
    Существует несколько способов прописать программу в автозагрузку. Самый простой — скопировать программу или ярлык в папку Автозагрузка. Но существует другой способ — через реестр. Этим способом часто пользуются вредоносные программы (вирусы, трояны, шпионы) Сперва откройте раздел

    HKLMSoftwareMicrosoftWindowsCurrentVersion.

    Найдите там подразделы Run, RunOnce В этих разделах есть строковые ключи (некоторые разделы пустые), отвечающие за запуск программ. Название ключа может быть произвольным, а в качестве значения у них указывается запускаемая программа, если надо — то с параметрами. Обратите внимание на разделы, в названии которых присутствует «Once». Это разделы, в которых прописываются программы, запуск которых надо произвести всего один раз. Например, при установке новых программ некоторые из них прописывают туда ключи, указывающие на какие-нибудь настроечные модули, которые запускаются сразу после перезагрузки компьютера. Такие ключи после своего запуска автоматически удаляются.

    Внимательно проверьте, что за программы у вас запускаются. Подумайте, все ли они нужны вам при загрузке и лишнее просто удалите. Это позволит значительно ускорить загрузку Windows. В разделе

    HKCUSOFTWAREMicrosoftWindowsCurrentVersion

    есть только два подраздела, отвечающие за автозагрузку: Run и Runonce. Изначально они пустые, так что все записи сделаны другими программами

  • Запрет на автозагрузку
    Существуют способы наложения запрета на автозагрузку программ через записи в реестре, указанные выше. Используются параметры типа DWORD. Все параметры должны храниться в разделе

    HKLMSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

    Для запрета запуска программ, прописанных в подразделе Run раздела LOCAL MACHINE используется параметр DisableLocalMachineRun со значением 1. В этом случае система игнорирует содержимое списка Run, находящегося в LOCAL MACHINE.

    Аналогично действует запрет списка Run Once для LOCAL MACHINE. За состояние этой политики отвечает параметр DisableLocalMachineRunOnce. Система игнорирует содержимое RunOnce в LOCAL MACHINE.
    Для запрета списка Run раздела CURRENT USER используется параметр DisableCurrentUserRun.
    Для запрета списка Run Once раздела CURRENT USER используется параметр DisableCurrentUserRunOnce

Контекстное меню панели задач
Если вы хотите запретить контекстное меню панели задач, то откройте раздел

HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplоrer

и создайте параметр типа DWORD NoTrayContextMenu со значением 1

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

HKCUSOFTWAREMicrosoftWindowsCurrentVersionPoliciescomdlg32

раздел «PlacesBar». В нем хранятся имена папок. Как я уже говорил, их пять. И у каждой свой параметр. У первой Place0, у второй Place1, а у пятой Place4. Системные папки имеют значение типа DWORD:

Название папки Значение
Рабочий стол 00000000
Мои документы 00000005
Мои рисунки 00000027
Мои видеозаписи 0000000e
Мой компьютер 00000011
Избранное 00000006
Мое сетевое окружение 00000012
Шрифты 00000014
History 00000022

Папки могут быть и обычные, где строковое значение параметра Place указывает путь к папке. Например: Place1=»C:WindowsSystems»
Если вы не используете все пять параметров, а только часть из них, например Place0 и Place1, то в левой части диалогового окна будут отображаться столько же папок

  • Старый вид диалогового окна
    Чтобы вернуться к старому виду диалогового окна Windows 95/98, создайте строковый параметр NoPlacesBar со значением 1 (или любым другим) в

    HKCUSOFTWAREMicrosoftWindowsCurrentVersionPoliciescomdlg32

  • Убираем кнопку Назад
    Чтобы убрать кнопку Назад из Общего диалогового окна, создайте параметр NoBackButton типа DWORD со значением 1 в

    HKCUSOFTWAREMicrosoftWindowsCurrentVersionPoliciescomdlg32

  • Списки последних открытых и сохранённых файлов в стандартных окнах открытия и сохранения файлов
    Каждый раз, когда мы пользуемся стандартными диалоговыми окнами, то Windows сохраняет список последних открытых и сохранённых файлов в реестре. Порой эти записи слишком разрастаются. Кроме того, возможно вам не хотелось бы оставлять следы своей деятельности на компьютере. Этот список можно безболезненно удалить (или часть записей). Данный список хранится по адресу

    HKCUSOFTWAREMicrosoftWindowsCurrentVersionExplorerComDlg32

Добавление нового пункта в меню «Создать»
Пункт контекстного меню «Создать» появляется, если щелкнуть на Рабочем столе или в Проводнике на свободном месте открытой папки. Существует возможность добавления нового пункта в это меню. Например, если вы веб-дизайнер, то было бы удобно иметь пункт Документ HTML, который позволит вам сразу создать заготовку для вашей странички.
Разобъем работу на несколько этапов. Для начала найдем каталог ShellNew в папке Windows. Там хранятся заготовки для файлов, которые создаются с помощью контекстного меню. Например, если у вас установлен Microsoft Office, то вы увидите в этом каталоге файлы-заготовки для Word и Exce.
Следующий шаг — создайте в папке файл, например index.html. Внутри него напишите шаблон вашей странички. Например, так:

Мой заголовок

Третий этап. Работаем с реестром. Итак, ищем раздел

HKEY_CLASSES_ROOT.html

и создаем раздел ShellNew. В этом разделе создаем строковый параметр FileName в качестве значения которого надо указать имя созданного нами шаблона (index.html). После перезагрузки в контекстном меню появится новый пункт.

Существуют и другие способы. Можно не создавать шаблон файла. Он может быть и пустым, но тогда вместо параметра FileName надо создать пустой строковый параметр NullFile

Идея написания сводного руководства по самостоятельному обнаружению вирусов на станциях под управлением Windows зрела на протяжении достаточно длительного времени и обуславливалась, прежде всего необходимостью составить и время от времени дополнять справочник возможных расположений запуска вирусного кода. Лейтмотивом этой идеи является необходимость непосредственного, то есть самостоятельного (ручного) анализа системы в случаях, когда имеется подозрение, что автоматические методы (утилиты/антивирусы), не в состоянии обнаружить работающий в системе вредоносный код. Обнаружение вируса собственными силами — вот тот уровень, который не будет лишним для любого технического специалиста по операционным системам Windows. Хотелось бы сделать небольшое отступление и пару слов сказать на счет самих антивирусных продуктов. Надо заметить, что эти, самые надежные по мнению большинства, помощники в борьбе с вредоносным кодом, вообще-то не являются панацеей от заражения операционной системы. Повидавшая виды практика помнит случаи, когда грамотно написанный вредоносный код, учитывающий эвристические особенности определенных «региональных» антивирусов, долгое время оставался незамеченным на критически важных корпоративных системах. В этом то и заключается парадокс зараженной системы, в которой установлен авторитетный антивирус с актуальными антивирусными базами. Подобный курьез говорит о том, что если вирус использует хотя бы мало-мальски оригинальный код, методы маскировки, различные виды упаковок, алгоритмы противодействия, то антивирусу бывает сложно обнаружить его, либо он не может деактивировать и удалить уже находящийся и функционирующий в системе вредоносный код, и это не смотря на продвинутые методы контроля системы с перехватом различных системных вызовов и прочие виды глубокой системной интеграции. Подобных доводов можно привести множество, но все они сводятся к одному единственному выводу.

Невозможно обеспечить 100% антивирусную защиту автоматизированными средствами.

И именно в свете сего немаловажного обстоятельства, в критические моменты встает необходимость уметь собственноручно обнаруживать и удалять вредоносный код, и именно поэтому данная статья будет посвящена изложению методов обнаружения без использования каких-либо антивирусных средств, исключением у нас будут, разве что, небольшие сопутствующие утилиты.
«Все течет, все меняется» (© Гераклит), и операционные системы из этого постулата, конечно же, не исключение. На протяжении всей истории развития операционных систем Windows, идет их постоянное видоизменение, одни системные механизмы перестают эксплуатироваться, долгое время присутствуя в системе в виде рудиментов совместимости и в последствии исчезая, другие же появляются. Происходит бесконечное движение, вирусописатели подстраиваются под эволюционирующую среду, переписывая код, использующий устаревающие механизмы, начинают искать и эксплуатировать другие, обретающие актуальность. Учитывая меняющиеся от версии к версии особенности операционных систем и достаточно большое количество потенциальных точек активации вредоносного кода, статья эта никогда не будет завершена полностью и конечно же не будет претендовать на полное руководство по выбранной тематике. Однако, по мере получения новых знаний, будет время от времени мною дорабатываться в бесконечной попытке соответствовать современным реалиям.
Перед тем как мы начнем работать с довольно сложной темой под названием обнаружение вируса, хотелось бы отдельно сказать вот еще о чем.

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

Дело в том, что с момента зарождения эры компьютерных вирусов, специалистами по безопасности было введено в оборот такое великое многообразие терминов и определений, что классификация в рамках небольшой статьи выглядела бы, откровенно говоря, излишней, учитывая и тот факт, что в свете характера статьи для нас фактически не так уж и важно, как зовется та или иная разновидность вредоносного кода. В разнообразных материалах, посвященных теме компьютерных вирусов, встречаются оригинальные определения, специалисты по безопасности называют программное обеспечение, которое выполняет деструктивные действия различными именами. На заре операционной системы MS-DOS вирусами называли программы, которые реплицировали собственный код в обнаруживаемые исполняемые модули и загрузочный сектор. С появлением линейки операционных систем Windows, вредоносный код обрел истинное многообразие, на свет появилось большое количество всевозможных алгоритмических отклонений, таких как руткиты (rootkit), трояны (troyan), шпионы (spyware), рекламные программы (adware), вымогатели (ransomware), сетевые черви (worms) и прочее, прочее, прочее. И все эти вариации на вирусную тему имеют различное предназначение. Часто термины ассоциируются неправильно, и вещи называются не своими именами, в дополнение, ко всему этому многообразию применяются второстепенные термины, такие как вредоносный код, зловред, вредонос. Поэтому, дабы не вводить читателя в заблуждение, я буду использовать определение «вирус» применительно к любому вредоносному коду, поэтому встречая в тексте термин вирус, подразумеваем любой вид вредоносного кода.
По каким косвенным признакам пользователь может обнаружить вирус в операционной системе? Дело в том, что какого-то единого, вполне определенного и однозначного симптома заражения системы вирусом не существует, однако общими следствиями вирусной активности могут быть:

  • Низкая производительность операционной системы;
  • Низкая производительность отдельных приложений;
  • Часто возникающие ошибки в приложениях;
  • Отображение посторонних информационных окон;
  • Блокировка рабочего стола пользователя различными информационными окнами;
  • Блокировка страницы (вкладки) браузера различными информационными окнами;
  • Блокировка доступа к определенным ресурсам в сети Интернет (например, к сайтам антивирусных лабораторий);
  • Автоматический запуск разнообразных программ;
  • Отказ в изменении некоторых настроек операционной системы (даже под учетной записью локального администратора);
  • Загруженная сеть, наличие интенсивного трафика на интерфейсах в моменты бездействия;
  • Иная подозрительная (отклоненная от штатной) активность операционной системы;

Внимательно изучив описанные выше первичные признаки, можно сделать однозначный вывод что зачастую довольно сложно отличить вирусную активность от типовых сбоев, вызванных аппаратными и программными проблемами. Обычно в случае подозрения на аномальную активность, пользователь прибегает к помощи антивирусов, но что же делать ему в ситуации, когда работающий антивирус при сканировании не может детектировать в системе никакой вирусной активности, а «глюки» сохраняются и подозрение на вирус остается?! В этом случае можно попробовать переустановить операционную систему, выбор безусловно за вами, но в этом случае вы теряете уникальную возможность саморазвития, не получаете дополнительных знаний по компьютерным вирусам, исключаете возможность обнаружить новые виды вирусной активности. Может все же стоит попробовать «пройтись по системе» самостоятельно с целью обнаружения вируса, изучив возможные местоположения запуска и модификации? Хорошо, для начала требуется усвоить одно простое правильно:

Компьютерный вирус — код, способный (несанкционированно, без ведома пользователя) копировать самого себя в любом доступном виде, модифицируя требуемым образом различные системные области: регионы виртуальной памяти, системный реестр, загрузочный сектор диска/раздела, файловую систему. Может содержать деструктивную нагрузку.

Большинство вирусов рассчитаны на многократное исполнение, поэтому обычно оставляют свою копию в файловой системе в виде отдельного файла (группы файлов), с целью в дальнейшем иметь возможность запускаться многократно в автоматическом режиме. Применительно к операционной системе Windows, вирус представляется обычно в виде отдельного файла с расширением, идентифицирующим исполняемый различными подсистемами операционной системы код, вот некоторые из этих расширений: .exe, .dll, .sys, .ocx, .js, .ps1, .wht, .com, .bat, .vbs и прч. Некоторые вирусы, активизирующиеся в системе, не оставляют свои запускаемые копии, а просто проводят модификации определенных ключей реестра или ключевых конфигурационных файлов с целью решения собственных задач. Следуя этой логике, в целях обнаружения вируса, мы будем искать наличие подозрительных данных в физических секторах диска, файловой системе, реестре и оперативной памяти. Но ведь не придется же нам парсить полностью все эти компоненты в поисках вирусного кода? Хотя идея и неплоха :) но конечно же нет, мы будем пытаться обнаружить вирус в строго предопределенных местах: в тех расположениях в операционной системе, откуда, по задумке разработчиков, средствами самой системы могут запускаться различные исполняемые модули и где могут находиться важные для системы данные в виде файлов конфигурации различного назначения. Не лишним будет и умение отличать вирусный код от легального, знание о том, какие именно данные являются вполне безобидными, а какие из них подозрительны, то есть с большой вероятностью могут представлять вредоносный код.
Еще одним немаловажным аспектом является наличие сторонней среды, то есть операционной системы, заведомо чистой от различного рода вирусов. Делается это с тем расчетом, что некоторые особо продвинутые вирусы могут маскировать свою активность в системе, перехватывая вызовы различных функций Windows API. Поэтому, с целью получения чистой тестовой среды, мы можем:

  • Запуститься в обычном режиме загрузки под учетной записью с правами локального администратора.
  • Загрузиться в защищенный режим; Большинство вирусов в защищенном режиме не запускаются.
  • Загрузиться с внешнего диска LiveCD, содержащего среду Windows PE (Portable Executable), в состав которой входят средства работы с физическими секторами диска, файловой системой и системным реестром.

Сокращения, используемые далее в данной статье:

Сокращение Полное наименование
HKCR HKEY_CLASSES_ROOT
HKCU HKEY_CURRENT_USER
HKLM HKEY_LOCAL_MACHINE
HCU HKEY_USERS

В статье я постарался свести максимальное количество известных мне методов загрузки вирусов в операционной системе Windows.

Автозагрузка

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

Автозагрузка в реестре

Windows 7:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun
    Определяет общесистемную ветку реестра, содержащую записи о программам, запускаемых при входе в систему любого пользователя.
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun
    Определяет пользовательскую ветку реестра, содержащую записи о программах, запускаемых при входе в систему конкретного пользователя.
  • HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRun
    Определяет общесистемную ветку реестра, содержащую записи о 32-битных программах, загружаемых при входе в 64-битную систему любого пользователя.
  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnce
    Определяет общесистемную ветку реестра, содержащие записи о программам, запускаемых при входе в систему разово, то есть единожды. После единственного запуска ключи программ автоматически удаляются операционной системой из данного раздела.
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionRunOnce
    Определяет ветку реестра конкретного пользователя, содержащую записи о программах, запускаемых при входе в систему конкретного пользователя разово, то есть единожды. После единственного запуска ключи программ автоматически удаляются операционной системой из данного раздела.
  • HKEY_USERSSID_пользователяSoftwareMicrosoftWindowsCurrentVersionRun
    Содержит копию основной ветви автозагрузки для пользователя системы, определяемого конкретным SID-идентификатором. Например HKEY_USERSS-1-5-21-792320725-696519568-570327587-7793SoftwareMicrosoftWindowsCurrentVersionRun. Если Вы проверяете систему из защищенного режима, либо с LiveCD, то не поленитесь проверить данный раздел для SID пользователя, который, предположительно, подхватил заразу.

Индивидуальные пути Windows 98/98SE/ME:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunServices
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionRunServices
  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunServicesOnce
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionRunServicesOnce
  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx

Индивидуальные пути Windows XP:

  • HKCUSOFTWAREMicrosoftWindows NTCurrentVersionWindowsRun

Автозагрузка групповой политики (в реестре)

В системе присутствуют ключи реестра, которые используются для загрузки программ как части групповой политики компьютера/пользователя. Если политики не заданы, что обычно имеет место быть в случае типовой домашней станции, то подраздел пуст. Записи в нем создаются только по определенным условиям, например при использовании локальной или доменной групповой политики для загрузки программ. Программы из списка автозагрузки с использованием групповой политики не отображаются во вкладке Автозагрузка в утилите msconfig.exe, могу предположить что и другие менеджеры автозагрузки могут не отображать эти записи, по этой то причине с целью обнаружения вируса, стоит заглянуть непосредственно в следующие ключи реестра:

  • HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun
  • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun

Автозагрузка в файловой системе

Однако, автозагрузка вовсе не ограничивается ключами реестра. Как мы все прекрасно знаем, в Windows существует еще один (пожалуй основной) способ автоматически загрузить программу при старте операционной системы. В интерфейсе пользователя присутствует раздел Автозагрузка, который аккумулирует списки программ из специализированных расположений в файловой системе: каталогов с именем Startup в профиле конкретного пользователя и профиле пользователя по-умолчанию. Помещая в это расположение ярлык программы либо непосредственно саму программу, можно легко добиться автозагрузки программы на стадии запуска. Меня всегда вот удивляло, почему нельзя универсализировать механизмы реестровой автозагрузки и пользовательской и объединить их? Почему в Windows присутствует именно несколько различных методов загрузки, мало того, что представлены специальные ветви реестра, так еще и предоставили каталоги? Немного поразмыслив, понял, что механизм с реестром позиционируется как «системный», а механизм с автозагрузкой в качестве «пользовательского», чтобы пользователю можно было тривиально, в два клика обеспечить своему приложению автозапуск. Представляете ситуацию объединения этих механизмов.. неподготовленный (рядовой) пользователь получал бы возможность видеть все специализированные утилиты, которые загружаются через реестр и мог бы (не)преднамеренно просто их поудалять. К тому же, не каждая программа способна загрузиться посредством записи в ключах реестра.
Конечно же, и этот механизм не смог обойтись без внимания вирусописателей, и некоторые вирусы используют механизм автозагрузки из каталога для добавления исполняемых модулей при первичном получении управления собственным кодом. Поэтому специалисту не лишним будет проверить следующие местоположения:

Версия Размещение
Windows Vista/7 Для текущего пользователя: %APPDATA%MicrosoftWindowsStart MenuProgramsStartup
Для всех пользователей системы: %ProgramData%MicrosoftWindowsStart MenuProgramsStartup
Windows 2000/XP Для текущего пользователя: %UserProfile%Start MenuProgramsStartup
Для всех пользователей системы: %AllUsersProfile%Start MenuProgramsStartup

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

  • ключ HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerUser Shell Folders,
    параметр Common Startup = %ProgramData%MicrosoftWindowsStart MenuProgramsStartup

Для текущего пользователя системы:

  • ключ HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders,
    параметр Startup = %USERPROFILE%AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

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

Загрузка на ранних стадиях

По задумке разработчиков некоторые сервисные утилиты, к примеру дефрагментаторы, программы проверки дисков, антивирусные сканеры, должны запускаться на раннем этапе процесса загрузки Windows, когда стартовали драйвера этапа загрузки (тип BOOT_START) и этапа системы (тип SYSTEM_START), но еще не инициализирован файл подкачки, переменные среды и не запущены некоторые подсистемы. В данной точке Диспетчер сеансов (Session Manager, smss.exe) только начинает разбирать переменные окружения пользовательского режима, поэтому никаких других процессов, понятное дело, еще не запущено. Однако, на данном этапе возможен запуск специально написанных образов, поддерживающих нативный (native) режим (использующих функции Native API).
Загрузка через Диспетчер сеансов настраивается в ключе реестра:

  • ключ HKLMSystemCurrentControlSetControlSession Manager,
    параметр BootExecute = autocheck autochk *

Если в данном параметре Вы обнаружили дополнительные образы загрузки, присмотритесь к ним внимательнее, а что если это вирус? Только не удаляйте значение по умолчанию (autocheck autochk *), оно указывает на запуск утилиты проверки диска autochk с модификатором autocheck, которая проверяет значение грязного бита (dirty bit), сообщающего о необходимости проверки раздела диска на наличие ошибок.

Hosts

Файл hosts — это системный конфигурационный (текстовый) файл, содержащий локальную базу доменных имен, используемую системой в процессе сопоставления имени хоста с IP-адресом и предназначающуюся для обеспечения возможности пользовательской настройки адресов отдельных узлов сети. Его еще можно назвать своеобразным локальным DNS-сервером. Предположим, у пользователя или какой-нибудь программы появится необходимость привязать имя домена example.com к IP-адресу 1.2.3.4, то он сможет это сделать именно благодаря внесению изменений в файл hosts. Запрос к записям из файла hosts имеет приоритет перед обращением к прописанным в системе DNS-серверам, что является немаловажным фактором. Надо ли объяснять, что для вирусов это достаточно интересная точка перенаправления трафика и модификация файла вирусом может привести к подмене адреса определенного доверенного узла. Существует категория вирусов, которая модифицирует файл hosts для маршрутизации запросов на фишинговые (поддельные) сайты, в точности эмитирующие страницы оригинальных сайтов [социальных сетей] с целью кражи паролей учетных записей, показа рекламных страниц, либо просто с целью блокировки доступа к определенным ресурсам. Поэтому, обнаружение в файле hosts сторонних записей может свидетельствовать о наличии в системе вредоносного кода, либо о разовой модификации записей вредоносным кодом, что может указывать на существование в системе серьезной уязвимости безопасности. Файл hosts по-умолчанию размещается в папке %SystemRoot%System32Driversetc и оригинальное его содержимое выглядит следующим образом:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# Copyright (c) 19932009 Microsoft Corp.

#

# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.

#

# This file contains the mappings of IP addresses to host names. Each

# entry should be kept on an individual line. The IP address should

# be placed in the first column followed by the corresponding host name.

# The IP address and the host name should be separated by at least one

# space.

#

# Additionally, comments (such as these) may be inserted on individual

# lines or following the machine name denoted by a ‘#’ symbol.

#

# For example:

#

#      102.54.94.97     rhino.acme.com          # source server

#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.

# 127.0.0.1       localhost

# ::1             localhost

Видите, все закомментировано (лидирующий символ # в начале строки). В Windows 7 в файле hosts нет и одной реальной записи, только лишь примеры использования. В предыдущих версиях Windows правильный файл может содержать записи об интерфейсе локальной петли (localhost), но не более.
А вот как выглядит модифицированный вирусом тот же файл hosts:

...

1.2.3.4      my.mail.ru

1.2.3.4      m.my.mail.ru

1.2.3.4      vk.com

1.2.3.4      ok.ru

1.2.3.4      m.vk.com

1.2.3.4      odnoklassniki.ru

1.2.3.4      vk.com

1.2.3.4      www.odnoklassniki.ru

1.2.3.4      m.odnoklassniki.ru

1.2.3.4      ok.ru

1.2.3.4      m.ok.ru

1.2.3.4      www.odnoklassniki.ru

...

Можно увидеть, что доменные имена крупных российских социальных сетей перенаправлены на некий неизвестный хост 1.2.3.4. Поэтому, если Вы обнаружили в файле hosts подозрительные записи, которых Вы уж точно не добавляли, то можете их смело удалять. Однако, в случае, если они через некоторое время появляются вновь, можно с уверенностью говорить о наличии в системе активного вируса, одним из функциональных особенностей которого является периодическое обновление данных файла. Поскольку это не место загрузки вируса, а место модификации, то надо сперва обнаружить в системе сам активный код вируса и устранить причину, а затем уже следствие.
Ко всему прочему, само местоположение файла hosts в рамках системы может быть подвергнуто атаке и изменено. Задается оно соответствующим параметром в ветви реестра:

  • ключ HKLMSystemCurrentControlSetServicesTcpipParameters,
    параметр DatabasePath = %SystemRoot%System32driversetc

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

DNS

DNS (Domain Name System) — распределенная система доменных имен, которая используется для сопоставления IP-адреса с именем хоста (фактически получения IP-адреса на основе заданного имени). Для большинства рабочих окружений на основе операционной системы Windows это основной метод разрешения внешних (по отношению к локальной сети) имен хостов. Конечно же, он имеет меньший приоритет по сравнению с вышеописанным файлом hosts, тем не менее используется очень часто. С помощью (локального|внешнего) сервера DNS разрешаются символические имена узлов (например datadump.ru), к которым Вы обращаетесь в локальной|внешней сети, и которые не были разрешены другими, более приоритетными, методами. Существует категория вирусов, которые преднамеренно модифицируют параметры реестра, относящиеся к настройкам DNS-серверов с целью перенаправления сетевого трафика скомпрометированной машины на собственные сервера имен. В операционной системе Windows настройки DNS-серверов, к которым обращается модуль разрешения имен, хранятся в специальном ключе реестра:

  • HKLMSYSTEMCurrentControlSetServicesTcpipParameters

параметры DhcpNameServer и NameServer которого должны содержать исключительно DNS-сервера, предоставляемые вашим локальным сетевым подключенным сетевым оборудованием (роутером/маршрутизатором), контроллером домена либо провайдером-поставщиком услуг доступа к сети Интернет.
Дополнительно, я бы проверил одноименные параметры для адаптеров и интерфейсов в следующих ключах реестра:

  • HKLMSYSTEMCurrentControlSetServicesTcpipParametersAdapters{GUID}
  • HKLMSYSTEMCurrentControlSetServicesTcpipParametersInterfaces{GUID}

Для того, чтобы проверить корректность адресов DNS-серверов, Вы должны просто-напросто знать адреса «своих» серверов, обычно это адреса из частных диапазонов подсетей: 192.168.0.0/16, 172.16.0.0/12 и 10.0.0.0/8, но не во всех случаях.
Для того, чтобы можно было посмотреть адреса DNS-серверов, можно выполнить из консоли (cmd) следующую команду:

ipconfig /all

которая сгенерирует вывод информации обо всех сетевых интерфейсах, сконфигурированных в вашей операционной системе:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

. . .

Ethernet adapter Подключение по локальной сети:

   DNS-суффикс подключения . . . . . : domain.com

   Описание. . . . . . . . . . . . . : Intel(R) 82579LM Gigabit Network Connection

   Физический адрес. . . . . . . . . : 24-BE-05-17-5D-79

   DHCP включен. . . . . . . . . . . : Да

   Автонастройка включена. . . . . . : Да

   IPv4-адрес. . . . . . . . . . . . : 172.16.5.16(Основной)

   Маска подсети . . . . . . . . . . : 255.255.255.128

   Аренда получена. . . . . . . . . . : 24 февраля 2016 г. 9:15:55

   Срок аренды истекает. . . . . . . . . . : 4 марта 2016 г. 9:16:02

   Основной шлюз. . . . . . . . . : 172.16.5.126

   DHCP-сервер. . . . . . . . . . . : 172.16.2.197

   DNS-серверы. . . . . . . . . . . : 172.16.0.23

                                       172.16.1.23

   NetBios через TCP/IP. . . . . . . . : Включен

. . .

Для того, чтобы найти в этом огромном потоке информации интересующие нас DNS-сервера, Вы можете найти в выводе тот интерфейс, который «смотрит» у вас в сеть Интернет, и изучить сопоставленные с ним параметры конфигурации. Стоит обратить внимание на значение параметра «DNS-серверы». Если Вы вдруг обнаружили «левые» адреса серверов, принадлежность которых сложно установить, то можете смело их удалять, либо менять на корректные.

Оболочка (Проводник)

С тех давних пор, как мир обленился и основная масса пользователей отказалась от текстового интерфейса в пользу графического, классическое понимание оболочки (shell) определенным образом трансформировалось и в дополнение к своим типичным консольным характеристикам текстового режима приобрело дополнительные особенности в виде графической среды взаимодействия с операционной системой. Графическая оболочка пользовательского интерфейса операционной системы Windows, иначе называемая Проводником и представленная в системе файлом explorer.exe, включает в себя функционал различных элементов интерфейса пользователя, как то: рабочий стол, меню пуск, проводник (файловый менеджер), панель инструментов и некоторые другие элементы взаимодействия. Однако в Windows с целью расширения целевого применения операционной системы в качестве различных однооконных киосков, не стали жестко закреплять «родную» пользовательскую оболочку explorer.exe и дали пользователю свободу конфигурировать альтернативную оболочку посредством ключей реестра, чем и не преминули воспользоваться вирусописатели.
В реестре за настройку пользовательской оболочки отвечает ключ:

  • ключ HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon,
    параметр Shell = explorer.exe

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

  • ключ HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon,
    параметр Userinit = C:Windowssystem32userinit.exe,

Обнаружение вируса в данном случае сводится к проверке наличия сторонних записей в данных ключах реестра.

Конфигурационные ini-файлы

Вплоть до современных версий в системе Windows все еще присутствует такой рудимент из прошлого, как конфигурационные ini-файлы. Речь у нас идет о следующих файлах:

  • %SystemRoot%system.ini
  • %SystemRoot%win.ini

В старых версиях Windows ini-файлы активно использовались в качестве основного механизма конфигурации системы, в том числе и для автозагрузки. В современных же версиях Windows система загружает некоторые параметры из указанных ini-файлов в реестр, используя так называемое отображение (сопоставление), задаваемое в следующем ключе реестра:
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionIniFileMapping
Отображение (маппинг) осуществляется следующим образом:

  • Переменные Run и Load из секций [boot], [windows] файла win.ini, проецируются в ключ реестра HKCUSoftwareMicrosoftWindows NTCurrentVersionWindows. Таким образом, данные параметры операционная система обрабатывает как элементы автозагрузки, то есть как если бы они находились в секции [windows] файла win.ini.
  • Переменная Shell из файла system.ini проецируется в HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogon.

Отображение используется в целях совместимости с устаревшим программным обеспечением, которое знает про существование ini-файлов, однако не имеет никакого представления о том, что такое реестр. В случае подобного кода, который работает через совместимые функции Win16/Win32 API, функции эти получают информацию не из описанных файлов напрямую, а уже из соответствующих сопоставленных ключей реестра. Как мы можем догадаться, механизм этот оставлен разработчиками исключительно в целях совместимости с устаревшим интерфейсом Win16, который не рекомендуется к использованию в современных реалиях Win32. Но, как говорится, что работает, то может быть использовано, поэтому вирусы иногда задействуют данный механизм.

Фильтры выполнения оболочки

Так называемые фильтры выполнения оболочки (Shell Execute Hooks) предоставляют программный метод, который расширяет функционал системных функций ShellExecute и ShellExecuteEx. Конфигурацию фильтров в реестре можно найти в разделах:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerShellExecuteHooks
  • HKLMSoftwareWow6432NodeMicrosoftWindowsCurrentVersionExplorerShellExecuteHooks

Записи зачастую содержат идентификаторы CLSID, ссылающиеся на ключи HKLMSOFTWAREClassesCLSID{CLSID}, в которых в параметрах InprocServer32 содержится информация о конкретном исполняемом модуле фильтра.

Фильтры выполнения оболочки не рекомендованы к использованию начиная с Windows Vista.

Объекты загрузки оболочки

Объекты загрузки оболочки (SSO/Shell Service Object) — это библиотеки, которые в процессе загрузки пользовательского окружения загружаются системной программой оболочки explorer.exe в качестве так называемых собственных расширений проводника. Функционируют в контексте родительского процесса проводника (explorer.exe) и загружаются до авторизации пользователя в системе.
В реестре представлены ключами:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerShellServiceObjects
  • HKLMSOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionExplorerShellServiceObjects

В дополнение к вышеописанным, имеются еще так называемые объекты отложенной загрузки оболочки (SSODL/Shell Service Object Delay Load), обычно представляющие из себя типичные библиотеки DLL. Описываются ключом реестра:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionShellServiceObjectDelayLoad

параметры данного раздела — это имена объектов оболочки, которые записываются в форме:
Имя_объекта = CLSID (например: WebCheck = {E6FB5E20-DE35-11CF-9C87-00AA005127ED})
Как мы видим, имена ссылаются на идентификаторы CLSID, которые можно найти в разделе HKLMSOFTWAREClassesCLSID{CLSID}, где информация о местоположении исполняемого файла оболочки содержится в параметре InprocServer32.

Уведомления оболочки

В Windows имеется механизм под названием Winlogon Notification Packages или Уведомления оболочки. Механизм уведомлений используются для запуска программ при возникновении предопределенных системных событий. События подразделяются на: вход (logon), выход (logoff), запуск (startup), завершение (shutdown), запуск хранителя экрана (startscreensaver) и останов хранителя экрана (stopscreensaver). Когда модуль Winlogon стартует, он проверяет реестр и загружает зарегистрированные пакеты уведомления оболочки (представленные в виде .dll-библиотек). Приведенные события генерируются самим процессом Winlogon.exe на разных стадиях своего функционирования. Когда событие возникает, Winlogon в параметрах ключа Notify ищет функцию обработчика того или иного события. Вирусы обычно загружают себя по событию входа пользователя (logon) в операционную систему.
Ответственный ключ реестра:

  • HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotify

Модули (библиотеки) инициализации приложений

App Init DLLs — это системный механизм, который позволяет загружать произвольный список библиотек в адресное пространство каждого пользовательского процесса, использующего библиотеку user32.dll (а её функции используют практически все программы). Все начинается с загрузки user32.dll. Поскольку это типовая библиотека, входящая в состав базового набора поддержки подсистемы Win32 API, она загружается стандартным механизмом LoadLibrary. Загрузчик образа вызывает функцию DllEntryPoint библиотеки user32.dll, которая в недрах своего алгоритма содержит процедуру сканирования ключа реестра AppInit_Dll, которая загружает все перечисленные в ключе библиотеки в виртуальное адресное пространство процесса, а затем поочередно вызывает для каждой из них процедуру инициализации. Именно таким образом перечисленные библиотеки получают управление. Этот механизм так же носит название DLL injection, или внедрение динамической библиотеки. Естественно, если какое-либо приложение не использует стандартную библиотеку user32.dll, то никакие библиотеки, описанные в ключе AppInit_Dll в его адресное пространство загружены не будут. Согласитесь, что подобный функционал очень интересен для разнообразного злонамеренного кода. Поэтому, после всех проблем, которые доставил данный механизм в плане безопасности операционной системы, начиная с Windows 7 разработчики решили добавить необходимость подписания кода загружаемых библиотек. А в последствии грозятся и вовсе перейти на загрузку только лишь подписанных библиотек.

Later versions of Windows will load only code-signed AppInit DLLs and will not include a registry key to disable this requirement.

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

  • для 32-битных DLL, функционирующих в 32-битной системе:
    HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWindows
    параметр AppInit_DLLs
  • Для 64-битных DLL, функционирующих в 64-битной системе:
    HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWindows
    параметр AppInit_DLLs
  • Для 32-битных DLL, функционирующих в 64-битной системе:
    HKLMSOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionWindows
    параметр AppInit_DLLs

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

Известные библиотеки

В операционных системах Windows (начиная с Windows 95/NT) присутствует механизм под названием KnownDLL (известные библиотеки), в основном предназначающийся для кеширования часто используемых системных DLL с целью сокращения общего времени загрузки приложений (увеличения производительности). Помимо основного применения, механизм обеспечивает довольно интересный дополнительный функционал, который позиционируется как средство обеспечения безопасности. Оно позволяет предотвращать такой хитрый трюк, как загрузка дубликатов известных системных библиотек непосредственно из директории самого приложения. Поместил злоумышленник, к примеру, свою копию библиотеки wininet.dll в директорию приложения, которое данную библиотеку использует, и по идее данная библиотека должна загрузиться приоритетно, поскольку находится в директории загружаемого приложения, ан нет, механизм KnownDLL загрузит её из %SystemRoot%System32wininet.dll. Когда загрузчик образов подготавливает бинарный файл к выполнению, он смотрит в таблицу импорта и перечисляет библиотеки, которые используются загружаемым приложением. Для каждой библиотеки, которую загрузчик находит в таблице импорта, он пытается спроецировать библиотеку в адресное пространство процесса, для того, чтобы сделать функции библиотеки доступными основному приложению. Однако на этом же этапе загрузчик просматривает контейнер системных объектов KnownDLL и ищет в нем объект с именем KnownDlls<имя_библиотеки>, в случае существования которого, вместо подгрузки DLL непосредственно из текущего местоположения, загрузчик использует информацию объекта.
Описание секций присутствует в ключе реестра:

  • HKLMSystemCurrentControlSetControlSession ManagerKnownDLLs

Если Вы внимательно изучите содержимое ключа, то заметите, что все перечисленные в нем DLL не имеют полного пути, поскольку по задумке разработчиков располагаются в директории %SystemRoot%System32 (задается ключом DllDirectory). Это поднимает уровень безопасности, поскольку теперь чтобы вирусу прикинуться известной библиотекой и использовать механизм KnownDLL, ему потребуются еще и права записи на системную папку. Создание секций KnownDlls<имя_библиотеки> для каждой DLL происходит на этапе загрузки операционной системы специализированным кодом, который просматривает описанный выше ключ и создает соответствующие секции. Поэтому, обнаружение вируса, использующего механизм KnownDLL, сводится к просмотру записей о библиотеках в описанном выше ключе и удалении модулей, вызывающих подозрение.

Параметры загрузки образов

Среди множества прочих, в системе реализован механизм под названием параметры загрузки образов (IFEO, Image File Execution Options), позволяющий контролировать некоторые аспекты запуска исполняемых образов (исполняемых файлов). Фактически он предоставлен разработчиками в целях отладки собственных программ. Одной из особенностей данного механизма является возможность перехватывать вызовы к исполняемому образу (программе), что дает неограниченные возможности по полному контролю запускаемого приложения, в том числе подмене его собственным кодом.
Настройки параметров загрузки хранятся в ключах реестра:

  • HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options;
  • HKLMSOFTWAREWow6432NodeMicrosoftWindows NTCurrentVersionImage File Execution Options;

Данные разделы реестра содержат подключи, указывающие на имена загружаемых образов, которые, в свою очередь, содержат параметры, описывающие разнообразные опции для запуска той или иной программы. В контексте текущей статьи все параметры описывать нет никакого резона, скажу только, что со стороны вредоносного кода интересным будет использование параметра Debugger, который должен указывать, по версии разработчиков, на отладчик, запускаемый каждый раз, когда описанное приложение будет стартовать. Иными словами, например, если в ключе explorer.exe создать параметр Debugger (типа REG_SZ) и присвоить ему значение myapp.exe, то каждый раз при загрузке системой проводника будет запускаться указанное приложение с параметрами командной строки, указывающими на исходную программы и переданные уже ей параметры. Таким вот незатейливым способом вирусы могут подменять различные ключевые системные модули собственными. В этом случае, подозрительным с точки зрения безопасности будет факт присутствия в каком-либо модуле параметра Debugger, указывающего на подозрительное приложение.

Зачастую таким образом вирусами перехватывается запуск проводника (explorer.exe), поэтому при нахождении в описанных выше ключах реестра подключа explorer.exe можете смело его удалять.

Предзагрузка командного интерпретатора

Если командный интерпретатор (cmd.exe) запускается без параметра командной строки /D, то код интерпретатора вначале проверяет следующие ключи реестра:

  • ключ HKLMSoftwareMicrosoftCommand Processor,
    параметр AutoRun
  • ключ HKCUSoftwareMicrosoftCommand Processor,
    параметр AutoRun

..и если параметр AutoRun присутствует хотя бы в одном из описанных ключей, то указанный в параметре исполняемый образ загружается непосредственно перед загрузкой самого cmd.exe. Параметры пользователя имеют приоритет перед параметрами компьютера. Данную особенность активно эксплуатируют разного рода вирусы, поэтому стоит проверять вышеуказанные ключи реестра в обязательном порядке.

Планировщик заданий (Shared Task Scheduler) — системный компонент, предоставляющий возможность планирования выполнения заданий (программ или скриптов) в системе на основе большого количества всевозможных критериев. Другими словами, планировщик заданий отвечает за автоматический запуск пользовательских и системных задач, запланированных по определенным условиям. Подобные задания зачастую связаны с запуском внешних приложений, поэтому не сложно догадаться, что это достаточно интересный механизм для некоторых категорий вирусов. К примеру, код вируса может создать собственную задачу, которая будет с определенной периодичностью подменять системные DNS-сервера (кстати воочию подобное наблюдал).
Для контроля заданий нам потребуется запустить планировщик. Запускается планировщик заданий разными способами, но один из самых универсальных это запуск через цепочку Панель управленияАдминистрированиеПланировщик заданий. При запуске планировщика в Windows 7 открывается стандартный интерфейс апплета:

планировщик задание вируса

Для просмотра сторонних запланированных задач, выделяем пункт Библиотека планировщика заданий 1, затем ставим курсор (выделяем) на пункт задания в области списка заданий 2, смотрим вкладку действия 3 для каждого заинтересовавшего нас задания, с целью выяснить, какие же действия оно выполняет. Откровенно подозрительными обычно являются задания, которые производят запуск исполняемых модулей неизвестного назначения (с невнятными именами) из таких местоположений, как %LOCALAPPDATA% и вложенных подкаталогов (например: C:Users<имя_пользователя>AppdataLocalwupdatewupdate.exe). При обнаружении подобного подозрительного или откровенно вредоносного задания, просто удаляем его из списка задач.

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

  • Каталог C:WindowsSystem32Tasks;
  • Каталог C:WindowsTasks;
  • Ключ реестра HKLMSoftwareMicrosoftWindows NTCurrentVersionScheduleTaskcacheTasks;
  • Ключ реестра HKLMSoftwareMicrosoftWindows NTCurrentVersionScheduleTaskcacheTree;

Windows 2000/XP:
В данных версиях операционных систем задачи можно было найти в реестре, в следующей ветви:
HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerSharedTaskScheduler

Службы [Сервисы] и драйверы

Службы (Сервисы) — это приложения, автоматически или по возникновению определенных событий, запускаемые в фоновом режиме на различных стадиях загрузки операционной системы, обеспечивающие основные функциональные возможности ОС. Как правило, службы (сервисы) не взаимодействуют с графическим интерфейсом пользователя, поэтому говорится, что они не имеют графического интерфейса, и работа их в большинстве случаев не заметна для пользователя. Служба, в зависимости от настроек, может быть запущена автоматически при загрузке операционной системы, поэтому начать функционирование она может до того момента, как пользователем будет произведен вход в Windows. Основная задача по обнаружению вируса, который установил в систему собственную службу, состоит в том, чтобы просмотреть весь список запускаемых служб и детально изучить его на предмет наличия подозрительных сервисов. С этой целью можно использовать знакомую уже многим оснастку Службы, вызвав её следующим образом:
Нажать комбинацию Win + R и вписать в строку services.msc, затем нажать ОК. После этого мы видим примерно следующее:

обнаружение вредоносного сервиса

Для полноты восприятия переключаемся в стандартный вид (1), далее сортируем службы по столбцу «Состояние», просто щелкнув на нём (2), тем самым выстроив сначала службы, которые в данный момент работают. И среди работающих служб начинаем искать те, которые могут показаться нам подозрительными. В случае нахождения подозрительной службы можно попробовать её выделить (3), нажать правую кнопку и попытаться остановить (4), выбрав одноименный пункт меню. После остановки службы можно зайти в «Свойства» и изменить Типа запуска (StartUp Type) на Отключено (Disabled), перезагрузив затем операционную систему.
На самом деле, можно смело утверждать, что практически с нулевой вероятностью «родные» системные сервисы от Microsoft вызовут у нас подозрение, поэтому хорошая практика, в данном случае, состоит в том, чтобы отфильтровать как-либо образом сторонние службы, написанные третьими лицами и вот уже среди них провести проверку. Визуально отличить стороннюю службу (коей обычно и является вирус) от системной можно при наличии определенных знаний, но не у всех они имеются, поэтому существует более надежный и простой способ с участием утилиты msconfig (Конфигурация системы). Из командной строки с правами локального администратора запускаем команду:

msconfig

открывается окно утилиты конфигурирования системы. Переходим во вкладку «Службы» — выделяем чекбокс Не отображать службы Microsoft, затем щелкаем по столбцу «Состояние», дабы отсортировать работающие службы в начало списка. В итоге у нас получится список из служб сторонних разработчиков такого вот примерно вида:

обнаружение сервиса вируса

А вот уже среди отфильтрованных (оставшихся) служб можно проводить детальный анализ.

Скрытые службы

На самом деле иногда все бывает гораздо сложнее, поскольку при определенных настройках безопасности службы и применении некоторых других методов, сервисы могут быть «скрыты». Подобные скрытые службы Вы не обнаружите при помощи традиционного инструментария (например: оснастка «Службы»). Исходя из этого более надежным, на мой взгляд, решением видится самостоятельный анализ ветви реестра текущей конфигурации:

  • HKLMSYSTEMCurrentControlSetServices

В данном разделе реестра определены и службы и драйвера, инсталлированные в данный момент в операционной системе

Каждый ключ реестра в данной ветви — это запись о драйвере либо сервисе, который определен в операционной системе. В каждом ключе может содержать вложенные ключи, которые описывают дополнительные параметры конфигурации драйвера/службы.
На что стоит обращать внимание:

  • параметр Description — содержит либо осмысленное имя службы/драйвера, либо указание на библиотеку вида @%SystemRoot%system32AxInstSV.dll,-104.
  • параметр DisplayName — содержит либо осмысленное отображаемое имя службы/драйвера, либо указание на библиотеку.
  • параметр DriverPackageId — содержит указание на .inf-файл драйвера.
  • параметр ImagePath — содержит полный путь и имя файла образа загрузки для службы/драйвера. Многие службы группируются в рамках единого процесса svchost.exe, в этом случае содержат что-то вроде: %SystemRoot%system32svchost.exe -k AxInstSVGroup. Зачастую у драйверов имя файла образа имеет расширение .sys, у служб обычно .exe, но это не обязательное правило.

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

  • HKLMSYSTEMControlSet001Services
  • HKLMSYSTEMControlSet002Services
  • HKLMSYSTEMControlSet003Services

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

В случае обнаружения службы/драйвера вируса полностью удалить её из системы можно либо удалением соответствующего ключа реестра, либо командой:
sc delete имя_службы

Internet Explorer

Безо всякого сарказма это браузер с мировым именем :) На этой содержательной фразе можно было бы и остановиться, однако даже столь емкий термин не может в полной мере отразить весь тот огромный узел разнородных проблем, которых породили разработчики браузера самим фактом его создания. Пожалуй, можно смело утверждать, что браузер корпорации Microsoft является самой большой дырой в безопасности системы (на 2016 год почти восемь сотен обнаруженных уязвимостей). Восхождение звездного продукта началось с вытеснения в 1997 году конкурента под названием Netscape Navigator. Стратегическое решение было принято в связи со всё возрастающей ролью сети Интернет, и необходимостью более глубокой внутренней интеграцией обозревателя в систему. Вероятно, сама идея была действительно хорошая, поскольку продукт получился весьма функциональным, но как в последствии стало ясно, с очень непродуманной архитектурой. Практически постоянно можно наблюдать обход настроек безопасности, неправильную обработку внешних файлов, спуфинг, неавторизованную установку расширений. Зачастую уязвимости связаны с внешними плагинами типа Flash Player и Java, однако отсутствие изоляции процессов и собственной (встроенной) обработки флеш и явы делает сам браузер беспомощным. Последнее время Microsoft работают над новым браузером, который будет носить название Edge, вот только будет ли он сохранять совместимость?

Подключаемые протоколы

В браузере Internet Explorer есть возможность добавлять так называемые подключаемые протоколы, которые могут быть сконфигурированы пользователем в дополнение к стандартным. Протоколы предназначены для расширения функционала браузера и фактически позволяют определить метод доступа к внешним ресурсам исходя из пользовательских критериев, то есть по вашему собственному протоколу, задавая специфический префикс URL. Протокол сопоставляет поведение браузера и логики работы с символической короткой строкой вида mailto: или http:.

  • ветвь HKLMSOFTWAREClassesPROTOCOLS содержит описание специализированных фильтров и обработчиков.
  • подветвь HKLMSOFTWAREClassesPROTOCOLSHandler содержит подключи, описывающие обработчики протоколов. подключи представляют собой имена обработчиков, в которых имеется параметр CLSID, указывающий на соответствующий CLSID обработчика.
  • подветвь HKLMSOFTWAREClassesPROTOCOLSFilter содержит подключи, описывающие фильтры протоколов. подключи представляют собой имена фильтров, в которых содержится параметр CLSID, указываются на соответствующий CLSID фильтра.

Как мы видим, классически все эти указанные в подразделах CLSID указывают на тот же CLSID в ключе HKEY_LOCAL_MACHINESOFTWAREClassesCLSID{CLSID}, а вот уже внутри информация о местоположении самого исполняемого модуля содержится в параметре InprocServer32. Обнаружение вируса сводится к просмотру и нахождению подозрительных обработчиков и фильтров.

Элементы управления ActiveX для Internet Explorer

ActiveX — это механизм (дополнение), благодаря которому Internet Explorer может использовать другие системные приложения. При помощи него обеспечивается расширение функциональных возможностей браузера и, тем самым, достигается «лучшее взаимодействие» с веб-ресурсом. Например, через IE онлайновый антивирус посредством собственного ActiveX-компонента сканирует локальные файлы [на машине], сайт Microsoft Update устанавливает через свой ActiveX-компонент обновления безопасности в систему, ресурс может вызывать Windows Media Player для проигрывания звуковых форматов, вызывать QuickTime для воспроизведения анимации и так далее. Конечно же, данной технологией не могли не заинтересоваться вирусописатели, разрабатывающие вредоносные ActiveX-компоненты, которые обычно устанавливаются для последующей загрузки дополнительного программного обеспечения без вашего ведома. Все элементы ActiveX, которые инсталлируются через Internet Explorer, попадают сперва в директорию %Windir%Downloaded Program Files. Обычно это модули типов .exe, .dll, .ocx, .cab и сопутствующие .inf. Кроме самого исполняемого модуля (или архива), сюда же попадает и .inf-файл, описывающий процесс инсталляции, при участии которого и выполняется установка ActiveX-компонента в систему. Устанавливаемые таким образом элементы могут регистрировать себя в системе в качестве полноценных приложений. Для самостоятельного поиска вируса нам потребуется простой механизм по изучению списка ActiveX-элементов, установленных в системе. Существует ключ реестра, который содержит списки идентификаторов ActiveX, установленных для IE:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionExtPreApproved

Однако ключ (как всегда) содержит одни лишь голые идентификаторы, поэтому для установления ассоциации с исполняемыми модулями нам (опять) предстоит вручную проверять каждое значение CLSID в другом ключе реестра HKEY_CLASSES_ROOTCLSID и изучать для каждого CLSID подключ InprocServer32.

Общие параметры сети в Internet Explorer

Разнообразные настройки для сети Интернет можно обнаружить в следующем ключе:

  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionInternet Settings

В ключе содержится большое количество параметров, и ниже посмотрим на какие же подключи стоит обратить особое внимание.

Сайты и протоколы Internet Explorer

Сайты и протоколы, добавленные в зону «Надежные узлы» (Trusted Zone). Обычно добавление в данную зону позволяет перечисленным в списке сайтам обходить некоторые виды проверок безопасности, то есть считаться более доверенными.
Используемые ключи реестра:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZoneMapDomains
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZoneMapDomains
  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZoneMapProtocolDefaults
  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZoneMapProtocolDefaults

Об обнаружении вируса в системе может говорить наличие в описанных выше ключах записей о сторонних (неизвестных вам) ресурсах, назначение которых пользователю сложно определить.

Настройки прокси сервера

В ключе:

  • HKCUSOFTWAREMicrosoftWindowsCurrentVersionInternet Settings

..параметр ProxyServer обычно отсутствует. В случае же наличия параметра следует понять, легальный ли это прокси и нужен ли он вам в работе?

Browser Helper Objects (BHO)

Browser Helper Object (Объект помощи браузеру, помощник браузера) — исполняемый модуль DLL, написанный в виде плагина для браузера Internet Explorer, предназначающийся для обеспечения дополнительного функционала, стандартно не поддерживаемого браузером. Вне зависимости от расширения практически всегда представляют собой обычные DLL библиотеки, которые загружаются вместе с браузером и работают в контексте основного процесса браузера. По этой причине разнообразная подозрительная активность зачастую остается незамеченной некоторыми персональными фаерволами. Вирусы могут инсталлировать BHO, отслеживающие защищенные соединения и мониторящие пароли, либо записывающие активность пользователя при посещении определенных интернет-ресурсов. С точки зрения вируса подключить BHO к браузеру Internet Explorer достаточно просто, для этого достаточно стандартными средствами зарегистрировать класс BHO и прописать ссылку на него в специальном ключе реестра:

  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser Helper Objects
  • HKLMSoftwareWow6432NodeMicrosoftWindowsCurrentVersionExplorerBrowser Helper Objects

подразделы ключа имеют имя-значение GUID и ссылаются на одноименный компонент.

Плагины Internet Explorer

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

  • HKLMSOFTWAREMicrosoftInternet ExplorerPlugins

подразделы описывают различные разделы плагинов.

Панели инструментов Internet Explorer

Панели инструментов Internet Explorer — это дополнения для браузера, которые позволяют создавать и добавлять отдельные пользовательские панели, наборы инструментов или даже отдельностоящие панели рабочего стола в различные местоположения окна браузера: командную строку, строку закладок, меню, системную панель задач, а так же в прочие управляющие элементы. Распространены ситуации, когда панели инструментов создаются установленными в браузер BHO.
Ответственные ключи реестра:

  • HKLMSOFTWAREMicrosoftInternet ExplorerToolbar
  • HKCUSOFTWAREMicrosoftInternet ExplorerToolbar
  • HKLMSOFTWAREWow6432NodeMicrosoftInternet ExplorerToolbar

содержит подразделы в виде GUID, которые ссылаются непосредственно на компоненты.

Расширения Internet Explorer

Расширения для Internet Explorer (Addons, Аддоны) — это специальная категория дополнений, которые используются для добавления элементов к пользовательскому интерфейсу браузера. Возможна модификация главной панели инструментов с целью реализации на этой панели разнообразных отдельностоящих кнопок и полноценных меню. Кнопки панели инструментов могут запускать приложение, скрипт или открывать новую панель. Меню (иногда называемые сервисами), могут создавать пользовательское подменю в меню «Сервис» или «Справка» на панели инструментов браузера. Очевидно, что меню (сервисы) и кнопки сами по себе опасности не представляют ровно до того момента, пока не будет задействован их (возможный) деструктивный функционал, например непосредственным нажатием на компонент. Ведь это всего лишь ссылки, но вот после нажатия (активации) ссылка вызывает закрепленную функциональную процедуру, которая не всегда может выполнять легитимные действия.
С определенной версии IE все расширения браузера можно увидеть в подразделе «Панели инструментов и расширения» специализированного апплета Надстройки, до которого можно добраться через «Свойства обозревателя» — «Программы»- «Настроить надстройки»:

Internet Explorer Add-ons

Другой способ предусматривает запуск браузера Internet Explorer из командной строки с параметром -extoff:

iexplore.exe -extoff

Поскольку при подобном типе запуска браузер позволяет увидеть все без исключения (и нормальные и скрытые) расширения.

Используемые ключи реестра:

  • HKLMSOFTWAREMicrosoftInternet ExplorerExtensions
  • HKCUSOFTWAREMicrosoftInternet ExplorerExtensions
  • HKLMSOFTWAREWow6432NodeMicrosoftInternet ExplorerExtensions

Подразделы представляют из себя (традиционно) идентификаторы CLSID, в которых вложенными ключами описываются расширения.

Пункты меню Internet Explorer

Возможно добавить дополнительные пункты в контекстное меню браузера Internet Explorer. Обычно этот тип меню можно увидеть, нажав правую кнопку мыши на какой-либо активной ссылке, расположенной на странице, отображаемой в данный момент в окне браузера.
В реестре настройка меню представлена по следующему пути:

  • HKCUSOFTWAREMicrosoftInternet ExplorerMenuExt
  • HKLMSOFTWAREMicrosoftInternet ExplorerMenuExt

Подразделы имеют наименование пунктов меню. Параметр «по умолчанию» каждого подраздела указывает на функциональный модуль, ответственный за конкретный пункт меню.

Дополнительные параметры Internet Explorer

С определенной версии IE существует возможность модифицировать содержимое вкладки Дополнительно в свойствах обозревателя (Свойства обозревателя — Дополнительно), добавив туда новую группу настроек.
Ответственный ключ реестра:

  • HKLMSOFTWAREMicrosoftInternet ExplorerAdvancedOptions

подключи описывают группы параметров во вкладке Дополнительно.

Стартовая страница

Стартовая (начальная) страница отображается в первой (самой левой) стартовой вкладке окна браузера непосредственно после запуска.
Используемые ключи и параметры реестра:

  • ключ HKLMSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Start Page
  • ключ HKCUSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Start Page
  • ключ HKEY_USERSSID_пользователяSOFTWAREMicrosoftInternet ExplorerMain,
    параметр StartPage

Страница поиска

  • HKLMSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Search Page
  • HKCUSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Search Page

Страница по умолчанию

Страница по умолчанию — страница, открываемая при нажатии на пиктограмму с изображением «домика» (располагающуюся справа от строки адреса).
Используемые ключи и параметры реестра:

  • HKLMSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Default_Page_URL
  • HKCUSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Default_Page_URL = что-то вроде http://go.microsoft.com/fwlink/p/?LinkId=255141

Префикс по умолчанию

Описывает префикс, который добавляется к адресу при отсутствии явного указания префикса URL пользователем в строке адреса. Обычно в IE используется приставка http://.
Используемый ключ и параметр реестра:

  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionURLDefaultPrefix,
    параметр @=http://
  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionURLPrefixes,
    параметры ftp, home, mosaic, www

Трансляция неизвестных адресов

Интерфейс IURLSearchHook раскрывает метод, используемый браузером для трансляции адресов, содержащих неизвестный или не указанный (не конкретизированный) непосредственно протокол. Примером может служить ситуация, когда в адресной строке браузера вводится адрес, не содержащий префикса http://. Для начала Internet Explorer пытается самостоятельно определить протокол используя оригинальный адрес. В ситуации, когда браузер не имеет возможности определить протокол адреса в адресной строке, он вызывает URLSearchHook, создает объекты URL Search Hook (которые зарегистрированы в системе) и вызывает для каждого объекта метод трансляции до тех пор, пока URL не будет оттранслирован или все фильтры не будут обработаны.
Настройка трансляции производится в ключе реестра:

  • HKCUSOFTWAREMicrosoftInternet ExplorerURLSearchHooks

Параметры имеют имена CLSID, ссылающиеся на ключи HKLMSOFTWAREClassesCLSID{CLSID}, в которых в параметрах InprocServer32 содержится информация о трансляторе. По-умолчанию это C:WindowsSystem32ieframe.dll.

Устаревшие (необрабатываемые, исключенные) настройки Internet Explorer

Данная группа параметров активно использовалась в устаревших ныне версиях браузера (5/6/7/8) и в современных либо не используется, либо заменена другими механизмами конфигурирования:

  • HKLMSOFTWAREMicrosoftInternet ExplorerSearch,
    параметр SearchAssistant
  • HKLMSOFTWAREMicrosoftInternet ExplorerSearch,
    параметр CustomizeSearch
  • HKCUSOFTWAREMicrosoftInternet ExplorerSearch,
    параметр CustomizeSearch

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

  • HKCUSOFTWAREMicrosoftInternet ExplorerSearchURL,
    параметр Default или ((По умолчанию))

Собственный заголовок окна. В старых версиях IE у окна браузера постоянно выводился заголовок, так вот для того, что бы иметь возможность задавать собственный заголовок окна браузера, был введен специализированный параметр реестра:

  • HKCUSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Window Title

Отображение результатов поиска в главном окне/окне поиска браузера. Еще один устаревший параметр, который позволял изменить стиль отображения результатов поиска:

  • HKCUSOFTWAREMicrosoftInternet ExplorerMain,
    параметр Search Bar

Ориентировочно до версии IE6 в коде обозревателя присутствовал Мастер подключения к Интернету:

  • HKCUSOFTWAREMicrosoftInternet Connection Wizard,
    параметр ShellNext

где он теперь?

Локальная групповая политика

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

  • %SystemRoot%System32GroupPolicyMachineregistry.pol

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

Многоуровневый поставщик услуг

Winsock LSP (Layered Service Provider) — многоуровневый поставщик услуг, Windows Sockets версии 2.0, предоставляющий возможность пользователю подключать собственные библиотеки DLL для обработки вызовов Windows Sockets API. Обычно поставщик занимается обработкой низкоуровневых задач, связанных с сетевым трафиком. Поставщик обрабатывает данные, передаваемые по протоколу TCP/IP, который используется для связи с локальной сетью и сетью Интернет. В процессе приема/передачи данных по протоколу TCP/IP, информация последовательно проходит по цепочке через все зарегистрированные в стеке TCP/IP поставщики (по структуре обычные DLL-библиотеки, которые используют Winsock API). Каждый поставщик может как угодно модифицировать проходящие данные и адреса. Таким образом, механизм LSP используется для вполне легитимных действий над трафиком и пространством имен, таких как подсчет трафика, антивирусная проверка, фильтрация контента, поэтому, например, многие антивирусы и фаерволы могут на вполне легальных основаниях находиться в стеке TCP/IP в качестве поставщиков услуг. Однако, некоторые вирусы могут добавлять свои модули в цепочку обработки.
Список поставщиков услуг хранится в специальной базе, которую можно найти в реестре в следующем разделе:
HKLMSystemCurrentControlSetServicesWinsock2Parameters
Не редка ситуация, когда Вы каким-либо образом нашли и удалили из цепочки модуль вируса, который находился в стеке поставщиков, однако не произвели коррекцию самой цепочки, в этом случае цепочка обработки рвется, и работа по протоколу TCP/IP с локальной сетью и сетью Интернет становится невозможной. Бывают и случаи удаления вредоносной DLL из файловой системы без должной коррекции (отмены регистрации провайдера) базы провайдеров, которые тоже не приводят ни к чему хорошему. Для восстановления (корректировки) цепочки провайдеров существуют утилиты LSP-Fix и AVZ (является полноценным сканером), которые проходят по цепочке разделов реестра Winsock2 и восстанавливают корректные связи.
Конечно, в случае с Windows Sockets 2.0 все далеко не так радужно. Чаще всего, в случае проблем с работоспособностью локальной сети и интернет, выполняют восстановление по заданному системному шаблону, однако этот шаблон надо знать, поскольку неправильные действия с базой поставщиков могут привести к полной неработоспособности сетевого интерфейса.

В Windows 7/8 технология LSP всё еще функционирует, однако не рекомендуется к использованию! Это объясняется тем, что начиная с Windows Vista разработчики активно продвигают новую технологию под названием «Платформа фильтрации Windows» (Windows Filtering Platform, WFP), которая предназначена для обработки, отслеживания и перехвата сетевого трафика на всех уровнях сетевого стека, а так же призвана заменить все существующие технологии фильтрации в стеке TCP/IP. Существующие и разрабатываемые драйвера и приложения обработки пакетов предлагается портировать под новую технологию.

Компоненты Active Setup

Active Setup (Активная настройка/Набор активирования/Активный набор) — системный механизм, предназначенный для разового выполнения команд на этапе первичного входа пользователя в систему. Команды выполняются единожды, то есть при всех последующих входах пользователя команда исполняться уже не будет. Конфигурация каждого компонента Active Setup делится на машинную и пользовательскую части, которые расположены в разных ветвях реестра. Поэтому, когда пользователь входит в систему, Active Setup проверяет наличие идентификатора GUID каждого [заданного для установки] компонента в пользовательской части соответствующего ключа реестра и если GUID отсутствует, то выполняется команда, ассоциированная с компонентом, а по завершении процесса GUID компонента добавляется в пользовательскую часть реестра. Механизм может производить установку пакетов .msi. Работу механизма Active Setup мы можем, к примеру, лицезреть когда впервые авторизуемся в операционной системе: наблюдаем первичную настройку обозревателя Internet Explorer, проявляющую себя в появлении небольших окон установки в левом верхнем углу рабочего стола пользователя. Механизм может эксплуатироваться вирусами, поэтому поиск вируса в данном случае сводится к проверке машинной части ключей реестра Active Setup. Информация о машинной части размещается в реестре в ключе:

  • HKLMSOFTWAREMicrosoftActive SetupInstalled Components
  • HKLMSOFTWAREWow6432NodeMicrosoftActive SetupInstalled Components

Содержит подключи в виде идентификаторов GUID, которые и описывают (содержат параметры) установленные в системе компоненты. Лечение сводится к обходу всех представленных в ключе идентификаторов и проверке вложенных параметров (таких как stubpath), содержащих полные пути к исполняемым образам компонентов.

1 / 1 / 0

Регистрация: 06.06.2013

Сообщений: 130

1

29.01.2014, 04:14. Показов 30596. Ответов 9


Нужно удалить ветку MICROSOFTWINDOWS NTCURRENTVERSIONWINLOGONNOTIFYRelevantKnowledg e, но дошел только до MICROSOFTWINDOWS NTCURRENTVERSION, а дальше не нашел WINLOGON, подскажите что делать, где искать?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



абырвалг:)

1579 / 657 / 67

Регистрация: 11.04.2013

Сообщений: 2,460

29.01.2014, 05:14

2

HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotify*
Там, где «*» смотрите, у меня такого параметра (RelevantKnowledge) нет.
Можете воспользоваться поиском по реестру (Правка — Найти)
Вы скорее всего ищите в HKCU, там действительно нет.



0



2208 / 754 / 207

Регистрация: 02.02.2012

Сообщений: 3,656

Записей в блоге: 2

29.01.2014, 09:04

3

см. вложение.

Миниатюры

Где находится ветка WINLOGON в реестре
 



0



Модератор

Эксперт Windows

8364 / 3329 / 241

Регистрация: 25.10.2010

Сообщений: 13,531

29.01.2014, 17:56

4

Цитата
Сообщение от Forumhelp
Посмотреть сообщение

RelevantKnowledge

Судя по описаниям бот-трой
gidrontaur, адрес ветки указал
Заодно посмотрите в этой ветке
HKEY_LOCAL_MACHINE’,’SoftwareMicrosoftWindowsCu rrentVersionRun



0



1 / 1 / 0

Регистрация: 06.06.2013

Сообщений: 130

29.01.2014, 21:56

 [ТС]

5

Цитата
Сообщение от Persk
Посмотреть сообщение

Судя по описаниям бот-трой
gidrontaur, адрес ветки указал
Заодно посмотрите в этой ветке
HKEY_LOCAL_MACHINE’,’SoftwareMicrosoftWindowsCu rrentVersionRun

броблема в том что я не могу найти WINLOGON в CurrentVersion



0



Модератор

Эксперт Hardware

6038 / 3484 / 518

Регистрация: 13.05.2013

Сообщений: 10,959

29.01.2014, 23:25

6

Цитата
Сообщение от Forumhelp
Посмотреть сообщение

я не могу найти WINLOGON в CurrentVersion

Forumhelp, из всего написанного я так и не понял где Вы ищите?
Нужно искать в

Цитата
Сообщение от gidrontaur
Посмотреть сообщение

HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotify



0



Модератор

Эксперт HardwareЭксперт Windows

15148 / 7736 / 726

Регистрация: 03.01.2012

Сообщений: 31,792

30.01.2014, 11:34

7

А поиском по реестру? (Верхнее меню — Правка — Поиск. WINLOGON. Или Ctrl+F — WINLOGON)



0



1 / 1 / 0

Регистрация: 06.06.2013

Сообщений: 130

30.01.2014, 16:32

 [ТС]

8

Цитата
Сообщение от gecata
Посмотреть сообщение

А поиском по реестру? (Верхнее меню — Правка — Поиск. WINLOGON. Или Ctrl+F — WINLOGON)

пробовал поиском, не находит такого раздела



0



Модератор

Эксперт HardwareЭксперт Windows

15148 / 7736 / 726

Регистрация: 03.01.2012

Сообщений: 31,792

30.01.2014, 16:38

9

Forumhelp, Как же вы загружаетесь?!



0



абырвалг:)

1579 / 657 / 67

Регистрация: 11.04.2013

Сообщений: 2,460

30.01.2014, 16:42

10

Forumhelp, его не может не быть. Без winlogon.exe и соответствующей записи в реестре у вас система не загрузится. Вы или не пользовались Поиском или написали с ошибкой.
Да пройдите путь вручную, где искать уже писал. Но не путайте HKLM и HKCU (хоть и там Winlogon должен быть) Вам в HKLM (HKEY_LOCAL_MACHINE)



0



В этой статье разберем процесс входа в систему (Login в Windows). А также разберём все компоненты участвующие в этом процессе.

Компоненты участвующие в процессе входа

Login в Windows начинается с процесса Winlogon. Который координирует вход в систему, запускает первый процесс пользователя при входе в систему и обрабатывает выход из системы.

Winlogon может запускать процесс LogonUI для ввода паролей при: входе в систему, изменении паролей, блокировке и раз-блокировке компьютера.

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

  • пароля,
  • pin-кода,
  • смарт-карты с pin-кодом,
  • распознавания лица.

Могут быть установлены и сторонние поставщики, например считывание отпечатка пальца.

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

После того как Winlogon получил учетные данные он вызывает LSASS, чтобы проверить правильность учетных данных. Если пользователь есть в системе и ему разрешено входить в систему, запускается оболочка входа в систему от имени этого пользователя.

Компоненты, участвующие во входе в систему

Инициализация Winlogon

Перед тем, как станет активным любое пользовательское приложение, процесс Winlogon выполняет следующие действия:

  • создает и выполняет интерактивное окно, для предоставления клавиатуры, мыши и монитора. Ни один другой пользовательский процесс не сможет запуститься, пока Winlogon это не разрешит;
  • создает и запускает два рабочих стола — интерактивный и защищенный. Интерактивный рабочий стол используется для работы пользователя, а защищенный при блокировке системы, или перед тем как кто-нибудь зайдет в систему. Нажатие Ctrl+Alt+Delete переключает защищенный рабочий стол на интерактивный и начинается процедура аутентификации, запускается LogonUI, загружается один из поставщиков учетных данных и так далее;
  • устанавливает ALPC-подключение к LSASS для обмена информацией;
  • регистрируется сервер rpc-сообщений, который прослушивает уведомления SAS, выхода из системы и блокировки рабочей станции. Безопасность SAS реализована таким образом, что ни одно другое приложение не может перехватить комбинацию Ctrl+Alt+Delete.

Этапы входа пользователя в систему

Login в Windows начинается, когда пользователь нажимает SAS комбинацию (Ctrl+Alt+Delete). Далее Winlogon запускает LogonUI, который вызывает поставщика учетных данных. Winlogon также создает для этого пользователя уникальный SID входа в систему, этот SID попадает в маркер доступа.

После ввода имени пользователя и пароля Winlogon обращается к LSASS. Как только LSASS проверит пользователя, Winlogon продолжит процесс входа. Если LSASS в ходе проверки не узнает пользователя, то процесс входа для него прекращается.

Для интерактивного входа используются два стандартных пакета аутентификации:

  • MSV1_0 — на автономном компьютере. Он принимает логин и хеш введенного пароля и отправляет запрос локальному SAM-администратору для извлечения информации об учетной записи. Извлекается имя учетной записи, его группы и хеш пароля. На основе этой информации принимается решение, пускать пользователя в систему или нет.
  • Kerberos — на компьютере в домене. Процесс входа похож на первый, но в этом случае компьютеру в домене нужно еще обмениваться информацией с контроллером домена. Такой обмен выполняется по протоколу Kerberos, который обеспечивает безопасную среду передачи информации от рабочей станции к контроллеру домена в ходе аутентификации.

Затем Winlogon ищет в реестре значение параметра HKLMSOFTWARE MicrosoftWindows NTCurrent VersionWinlogonUserinit и на его основе создает первый процесс пользователя. По умолчанию это Userinit, который загружает профиль пользователя, а затем загружает оболочку пользователя из параметра HKCUSOFTWARE MicrosoftWindows NTCurrent VersionWinlogonShell или из HKLMSOFTWAREMicrosoftWindows NTCurrent VersionWinlogonShell. По умолчанию оболочка пользователя — Explorer.exe. Затем происходит выход из Userinit. Именно поэтому для Explorer.exe не показывается родительский процесс при просмотре в Process Explorer.

Windows Hello

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

Windows Hello поддерживает три типа биометрической идентификации:

  • отпечаток пальца;
  • лицо;
  • сетчатка глаза.

Вернуться к оглавлению

Сводка

Login в Windows

Имя статьи

Login в Windows

Описание

В этой статье разберем процесс входа в систему (Login в Windows). А также разберём все компоненты участвующие в этом процессе

Понравилась статья? Поделить с друзьями:
  • Hkcu software microsoft windows currentversion run как найти
  • Hkey local machine software microsoft windows currentversion runonce
  • Hkcu software microsoft windows currentversion policies system disabletaskmgr
  • Hkey local machine software microsoft windows currentversion run
  • Hkcu software microsoft windows currentversion policies explorer restrictrun