Луковая сеть в Windows: установка, создание скрытого сервиса, использование браузерами и для пентеста. Редактирование параметров запуска служб в Windows

У вас когда-нибудь возникало желание запустить приложение как системную службу? Думаю, что да, учитывая, что в некоторые программы такая возможность встроена по-умолчанию. А знаете ли вы, что приложение запущенное как служба, работает гораздо быстрее и занимает меньше места в памяти?

В этой статье мы рассмотрим небольшую утилиту Any Service, которая в два щелчка мышки, поможет запустить любое приложение как системную службу. Any Service является оболочкой двух стандартных утилит srvinstw и instsrv из комплекта Windows 2000 Server и для ее нормальной работы вам будут необходимы права Администратора.

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

Главное окно программы позволяет произвести первичные настройки вашей будущей службы:


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

  • Взаимодействие с рабочим столом - отметьте, если приложение имеет иконку в системном лотке;
  • Автозапуск службы - отметьте, если хотите, чтобы сервис запускался автоматически;
  • Запустить сразу после создания - отметьте, если хотите, чтобы служба запустилась сразу после ее создания;

Как пример работы утилиты, попробуем запустить в виде системной службы популярный файловый менеджер Total Commander .



После заполнения всех необходимых полей, нажимаем кнопку "Создать".


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



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

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


Находим нужную службу и жмем "Удалить". Больше сервиса Total Commander не существует.

Известные проблемы: перед первым запуском, желательно отключить антивирусную программу иначе дальнейшая работа программы будет невозможна, т.к. при первом запуске, она ищет обе утилиты (srvinstw и instsrv ) в папке %WINDIR%\System32\ и если не находит, копирует их из собственного ресурса.

Последнее обновление: 31.10.2015

Для установки службы нам понадобится класс установщика. Для его добавления нажмем правой кнопкой мыши на проект и в контекстном меню выберем Add - > Component... . Затем в окне добавления нового элемента выберем пункт Installer Class :

По умолчанию для файла установщика генерируется название Installer1.cs. Оставим это название.

После добавления узел установщика в окне обозревателя решения (Solution Explorer) будет содержать два файла: сам файл класса Installer1 и файл дизайнера Installer1.Designer.cs. Откроем файл кода. Сейчас он выглядит так:

Using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration.Install; using System.Linq; using System.Threading.Tasks; namespace FileWatcherService { public partial class Installer1: System.Configuration.Install.Installer { public Installer1() { InitializeComponent(); } } }

Теперь изменим его следующим образом:

Using System.ComponentModel; using System.ServiceProcess; using System.Configuration.Install; namespace FileWatcherService { public partial class Installer1: Installer { ServiceInstaller serviceInstaller; ServiceProcessInstaller processInstaller; public Installer1() { InitializeComponent(); serviceInstaller = new ServiceInstaller(); processInstaller = new ServiceProcessInstaller(); processInstaller.Account = ServiceAccount.LocalSystem; serviceInstaller.StartType = ServiceStartMode.Manual; serviceInstaller.ServiceName = "Service1"; Installers.Add(processInstaller); Installers.Add(serviceInstaller); } } }

Класс установщика унаследован от класса System.Configuration.Install.Installer . Атрибут указывает на то, что класс Installer1 должен вызываться при установке сборки, то есть службы.

Он определяет ряд методов: Install() (установка), Commit() (завершает транзакцию установки), Rollback() (восстанавливает состояние компьютера до установки) и Uninstall() (удаление). При необходимости мы можем их переопределить. Но в нашем случае мы будем использовать только конструктор.

В конструкторе вызывается метод InitializeComponent() , который призван выполнять начальную инициализацию. Он определен в файле дизайнера Installer1.Designer.cs и по сути ничего не делает:

Private System.ComponentModel.IContainer components = null; private void InitializeComponent() { components = new System.ComponentModel.Container(); }

Для установки службы нам также понадобится классы ServiceInstaller и ServiceProcessInstaller . Почему именно два класса? ServiceProcessInstaller управляет настройкой значений для всех запускаемых служб внутри одного процесса (как было рассмотрено в прошлой теме, метод Main класса Program может одновременно запускать несколько служб). Класс ServiceInstaller предназначен для настройки значений для каждой из запускаемых служб. То есть если у нас запускается три службы, то для каждой службы создается свой объект ServiceInstaller. Но в нашем случае в прошлой теме мы определили только одну запускаемую службу, поэтому объекты обоих классов у нас будут только в одном экземпляре.

