Утилита PsExec и удаленное управление системами

Шпаргалка 😉

Для удаленного выполнения команд в Windows есть отличная штука — PsExec. Принципиально похожа на линуксовый SSH. Эта утилита работает со всеми версиями Windows, начиная с XP (XP, 2003, Vista, 2008, 7,8, 2012).

Итак, на локальной машине скачиваем утилиту (точнее, набор утилит), с сайта Microsoft Technet и распаковываем, например, в папку C:PSTools.
Далее, открываем консоль путем [Win+R] или Пуск — Выполнить — cmd .
Переходим в распакованную папку:

cd C:PSTools

Теперь мы можем выполнять команды на удаленной Windows машине, запуская psecex в таком формате:

psexec \remote_name_or_ip -u user -p password command

На удаленной машине должны быть запущены службы Server и Workstation.

Вот так — из-коробки — работает только на Windows 2003/XP. В версиях начиная с Vista из-за другого механизма доступа (UAC и т. д.), необходимо немного «пошаманить».

На удаленной машине под управлением Windows Vista или поздней открываем Редактор Реестра ( Start — Run — regedit ) и создаём ключ реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem LocalAccountTokenFilterPolicy типа DWORD и со значением 1 .

Всё, теперь можно выполнять команды и на удаленной Vista+ системе, выполняя следующую команду:

psexec \remote_name_or_ip -u user -p password -h command

Флаг -h нужен, чтобы запустить команду от имени Администратора.

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

Утилита PsExec и удаленное управление системами

date

09.09.2020

user

itpro

directory

Разное

comments

комментария 2

PsExec — это удобная утилита командной строки, с помощью нее можно запускать программы на удаленных Windows системах, перенаправляя данные, которые выводится приложением на экран на локальный ПК. Т.е. при работе с этой утилитой складывается ощущение, что приложение работает локально на вашем ПК. PsExec – бесплатная утилита и ее можно скачать по адресу https://download.sysinternals.com/files/PSTools.zip.

Какие требования к окружению при работе с утилитой PsExec? Для удаленного запуска команд и процессов необходимо, чтобы на удаленном и локальном ПК функционировали службы «Сервер» и «Рабочая станция» (Workstation и Server), а на удаленном компьютере должен быть доступен стандартный общий ресурс Admin$.

Удобство PsExec в том, что ее легко развернуть в сети благодаря возможности удаленной установки, без необходимости устанавливать или настраивать что-либо на каждом. На удаленном ПК PsExec работает в виде службы Windows с таким же именем.

PsExec очень удобна при выполнении множества задач по обслуживанию и администрированию удаленных рабочих станций и серверов. Устанавливать ее не нужно, можно просто скопировать ее в каталог, определенный в переменной %path% (например, C:WindowsSystem32). При запуске команд через PsExec на удаленном ПК запустится служба PsExec (исполняемый файл system32psexesvc.exe), соответственно для нормальной работы вам понадобятся права администратора домена на удаленной машине. Формат запуска и параметры командной строки у утилиты PsExec следующие:

Usage: psexec [computer[,computer2[,…] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-][-a n,n,… ] cmd [arguments]

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

В принципе эту утилиту можно рассматривать как альтернативу telnet. Внимание: при использовании PsExec будьте осторожны, так как в принципе соединение между сервером и клиентом PsExec не шифруется и данные можно перехватить сетевым сниффером.
Если вам понадобится запустить определенную команду на нескольких компьютерах одновременно (например, shutdown –f –r –t 0 ☺), то их имена или ip-адреса нужно перечислить через запятую, или же поместить в текстовый файл, который выбрать в качестве одного их параметров утилиты PsExec..

При использовании ключа “-c” указанная программа сначала скопируется с вашего ПК на удаленный, а потом выполнится. Ключ “-i” заставляет указанную команду запустится в интерактивном режиме. Если вы хотите, чтобы после запуска определенной команды PsExec не ждал ее окончания, а вывернул вам управление (командную строку), нужно указать параметр “-d”:

Эта команда запустит на удаленной системе процесс проверки диска, а администратор сможет продолжить введение команд.

Отключение брандмауэра

Отключаем брандмауэр для всех профилей сети:

Проверить есть ли доступ к удалённому рабочему столу можно с помощью команды telnet, попробовав подключиться к соответствующему порту. Для Windows штатным является подключение по протоколу RDP на порт 3389 (хотя, конечно, и порт для RDP можно изменить и использовать другие протоколы). В случае открытого порта (подключения разрешены) мы увидим приглашение командной оболочки telnet:

Trying 192.168.2.68. Connected to 192.168.2.68. Escape character is ‘^]’.

