Автозапуск в MS Windows
Довольно часто в своей работе мне приходится сталкиваться с компьютерными вирусами. Отмечу, что в последнее время вирусописатели стали отличаться недюжинной смекалкой и даже, я бы сказал, талантом при создании своих деструктивных программ. Еще бы! Человек, запустивший в начале этого года Trojan.Winlock.origin неплохо заработал на беспечности пользователей, которые пренебрегли простейшими правилами безопасности поведения в сети Internet и не устанавливающим на свои компьютеры антивирусы. Справедливости ради стоит отметить, что алгоритмы существующих антивирусных программ, к сожалению, не всегда смогут оперативно и достаточно надежно защитить вашу цифровую вселенную от подобных случаев. Если у пользователя на компьютере появился вирус, он в первую очередь пытается обратиться к специалистам. Надеюсь, что изложенный ниже материал поможет вам в обнаружении способов запуска таких вредоносных программ и излечении вручную операционных систем на базе продуктов MS Windows. |
Недавно ко мне принесли компьютер, на котором после загрузки операционной системы появлялись баннеры порнографического содержания и не давали работать. Опустим сейчас вопросы, связанные с тем, каким образом вирус проник на комп и какой браузер был виновным в появлении этой заразы. Когда я сталкиваюсь с подобным, перво-наперво пытаюсь просмотреть список программ, которые запускаются вместе с системой. Но не тут-то было! Ни одна «горячая клавиша» Windows не работала (соответственно была заблокирована кнопка «Пуск»), был отключен «Диспетчер задач» и, как оказалось, не отображались системные и скрытые файлы. Я не мог даже запустить встроенную утилиту msconfig.exe, которая отображает программы в автозагрузке или команду regedit.exe для правки реестра. Замечу, что компьютер больше никаким образом (в безопасном режиме, в режиме загрузки последней удачной конфигурации) загружаться не хотел. Вываливался в «синий экран» и все.
Пришлось загружаться с livecd на основе windows xp (да, да, есть и такие!) и править реестр зараженной системы вручную. Весь материал, описанный ниже, предназначен для продвинутых пользователей и администраторов, которые знают, что такое реестр windows, имеют представление о том, с чем его едят, и представляют себе последствия своих действий.
Для начала – некоторые пояснения насчет структуры реестра windows. В нем существуют ветви SOFTWARE\Microsoft\Windows\CurrentVersion, содержащие несколько групп для автоматического запуска приложений. Эти ветви могут находится как в разделе HKEY_LOCAL_MACHINE, так и в разделе HKEY_CURRENT_USER. Изложение будет общим, и все может быть экстраполировано на оба этих раздела.
Если ОС windows используется как многопользовательская среда, то группы запуска следует искать также и в разделе HKEY_USERS\.Default. Это общий раздел для всех пользователей системы. Если ОС windows работает в однопользовательском режиме, то раздел HKEY_USERS\.Default идентичен разделу HKEY_CURRENT_USER.
Ключи реестра, имеющие область действия «Компьютер» (Local Machine), хранящиеся в разделе HKEY_LOCAL_MACHINE, имеет приоритет над ключами реестра, хранящимися в разделе HKEY_CURRENT_USER и имеющими область действия «Текущий пользователь» (Current User).
Папки автозапуска
Первая папка, которая отрабатывается после завершения загрузки Windows, это папка «Автозагрузка», которая может хранить список ярлыков (*.lnk) приложений или документов. Найти ее можно по пути «Пуск->Все программы->Автозагрузка». Эта папка относится к текущему пользователю. На всякий случай советую проверить в реестре соответствие ее наименования с размещением.
Сначала надо найти в системном реестре ключ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders, хранящий размещение всех измененных папок, и отыскать там параметр «Startup» строкового типа. Если искомый параметр отсутствует, то ее размещение по умолчанию на жестком диске прописано в системном реестре в параметре «Startup» ключа HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders.
Следующая папка — это «Общая» для всех пользователей папка «Автозагрузки» (Common Startup Folder), которая также отрабатывается после загрузки windows в поисках ярлыков с документами или приложениями. Она хранит общие ярлыки для профилей всех пользователей в системе. Ее содержимое отрабатывается, даже если ОС windows работает в однопользовательском режиме.
В системном реестре ее размещение на жестком диске прописано в строковом параметре «Common Startup» ключа HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders, который хранит измененные пути папок. При отсутствии этого параметра следует посмотреть размещение этой папки по умолчанию в параметре «Common Startup» ключа HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders.
Администраторам стоит обратить внимание на содержимое этих папок с целью выявления и удаления подозрительных ярлыков или программ.
Системный реестр – автозапуск, общий для всех версий Windows
Приведу полные пути к ключам автозапуска:
- SOFTWARE\Microsoft\Windows\CurrentVersion\Run;
- SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce;
- SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx;
- SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\Setup;
- SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices;
- SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce,
которые могут содержать строковые параметры, с именами приложений или документов запускающиеся при старте системы. Имена строковых параметров, содержащихся в этих ключах, могут быть произвольными.
Внимательно просмотрите эти ключи на предмет загрузки посторонних программ и сервисов.
Особенности автозапуска в Windows NT/2000/XP
В добавление к вышеперечисленным ключам, для этих ОС windows существует еще один ключ системного реестра – SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows”, который может находиться в разделах HKEY_LOCAL_MACHINE или HKEY_CURRENT_USER. В нем могут существовать два строковых параметра «Load» и «Run», которые также могут хранить списки приложений для автоматического запуска. Значение по умолчанию для этих параметров – пробел. Программы, запущенные из параметра «Load», минимизируются при запуске.
Так же в этих ОС появляется еще один список автозагрузки программ или документов, запускающихся после регистрации пользователя в системе, который находится в обоих разделах HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER. Он размещается в строковых параметрах ключа SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run. Имена параметров для этого ключа имеют особенность: они должны быть представлены в виде порядковых номеров, начиная с 1.
Автозапуск при отработке Windows Logon
Отдельная группа Windows Logon для управления инициализацией при регистрации пользователя появляется в Windows NT и далее развивается Microsoft для Windows версий 2000 и XP. Параметры Winlogon находятся в системном реестре в ключе SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon раздела HKEY_LOCAL_MACHINE. Все описываемые ниже параметры, относящиеся к Winlogon, имеют строковый тип.
Параметр Shell
Параметр «Shell», отвечающий за программную оболочку, присутствует в ветви реестра «Winlogon» в версиях Windows NT, 2000 и XP. Этот строковый параметр определяет список исполнимых файлов, обеспечивающих для операционной системы интерфейс пользователя и которые должны быть запущены вместе с программной оболочкой.
По умолчанию Windows запускает программы, перечисленные в параметре «Userinit», расположенном в ветви «Winlogon», включая и сам «Userinit.exe». Если же по какой-то причине «Winlogon» процесс не смог запустить программы, определенные в параметре «Userinit», тогда «Winlogon» переходит непосредственно к обработке исполнимых файлов, имена которых записаны в параметре «Shell».
Значение по умолчанию параметра «Shell» может варьироваться. Это – «taskman, progman, wowexec» для Windows NT и «Explorer.exe» для Windows 2000, XP.
Параметр System
Этот параметр присутствует в Windows версий NT, 2000 и XP. Он содержит список имен исполнимых файлов, запускаемых Winlogon в системном контексте во время инициализации системы. Этот список можно варьировать, редактируя значение этого параметра.
Значение по умолчанию этого параметра – «lsass.exe, spoolss.exe» для Windows NT, и «lsass.exe» для Windows 2000, XP.
Параметр VmApplet
Параметр «VmApplet», запускающий приложение «Панели управления» для настройки конфигурации системы, специфичен для Windows версий 2000 и XP. Он содержит список или один исполнимый файл, которые Winlogon-процесс запускает для того, чтобы пользователь мог скорректировать настройки виртуальной памяти, если на системном томе отсутствует страничный файл подкачки. В этом параметре не обязательно указывать расширения для имен файлов.
Значение по умолчанию этого параметра – «rundll32 shell32, Control_RunDLL «sysdm.cpl»». Не стоит без нужды и изменять значение этого параметра, потому что это может привести к изменению настроек виртуальной памяти в Windows 2000, XP.
Параметр Userinit
«Userinit» (инициализация пользователя) специфичен для версий Windows NT, 2000 и XP. Значение этого параметра содержит исполнимые файлы, которые запускаются процессом WinLogon в контексте пользователя, при регистрации пользователя в системе.
По умолчанию Winlogon запускает «Userinit.exe», который ответственен за запуск программной оболочки и исполняет файлы сценариев для регистрации, переустанавливает сетевые соединения и затем запускает «Explorer.exe».
Значение по умолчанию параметра «Userinit»: «userinit, nddeagnt.exe» для Windows NT, «userinit» для Windows 2000, XP. Приложение «nddeagnt.exe» необходимо для запуска NetDDE — сетевого динамического обмена данными.
Таким образом, внимательно просмотрев все эти ветви автозапуска в ОС windows, я смог понять, откуда стартует вирус (из папок Temporary Internet Files, RECYCLER и System Volume Information) и удалил его из автозагрузки (кстати, он еще подменил собой shell, оттого видимо компьютер и вылетал в синий экран).
________________________
В написании статьи использовались материалы сайта сайт «Компьютерная газета», за авторством Valient Newman aka Black Prince.
Дополнение в раздел статьи “Автозапуск при отработке Windows Logon” – ключ SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon находится в ветвях HKLM и HKCU. В значении строкового параметра “Shell” (ветвь HKCU) прописывается путь к вирусу, который запускается при загрузке ОС – это вирус создает параметр. В нормальной ОС строкового параметра “Shell” (ветвь HKCU) вообще не должно быть – это мое наблюдение, когда удалял вирус из автозагрузки.