Одними из первых при запуске системы стартуют сервисы. Создадим фейковую службу для автозагрузки нашей проги.
Для начала определимся, чем отличается обычное win-приложение от сервиса?
Сервис имеет определенную структуру, должен откликаться на управляющие команды (запуск, остановка, пауза, продолжение работы) и сообщать о своем состоянии (работает, остановлен и т.д.). Есть несколько способов запустить приложение как службу Windows: от написания и использования полноценного сервиса до запуска любой проги как сервиса при помощи instsrv.exe и srvany.exe из Windows Resource Kit. Рассмотрим один из вариантов.
1. Копируемся в системный каталог, называемся как-нибудь мутно, например, "csrsc.exe".
2. Регистрируемся в реестре. Создаем раздел под свой сервис:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Csrsc]
3. Создаем строковый параметр (REG_SZ) с именем «Description». В качестве значения необходимо в паре предложений описать, чем занимается сервис. Нет, не надо писать туда «обычный троян» и т.п., а лучше посмотреть описания стандартных Майкрософтовских сервисов и вбить что-то похожее.
4. Следующий строковый параметр «DisplayName». Так будет выглядеть дружественное пользователю название службы. Значение «CSRsc-клиент» вполне подойдет.
5. Далее, REG_SZ «ObjectName». Ставим значение «LocalSystem» для запуска от имени SYSTEM.
6. Создаем и оставляем пустыми параметры типа REG_MULTI_SZ «DependOnGroup» и «DependOnService».
7. Параметр REG_SZ «ImagePath2» заполняем как «%SystemRoot%\csrsc.exe». Это и есть наш экзешник запускаемого сервиса.
8. Определяем тип загрузки нашей службы. Добавляем REG_DWORD «Start» со значением «2», что соответствует загрузке вместе с системой, но после драйверов. В «Службах» отображается как «авто». REG_DWORD параметр «ErrorControl» ставим в «1», REG_DWORD параметр «Type» ставим в 120 (0x00000120).
Итак, мы попытались закосить под сервис, но если пользователь и не заметит подвоха, то Винда при загрузке службы понимает, что подсунули ей никакой не сервис. Однако проверка идет больше 20 секунд (пользователь ничего не видит), и мы спокойно копируемся во второй файл, например в WINDOWS\csrsc.exe (в автозагрузке у нас как служба прописан WINDOWS\system32\csrsc.exe), запускаем его (второй файл), завершая наш фейковый сервис. В итоге имеем в процессах нашу прогу csrsc.exe, запущенную от имени пользователя SYSTEM.
Комментариев нет:
Отправить комментарий