Через свойства оба класса позволяют задать настройки службы. Основные свойства ServiceProcessInstaller:

    Username : определяет, под какой именно учетной записью будет запускаться служба

    Password : определяет пароль для запуска службы

    Account : определяет тип учетной записи. Может принимать одно из значений перечисления ServiceAccount :

    • LocalSystem : учетная запись предоставляет широкие привилегии на локальном компьютере и соответствует компьютеру в сети

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

      NetworkService : учетная запись предоставляет широкие локальные привилегии и также представляет любому удаленному серверу учетные данные компьютера

      User : учетная запись определяется конкретным пользователем в сети

    HelpText : возвращает справку, содержащую информацию об установке службы

Некоторые важнейшие свойства ServiceInstaller:

    StartType : определяет, как должна запускаться служба - автоматически или вручную. Может принимать следующие значения: ServiceStartMode.Automatic (автоматический запуск), ServiceStartMode.Manual (вручную) и ServiceStartMode.Disabled (служба по умолчанию отключена)

    DelayedAutoStart : определяет, должна ли служба запускаться не сразу после загрузки операционной системы, а немного позже

    DisplayName : устанавливает имя службы, которое будет отображаться в различных утилитах управления службами

    ServiceName : имя службы, должно совпадать со значением свойства ServiceName у класса службы

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

В конце оба объекта установщиков надо добавить в коллекцию Installers: Installers.Add()

Итак, у нас готов код службы и код инсталяторов. Теперь скомпилируем проект, и в проекте в папке bin/Debug у нас будет лежать исполняемый файл службы, который будет называться по имени проекта и иметь расширение exe. Например, в моем случае он называется FileWatcherService.exe.

И теперь нам надо установить службу. Для этого нам надо запустить специальную утилиту InstallUtil.exe и передать ей имя файла службы.

Утилиту InstallUtil.exe можно найти по пути C:\Windows\Microsoft.NET\Framework64\v4.0.30319 для 64-битных платформ и в C:\Windows\Microsoft.NET\Framework\v4.0.30319 для 32-битных.

Также можно вынести исполняемый файл службы в какое-нибудь другое место, например, я поместил его в папку D://servces . Тогда установка службы в командной строке будет выглядеть так:

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

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

Если нам служба больше не нужна, и мы хотим ее удалить, то мы можем воспользоваться той же утилитой, передав ему флаг u:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>InstallUtil.exe /u D://servces/FileSystemWatcher.exe

И после запуска созданная служба будет мониторить все действия с файлами в папке D://Temp и записывать информацию о действиях в текстовый файл.

В данной статье будет рассказано о том, как отредактировать параметры запуска служб в Windows на примере службы «Агент сервера 1С:Предприятия 8.3». Будет показано как настроить тип запуска служб, изменить учетные данные для запуска службы, а также изменить параметры запуска исполняемого файла службы.

1. Изменение настроек запуска службы

Предположим у нас имеется работающая служба, пусть это будет «Агент сервера 1С:Предприятия 8». Для того что бы отредактировать свойства запуска данной службы перейдем в оснастку «Службы » (Services).

После этого в дереве папок слева переходим по пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

Затем в списке выделим группу с именем службы, свойства которой необходимо отредактировать. При этом, в окне справа увидим все параметры данной службы.

Кликаем 2 раза по имени параметра, который необходимо изменить и вводим новое значение.

Например, пусть нам необходимо запустить сервер «1С:Предприятие» в режиме отладки, т. е. -dedug . Для этого меняем значение параметра ImagePath .

Нажимаем «ОК », для сохранения изменений и закрываем редактор реестра.

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

На этом все. Изменения вступили в силу, соответственно агент сервера запущен в режиме отладки.

Помогла ли Вам данная статья?

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

По сравнению с 90-ми годами, сейчас нарваться на откровенных мошенников шанс небольшой, но нарваться на сотрудников, которые обманывают «по мелочи» - более чем реально. В этой небольшой статье хочу рассказать, как обманывают при ремонте различной техники. Предупрежден - значит вооружен! И так…

«Белые» варианты обмана

Почему белые? Просто эти варианты не совсем честной работы нельзя назвать противозаконными и, чаще всего, на них попадается невнимательный пользователь. Кстати, подобными махинациями занимается большинство сервис-центров (к сожалению)…

