Центр справки и настройки Windows XP 3.8

       

Методы автозапуска ( Хакер )

Реализация автозагрузки в RAT

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

[старинные методы]

Начнем со старинных, давно всем известных и широко применяемых методов. Это, конечно, запись ярлыка в папку "Автозагрузка" и создание параметров в разделах реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Run и HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run. Первый метод, как ты понимаешь, абсолютно непригоден для использования в трояне. Его не станет никто реализовывать только потому, что детектирование подобного метода – это пара кликов, Пуск->Программы->Автозагрузка. Метод же с реестром, едва ли не самый распространенный из всех, так как применяется в троянах, начиная с самого момента их появления. Приведенные чуть выше разделы содержат списки файлов, которые Explorer запускает после своей загрузки. Первый - список для конкретного пользователя, а второй – уже для всех пользователей в системе, по этой причине для добавления записи в него понадобятся права администратора или хотя бы опытного пользователя. Добавить свой параметр нетрудно, если использовать объект TRegistry, однако хакер борется за наименьший размер своих программ, поэтому применяет исключительно чистый API. Запись файла в список автозапуска Explorer’а у него может выглядеть так:

Procedure InstallTrojan;

var

Key: hkey;

TrName: PChar;

St: TStartupInfo;

Pr: TProcessInformation;

SystemPath: array [0..MAX_PATH] of Char;

begin

GetSystemDirectory(SystemPath, MAX_PATH);

if RegOpenKeyEx(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run', 0, KEY_CREATE_SUB_KEY or KEY_SET_VALUE, Key) = ERROR_SUCCESS then


begin

RegSetValueEx(Key, KeyName, 0, REG_SZ, ExeName, lstrlen(ExeName) + 1);

RegCloseKey(Key);

end;

end;

KeyName в этом коде - имя создаваемого ключа, а ExeName - путь к загружаемому файлу. Про этот метод автозагрузки знает даже самый тупой юзер, да и антивирусы давно уже научились мониторить Run в реестре и предупреждать пользователя о новых загружаемых файлах. Конечно, можно не добавлять свой пункт в список, а изменить уже существующий, вероятно это вызовет чуть меньше подозрений у пользователя, но от антивируса, предупреждающего обо всех изменениях, не спасет. Поэтому, если и использовать этот метод, то в прикладных программах – о троянах с ним хакеру лучше забыть.



[запуск из-под Winlogon]

Если начать искать более незаметные методы автозагрузки в реестре, то выясняется, что их превеликое множество. Для начала рассмотрим раздел HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify, в котором хранятся списки DLL, подгружаемых процессом winlogon.exe при наступлении определенных событий в системе. Неплохим методом автозапуска является запись в этот раздел реестра собственной DLL. Один из его плюсов то, что наша DLL может быть запущена от процесса System при старте системы. При этом хакер получает полный доступ к системе, но, правда, лишается доступа к шифрованным файлам пользователя (на NTFS). Обойти это ограничение он может с помощью запуска DLL при входе пользователя в систему (с включенной имперсонацией), либо сделав инжект в пользовательский процесс. Также хакеру, вероятно, будет полезно то, что есть возможность определить несколько функций в одной DLL, которые будут вызываться при разных системных событиях, к примеру, при старте системы и при входе пользователя в систему.

Содержание  Вперед на стр. 2


Содержание раздела