Луковая сеть в 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 >Работает! 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/» – она показывает путь до вашего веб-сайта, который будет скрытым сервисом 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:
LocalSystem : учетная запись предоставляет широкие привилегии на локальном компьютере и соответствует компьютеру в сети
LocalService : учетная запись соответствует пользователю без привилегий на локальном компьютере и предоставляет любому удаленному серверу учетные данные анонимного доступа
NetworkService : учетная запись предоставляет широкие локальные привилегии и также представляет любому удаленному серверу учетные данные компьютера
User : учетная запись определяется конкретным пользователем в сети
Username : определяет, под какой именно учетной записью будет запускаться служба
Password : определяет пароль для запуска службы
Account : определяет тип учетной записи. Может принимать одно из значений перечисления ServiceAccount :
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 и записывать информацию о действиях в текстовый файл.