Вариант №1: навязанные дополнительные услуги

Простой пример: сломался у пользователя какой-нибудь разъем на ноутбуке. Стоимость оного 50-100р. плюс сколько-то стоит работа сервисного мастера. Но вам так же скажут, что на компьютер неплохо бы установить антивирус, провести чистку от пыли, заменить термопасту и пр. услуги. Часть из них вам совершенно не нужна, но многие соглашаются (тем более, когда их предлагают люди с умным видом и с умными словами).

В результате, стоимость похода в сервис-центр вырастает, порой, в несколько раз!

Вариант №2: «скрытие» стоимости некоторых услуг (изменение цены услуг)

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

Вариант №3: стоимость ремонта без диагностики и осмотра

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

Никогда не наблюдал, чтобы сервис-центр сам проявил инициативу и возвращал средства в связи с тем, что стоимость ремонта оказалась ниже предоплаты. Обычно, картина противоположная…

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

«Черные» варианты развода

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

Вариант №1: отказ в гарантийном обслуживании

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

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

Вариант №2: замена запчастей в устройстве

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

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

Вариант №3: устройство не подлежит ремонту - продайте/оставьте нам на запчасти…

Иногда сервис-центр заведомо предоставляет лживую информацию: якобы ваше сломанное устройство ремонту не подлежит. Говорят что-то вроде этого: «…можете забрать, ну или оставить нам за символическую сумму»…

Многие пользователи после этих слов не идут в другой сервис-центр - тем самым попадая на уловку. В результате сервис-центр ремонтирует ваше устройство за копейки, а затем перепродает его…

Вариант №4: установка старых и «левых» запчастей

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

В этом случае часто бывает, что после истечения гарантийного времени - устройство снова ломается и приходится снова платить за ремонт…

Сервис-центры, которые работают честно, устанавливают старые детали в тех случаях, когда новые такие же уже не выпускают (ну ли горят сроки ремонта и клиент дает согласие на это). Причем, предупреждают об этом клиента.

На этом у меня все. За дополнения буду благодарен 🙂

Как запустить приложение в виде службы Windows



Можно ли запустить клиентское приложение в качестве службы? В одной из статей способы создания службы Windows штатными средствами ОС. Однако не каждое консольное приложение сможет запуститься как служба, а программы с графическим интерфейсом в принципе не умеют работать подобным образом. Но возможность запустить приложение как службу все же есть, и поможет нам в этом программа с оригинальным названием Non-Sucking Service Manager .

NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 8. NSSM не требует установки, достаточно его загрузить и распаковать. В дистрибутив входят версии для 32- и 64-разрядных ОС. Взять программу можно с сайта nssm.cc, на данный момент последняя стабильная версия 2.21.1, которую я и буду использовать.
Для демонстрации возможностей NSSM попробуем запустить Блокнот Windows в качестве службы на Windows 8.1.

Создание службы

Для создания службы с именем notepad запускаем командную консоль, переходим в папку с распакованным NSSM (для 64-разрядной Windows) и вводим команду

Код:

Nssm install notepad

которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы.

Также на этапе создания новой службы можно указать некоторые дополнительные параметры.

На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения. Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.

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

На первом этапе NSSM пытается сгенерировать и отправить событие Ctrl+C. Этот способ хорошо работает для консольных приложений или скриптов, но не применим для графических приложений;
Затем NSSM определяет все окна, созданные приложением, и посылает им сообщение WM_CLOSE, инициирующее выход из приложения;
Третьим этапом NSSM вычисляет все потоки, созданные приложением, и отправляет им сообщение WM_QUIT, которое будет получено если приложение имеет очередь сообщений потока;
И в качестве последнего средства NSSM может вызвать метод TerminateProcess(), принудительно завершив работу приложения.

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

По умолчанию при падении службы NSSM пытается рестартовать ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения.

На вкладке «Input/Output (I/O)» можно задать перенаправление ввода\вывода приложения в указанный файл.

На вкладке «Environment» можно задать для службы новые переменные окружения, или переопределить существующие.

Также можно не пользоваться графической оболочкой и сразу создать службу в консоли такой командой:

Код:

Nssm install notepad "C:\Windows\system32\notepad.exe"

Управление службой

После создания службы с помощью NSSM зайдем в оснастку Services и найдем службу notepad. Как видите, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако обратите внимание, что в качестве исполняемого файла указан nssm.exe.