Если же подключение запрещено, то команда зависнет на этапе «Trying 192.168.2.68. «

Даже если удалённое подключение к рабочему столу отключено его можно удалённо же и включить, а затем подключиться как обычно. Для этого внесём изменение в реестр удалённого ПК.

Если мы получили доступ к командной строке удалённого ПК (см. PsExec выше), то выполняем:

reg add «HKLMSYSTEMCurrentControlSetControlTerminal Server» /v fDenyTSConnections /t REG_DWORD /d 0 /f

Иначе, можно подключиться к реестру через оснастку.

1) Запускаем на удалённом ПК службу «Удаленный реестр«.

  • Входим в локальную оснастку «Службы»:
  • Подключаемся к службам удалённого ПК: в боковом меню Службы в контекстном меню выбрать «Подключиться к другому компьютеру. «
  • Находим службу «Удаленный реестр» и меняем тип запуска на «Вручную»
  • Запускаем службу: кнопка «Запустить»

2) Подключаемся к реестру удалённого ПК.

  • На локальном ПК запускаем редактор реестра:
  • В верхнем меню выбираем: Файл — Подлкючить сетевой реестр.
  • Вводим имя ПК, нажимаем «ОК» и должен появиться дополнительный куст с именем ПК и двумя ветками: HKEY_LOCAL_MACHINE и HKEY_USERS
  • Спускаемся по веткам до HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server
  • Меняем параметр fDenyTSсonnections с 1 на 0

3) Если подлкючиться не удаётся, то нужно ещё донастроить брандмауэр на удалённом ПК

  • Получаем досутп к командной строке удалённого ПК с помощью PsExec:
  • Добавляем разрешающее правило в брандмауэр Windows на удалённое подключение к рабочему столу (порт 3389):

netsh advfirewall firewall add rule name=»Allow Remote Desktop» dir=in protocol=TCP localport=3389 action=allow

    — подробная инструкция со скриншотами

CMD/BAT: удаленный запуск процессов, используем PsExec из PsTools

Работаем с утилитой PsExec из комплекта PsTools от Марка Руссиновича (Mark Russinovich).
http://technet.microsoft.com/en-us/sysi … 97553.aspx
PsExec — легкая замена telnet, которая позволяет вам выполнять процессы на других системах с полноценным функционалом консольных приложений, не имея необходимости вручную устанавливать клиентское программное обеспечение. Самое эффектное использование PsExec включает интерактивные приглашения ко вводу команды на отдаленных системах и отдаленный запуск таких инструментальных средств, как IpConfig. Обратите внимание: некоторые антивирусные сканеры сообщают, что один или больше файлов заражены вирусом «remote admin». Ни одна из утилит PsTools не содержит вирусов, но они использовались вирусами, что и является причиной, почему они вызывают вирусные уведомления.

Инсталляция: просто скопируйте psexec.exe туда, откуда его можно вызвать без точного указания пути, например, в C:WINDOWSsystem32. Команда «psexec» отобразит свой синтаксис использования.

