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

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

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

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

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

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

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

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

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

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

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

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

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

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

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

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


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

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

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



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


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



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

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


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

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

В JDownloader перейдите в Настройки , далее вкладка Менеджер соединений и нажмите на кнопку Добавить . Замените тип на Socks5 , в поле Хост/порт введите localhost и 9050 :

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

JDownloader ротирует соединения. Поэтому если вы скачиваете с заблокированного сайта, то снимите галочку с соединения Без прокси :

Теперь вы снова можете не только просматривать, но и скачивать с заблокированных сайтов!

Настройка скрытого сервиса в Windows

Суть работы скрытого сервиса заключается в том, что на вашем компьютере (это может быть арендованный или ваш домашний компьютер) работает веб-сервер. Ваш компьютер должен иметь доступ к сети Tor. Через эту сеть любой имеющий адрес вашего скрытого сервиса (домен вида *.onion), может зайти на ваш сайт, который обслуживает ваш веб-сервер. Вам не нужно беспокоится о приобретении доменного имени (даётся бесплатно), о DNS, белых IP и т.д. – сеть Tor сама об этом позаботиться. Для запуска скрытого сервиса требуется только две вещи:

  • работающий веб-сервер
  • подключение к сети Tor

Если у вас Linux, то вам может подойти материал « ». Если же вы хотите запустить скрытый сервис из Windows, то далее написано, как это сделать.

Нам нужно, чтобы у нас был рабочий веб-сервер.Нужно установить веб-сервера (Apache 2.4, MySQL 5.7, PHP 7, phpMyAdmin) на Windows 10.

Теперь, когда веб-сервер установлен и его работоспособность проверена, приступим к настройке скрытого сервиса в Windows.

Ваш сайт для скрытого сервиса должен уже работать и открываться с локалхоста. Я создам страницу-заглушку для демонстрации работы. В папке C:\Server\data\htdocs\ я создаю новую папку hidden , а в ней файл index.htm со следующим соедржимым:

< title >Работает!

< meta charset = "UTF-8" >

Скрытый сервис работает!

Следовательно, этот файл доступен с локального сервера по адресу http://localhost/hidden/:

Теперь открываем конфигурационный файл Apache C:\Server\bin\Apache24\conf\httpd.conf и дописываем туда:

Listen 127.0.0.1:9475 DocumentRoot "C:/Server/data/htdocs/hidden/" ServerName localhost ServerAdmin Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted

В принципе, вам достаточно отредактировать в нём только строчку DocumentRoot «C:/Server/data/htdocs/hidden/» – она показывает путь до вашего веб-сайта, который будет скрытым сервисом Tor.

Перезапускаем веб-сервер Apache, чтобы изменения вступили в силу:

c:\Server\bin\Apache24\bin\httpd.exe -k restart

Теперь ваш сайт для скрытого сервиса должен быть доступен с локального компьютера по адресу http://localhost:9475

Переходим к настройке Tor.

Откройте любым текстовым редактором файл C:\Tor\torrc и скопируйте в него:

HiddenServiceDir "C:/Tor/hidden_service/" HiddenServicePort 80 127.0.0.1:9475

Обратите внимание, как мы записали C:\Tor\hidden_service\ — вместо \ мы используем / . Также обязательно нужно использовать кавычки.

Перезапустите службу Tor:

C:\Tor\tor.exe --service stop C:\Tor\tor.exe --service start

Автоматически будет сгенерирована папка hidden_service и два файла в ней. В файле C:\Tor\hidden_service\hostname вы увидите доменное имя для вашего скрытого сервиса:

В моём случае это 77pam5zhvzu5jhst.onion, пробуем открыть в браузере Tor:

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

Если вы сгенерировали своё собственное имя скрытого сервиса Tor, то замените содержимое файла hostname и private_key , а после этого перезапустите службу Tor, чтобы изменения вступили в силу:

Использование Tor браузерами в Windows

Если вы хотите анонимно сёрфить в интернете, то рекомендуется использовать браузер Tor. Он не только перенаправляет трафик через сеть Tor, но и имеет ряд патчей и настроек, способствующих приватности.

Тем не менее, если вы хотите заходить в Интернет через сеть Tor используя браузеры Google Chrome, Firefox, Opera или Internet Explorer, то это также возможно.

У вас должна быть установлена (или запущена как показано в начале статьи) служба Tor.

Браузеры Google Chrome, Opera и Internet Explorer используют одни и те же настройки. Т.е. внесённые изменения будут действовать сразу для всех трёх браузеров. В любом из них перейдите к настройкам Прокси, откроется такое окно:

В окне нажмите «Настройка сети ». В открывшемся новом окне поставьте галочку «Использовать прокси сервер для локальных подключений… »:

Станет активной кнопка «Дополнительно », нажмите её. В поле Socks введите 127.0.0.1 , а в поле Порт введите 9050 :

Нажмите во всех окнах ОК для сохранения сделанных настроек. Текущий IP можно, например, проверить на странице

Для изменения настроек в Firefox перейдите в Настройки -> Дополнительные -> Сеть -> Настроить . В открывшемся окне поставьте переключатель на Ручная настройка сервера прокси . В поле Узел SOCKS введите 127.0.0.1 , а поле Порт 9050 . Поставьте переключатель на SOCKS 5 . Нажмите ОК для сохранения настроек.

Общесистемные настройки прокси в Windows

В Windows имеется программа WinHTTP прокси. Она позволяет устанавливать настройки прокси для системы в целом. По логике ожидается, что все приложения должны использовать общесистемные настройки, но этого не происходит. Windows использует WinHTTP для определённых служб, например, для загрузки обновлений Windows и выполнения проверок на аннулированные сертификаты. Тем не менее, возможно, вы найдёте применение этому.

С помощью команды

netsh winhttp import proxy source=ie

вы можете импортировать настройки из Internet Explorer.

А следующими командами вы можете просмотреть/сбросить использование общесистемных настроек:

netsh winhttp show proxy netsh winhttp reset proxy

Доступ в Tor из PHP программы

Если вы установили службу Tor и для настройки скрытого сервиса вы установили веб-сервер, то вы также можете получать данные из сети Tor в вашей PHP программе (используя cURL). Пример рабочего кода:

$url = "http://hacktoolseqoqaqn.onion/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_PROXY, "http://127.0.0.1:9050/"); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); curl_setopt($ch, CURLOPT_PROXYTYPE, 7); $output = curl_exec($ch); $curl_error = curl_error($ch); curl_close($ch); print_r($output); print_r($curl_error);

Последнее обновление: 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 и записывать информацию о действиях в текстовый файл.