Использование:
psexec [\computer[,computer2[. ] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-][-a n,n. ] cmd [arguments]

computer
Указывает PsExec выполнить приложение на определенных компьютерах. Если вы опускаете имя компьютера, PsExec выполняет приложение на текущей системе. Если вы указывате имя «\*», PsExec выполняет приложение на всех компьютерах в текущем домене.

@file
Указывает PsExec выполнить команду на каждом компьютере, перечисленном в определенном текстовом файле.

-a
Процессоры, на которых может выполниться приложение. Перечисляются через запятую. 1 — первый центральный процессор. Например, чтобы выполнить приложение на центральном процессоре 2 и центральном процессоре 4, укажите: «-a 2,4».

-c
Скопировать указанную программу на отдаленную систему для выполнения. Если вы опускаете эту опцию, приложение должно быть «в путях» (path) отдаленной системы.

-d
Не ждать завершения приложения.

-e
Не загружать профиль указанной учетной записи.

-f
Скопировать указанную программу на отдаленную систему, даже если файл уже существует на отдаленной системе.

-i
Выполнить программу так, чтобы она взаимодействовала с рабочим столом указанного сеанса на отдаленной системе. Если никакой сеанс не определен, процесс работает в консольном сеансе.

-l
Выполнить процесс под ограниченным пользователем (игнорирует группу Administrators и разрешает только привилегии, назначенные группе Users). На Windows Vista процесс выполняется как Low Integrity.

-n
Определяет таймаут в секундах для соединения с отдаленными компьютерами.

-p
Определяет опциональный пароль пользователя. Если вы опустите это, будет запрошен ввод пароля.

-s
Выполнить удаленный процесс под системной учетной записью (System).

-u
Определяет опциональное имя пользователя для входа в систему на удаленном компьютере.

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

-w
Установить рабочий каталог процесса (относительно удаленного компьютера).

-x
Отобразить UI на рабочем столе Winlogon (только для местной системы).

-priority
Определяет -low, -belownormal, -abovenormal, -high или -realtime, чтобы выполнить процесс с различным приоритетом. Используйте -background, чтобы выполнить команду в «low memory» и «I/O priority» на Vista.

program
Имя программы для запуска.

arguments
Параметры для передачи (обратите внимание, что пути к файлам должны быть абсолютными путями на целевой системе).

Вы можете заключить приложения, в именах которых есть пробелы, в кавычки, например:
psexec \marklap «c:long nameapp.exe»
Ввод передаётся удаленной системе, когда Вы нажимаете клавишу ENTER, а Ctrl-C завершает удаленный процесс.

Если вы опускаете имя пользователя, удаленный процесс работает в той же самой учетной записи, под которой вы выполняете PsExec, и в этом случае удаленный процесс не будет иметь доступа к сетевым ресурсам на удаленной системе. Когда вы определяете имя пользователя, удаленный процесс выполняется в определенной учетной записи и будет иметь доступ к любым сетевым ресурсам, к которым у этой учетной записи есть доступ. Заметьте, что пароль передаётся удаленной системе открытым текстом.

Вы можете использовать текущую версию PsExec как замену Runas, когда адресат — местная система, потому что PsExec не требует, чтобы вы были администратором.

Примеры

Следующая команда запускает интерактивную командную строку на компьютере \marklap:
psexec \marklap cmd

Эти команды выполняют IpConfig на удаленной системе с переключателем /all, и отображают получающийся вывод в местном контексте:
psexec \marklap ipconfig /all
psexec -u domainnameusername -p password \marklap ipconfig /all

Эта команда копирует программу test.exe на уаленную систему и выполняет её в интерактивном режиме:
psexec \marklap -c test.exe

Определите полный путь к программе, которая уже установлена на удаленной системе, если она находится не «в путях» системы:
psexec \marklap c:bintest.exe

Выполните Regedit в интерактивном режиме под системной учетной записью, чтобы просмотреть содержимое ключей SAM И SECURITY:
psexec -i -d -s c:windowsregedit.exe

Чтобы выполнить Internet Explorer с привилегиями ограниченного пользователя, используйте такую команду:
psexec -l -d «c:program filesinternet exploreriexplore.exe»

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

Пример команды NETSH — получение списка IP-адресов

Рас­смотрим пример: netsh -с «interface ip» -г corpsvr02 show ipaddress

В этом примере вы получаете список IP-адресов, настроен­ных на CorpSvr02, с применением контекста IP-интерфейса. Здесь контекст RPC не годится, так как он доступен только на локальном компьютере.

Netsh требует наличия в сети сконфигуриро­ванной службы маршрутизации и удаленного доступа. А точнее, вы должны настроить политику удаленного доступа Connections То Other Access Servers, чтобы предоставить разрешение на удаленный доступ. Также убедитесь, что служба удаленного доступа работает.

PsExec может быть опасным

Очень важно понимать, насколько мощен PsExec и как его можно использовать для компрометации компьютера при использовании в небезопасной среде.

Например, сочетание -c , -u и -p определенно позволит любому, кто подключен к компьютеру по сети и обладает знаниями о учетные данные администратора, выполнять секретные вредоносные программы с чьими-либо учетными данными.

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

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

Некоторые антивирусные программы ошибочно идентифицируют PsExec как опасный файл, но эти предупреждения можно игнорировать, если вы точно знаете, что используемая вами программа взята из приведенного выше источника Microsoft. Это происходит потому, что известно, что вредоносное ПО использует PsExec для передачи вирусов.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector