![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Для администрирования удаленных систем часто возникает вопрос: как запустить интерфейс командной строки в этой удаленной системе, чтобы посмотреть, например, какие данные выдает команда ipconfig или запущена ли на удаленном компьютере какая-то необходимая служба для проверки срабатывания групповых политик? Это только часть задач, которые могут стоять перед администратором. Вопрос съема информации я преднамеренно опускаю, хотя мы отдаем себе отчет в правомочности двух постулатов:
1. Администратор (компьютера, домена и т.д.) - это Бог. Он может получить кратковременный доступ к любой информации в зависимости от его квалификации.
2. Компьютер, подключенный к сети, беззащитен перед хакером.
Не хочу ни с кем спорить по вышенаписанному. Я исхожу из того, что, если есть тот, кто придумал код, значит, есть и тот, кто придумает, как обойти этот код. Это только дело времени. И способностей :-)
Итак, первая официальная возможность подключиться к удаленному компьютеру:
Программа PsExec.
Автор: Марк Руссинович (Mark Russinovich) Опубликовано 7 марта 2014 г.
Адрес страницы http://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx
Текст привожу в полном объеме, т.к. вдруг страница переедет.
Введение
Служебные программы, такие как Telnet, и программы удаленного управления, такие как PC Anywhere компании Symantec, позволяют выполнять программы в удаленных системах, однако их не так просто установить, поскольку требуется устанавливать еще и клиентское программное обеспечение в тех удаленных системах, к которым необходимо получить доступ. Программа PsExec — это облегченный вариант Telnet. Она позволяет выполнять процессы в удаленных системах, используя для этого все возможности интерактивного интерфейса консольных приложений, и при этом нет необходимости вручную устанавливать клиентское программное обеспечение. Основное достоинство PsExec — это возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах и удаленно запускать такие инструменты как IpConfig. Это единственный способ вывести на экран локального компьютера данные об удаленной системе.
Примечание. Некоторые антивирусные сканеры сообщают, что одна или несколько из этих программ заражены вирусом «remote admin». Ни одна из программ, входящих в набор PsTools, не содержит вирусов, но они использовались вирусами, что и приводит к появлению таких предупреждений.
Установка
Просто скопируйте программу PsExec в папку для исполняемых файлов. При вводе команды psexec на экран выводится справка о синтаксисе команды.
Программа PsExec работает в операционных системах Windows Vista, NT 4.0, Win2000, Windows XP и Server 2003, в том числе в 64-разрядных версиях ОС
Использование
В статье Марка Руссиновича в выпуске журнала Windows IT Pro Magazine за июль 2004 года описаны дополнительные методы работы с программой PsExec.
использование: psexec [\\компьютер[,компьютер2[,...] | @файл][-u пользователь [-p пароль]][-n s][-l][-s|-e][-x][-i [сеанс]][-c [-f|-v]][-w каталог][-d][-<приоритет>][-a n,n,... ] программа [аргументы]
компьютер
Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.
@файл
Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
-a
Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»
-c
Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
-d
Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-e
Указанный профиль учетной записи не загружается.
-f
Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
-i
Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
-l
При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.
-n
Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
-p
Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-s
Удаленный процесс запускается из системной учетной записи.
-u
Позволяет указать необязательное имя пользователя для входа в удаленную систему.
-v
Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
-w
Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
-x
Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).
-приоритет (приоритет)
Позволяет задавать для процесса различные приоритеты: -low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).
программа
Имя запускаемой программы.
аргументы
Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).
Чтобы задать имя приложения, которое содержит пробелы, используйте кавычки, например psexec \\marklap "c:\длинное имя\app.exe". Введенные данные передаются в удаленную систему при нажатии клавиши «Ввод», для завершения удаленного процесса нужно нажать сочетание клавиш Ctrl-C.
Если имя пользователя не задано, то удаленный процесс запускается из той же учетной записи, что и программа PsExec. Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если имя пользователя задано, то удаленный процесс запускается из указанной учетной записи и получает доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Учтите, что пароль передается в удаленную систему в виде открытого текста.
При обращении к локальной системе эту версию программы PsExec можно использовать вместо программы Runas, поскольку для программы PsExec не требуются права администратора.
Примеры
Эта команда вызывает интерактивный интерфейс командной строки в системе \\marklap:
psexec \\marklap cmd
Эта команда запускает в удаленной системе программу IpConfig с параметром /all и выводит полученные данные на экран локальной системы:
psexec \\marklap ipconfig /all
Эта команда копирует программу test.exe в удаленную систему и выполняет ее в интерактивном режиме.
psexec \\marklap -c test.exe
Если в удаленной системе такая программа уже установлена и находится не в системном каталоге, укажите полный путь к этой программе
psexec \\marklap c:\bin\test.exe
Эта команда запускает в интерактивном режиме из системной учетной записи программу Regedit для просмотра данных разделов реестра SAM и SECURITY:
psexec -i -d -s c:\windows\regedit.exe
Эта команда используется для вызова программы Internet Explorer от имени пользователя с ограниченными правами:
psexec -l -d "c:\program files\internet explorer\iexplore.exe"
Вторая официальная возможность подключиться к удаленному компьютеру:
Программа SC
Описание:
SC представляет собой программу командной строки, используемую для связи со службами и диспетчером управления службами.
ИСПОЛЬЗОВАНИЕ:
sc <сервер> [команда] [имя_службы] <параметр1> <параметр2>...
Параметр <сервер> задается в формате "\\имя_сервера".
Для получения справки о командах введите "sc [команда]"
Команды:
Следующие команды не требуют имени службы:
sc <сервер> <команда> <параметры>
Пример:
sc start MyService
Параметры QUERY и QUERYEX:
Если после команды query указано имя службы, будет возвращено состояние этой службы. В этом случае дополнительные параметры не используются. Если после команды query указаны следующие параметры либо ничего не указано, выполняется перечисление служб.
Примеры использования:
Третья официальная возможность подключиться к удаленному компьютеру:
Программа NET USE
Команда NET USE без параметров выводит список всех подключенных ресурсов.
Пример.
Для просмотра выводимых сведений с паузами между отдельными экранами используются команды:
NET USE /? | MORE
и
NET HELP USE | MORE
Синтаксис данной команды:
NET USE {devicename | *} [password | *] /HOME
NET USE [/PERSISTENT:{YES | NO}]
Эта команда используется для подключения и отключения общих ресурсов и вывода сведений о подключениях. Для своей работы она использует интерфейс NetBios. Для обращения нужно использовать имена NetBios.
NET USE диск: | \\компьютер\папка /DELETE [/YES]
NET USE порт: | \\компьютер\принтер /DELETE [/YES]
NET USE * /DELETE [/YES]
NET USE диск: | * /HOME
Перейти к Оглавлению
1. Администратор (компьютера, домена и т.д.) - это Бог. Он может получить кратковременный доступ к любой информации в зависимости от его квалификации.
2. Компьютер, подключенный к сети, беззащитен перед хакером.
Не хочу ни с кем спорить по вышенаписанному. Я исхожу из того, что, если есть тот, кто придумал код, значит, есть и тот, кто придумает, как обойти этот код. Это только дело времени. И способностей :-)
Все, что здесь написано, применимо, прежде всего, к Windows-компьютерам.
Итак, первая официальная возможность подключиться к удаленному компьютеру:
Программа PsExec.
Автор: Марк Руссинович (Mark Russinovich) Опубликовано 7 марта 2014 г.
Адрес страницы http://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx
Текст привожу в полном объеме, т.к. вдруг страница переедет.
Введение
Служебные программы, такие как Telnet, и программы удаленного управления, такие как PC Anywhere компании Symantec, позволяют выполнять программы в удаленных системах, однако их не так просто установить, поскольку требуется устанавливать еще и клиентское программное обеспечение в тех удаленных системах, к которым необходимо получить доступ. Программа PsExec — это облегченный вариант Telnet. Она позволяет выполнять процессы в удаленных системах, используя для этого все возможности интерактивного интерфейса консольных приложений, и при этом нет необходимости вручную устанавливать клиентское программное обеспечение. Основное достоинство PsExec — это возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах и удаленно запускать такие инструменты как IpConfig. Это единственный способ вывести на экран локального компьютера данные об удаленной системе.
Примечание. Некоторые антивирусные сканеры сообщают, что одна или несколько из этих программ заражены вирусом «remote admin». Ни одна из программ, входящих в набор PsTools, не содержит вирусов, но они использовались вирусами, что и приводит к появлению таких предупреждений.
Установка
Просто скопируйте программу PsExec в папку для исполняемых файлов. При вводе команды psexec на экран выводится справка о синтаксисе команды.
Программа PsExec работает в операционных системах Windows Vista, NT 4.0, Win2000, Windows XP и Server 2003, в том числе в 64-разрядных версиях ОС
Использование
В статье Марка Руссиновича в выпуске журнала Windows IT Pro Magazine за июль 2004 года описаны дополнительные методы работы с программой PsExec.
использование: psexec [\\компьютер[,компьютер2[,...] | @файл][-u пользователь [-p пароль]][-n s][-l][-s|-e][-x][-i [сеанс]][-c [-f|-v]][-w каталог][-d][-<приоритет>][-a n,n,... ] программа [аргументы]
компьютер
Указывает программе PsExec, что нужно запустить приложение на заданном компьютере или компьютерах. Если имя компьютера не указано, то программа PsExec запустит приложение в локальной системе, если же вместо имени компьютера задан символ «звездочка» (\\*), то программа PsExec запустит приложение на всех компьютерах текущего домена.
@файл
Указывает программе PsExec, что нужно запустить приложение на всех компьютерах, перечисленных в заданном текстовом файле.
-a
Процессоры, на которых можно запустить приложение, отделяются запятыми, при этом процессоры нумеруются, начиная с 1. Например, чтобы запустить приложение на процессорах втором и четвертом, введите «-a 2,4»
-c
Указанная программа копируется в удаленную систему для выполнения. Если этот параметр не задан, то приложение должно находиться в системной папке удаленной системы.
-d
Указывает, что не нужно ждать завершения приложения. Этот параметр следует использовать только при запуске неинтерактивных приложений.
-e
Указанный профиль учетной записи не загружается.
-f
Указанная программа копируется в удаленную систему, даже если такой файл в удаленной системе уже есть.
-i
Запускаемая программа получает доступ к рабочему столу указанного сеанса в удаленной системе. Если сеанс не задан, то процесс выполняется в консольном сеансе.
-l
При запуске процесса пользователю предоставляются ограниченные права (права группы администраторов отменяются, и пользователю предоставляются только права, назначенные группе «пользователи»). В ОС Windows Vista процесс запускается с низким уровнем благонадежности.
-n
Позволяет задать задержку подключения к удаленным компьютерам (в секундах).
-p
Позволяет указать необязательный пароль для имени пользователя. Если этот параметр опущен, то будет выдан запрос на ввод пароля, при этом пароль не будет отображаться на экране.
-s
Удаленный процесс запускается из системной учетной записи.
-u
Позволяет указать необязательное имя пользователя для входа в удаленную систему.
-v
Указанный файл копируется в удаленную систему вместо уже имеющегося только при условии, что номер его версии выше или он более новый.
-w
Позволяет указать для процесса рабочий каталог (путь внутри удаленной системы).
-x
Отображает интерфейс пользователя на рабочем столе Winlogon (только в локальной системе).
-приоритет (приоритет)
Позволяет задавать для процесса различные приоритеты: -low (низкий), -belownormal (ниже среднего), -abovenormal (выше среднего), -high (высокий) или -realtime (реального времени).
программа
Имя запускаемой программы.
аргументы
Передаваемые аргументы (обратите внимание, что пути файлов должны указываться как локальные пути в целевой системе).
Чтобы задать имя приложения, которое содержит пробелы, используйте кавычки, например psexec \\marklap "c:\длинное имя\app.exe". Введенные данные передаются в удаленную систему при нажатии клавиши «Ввод», для завершения удаленного процесса нужно нажать сочетание клавиш Ctrl-C.
Если имя пользователя не задано, то удаленный процесс запускается из той же учетной записи, что и программа PsExec. Однако поскольку удаленный процесс является олицетворением, то он не будет иметь доступа к сетевым ресурсам удаленной системы. Если имя пользователя задано, то удаленный процесс запускается из указанной учетной записи и получает доступ к тем же сетевым ресурсам удаленной системы, что и данная учетная запись. Учтите, что пароль передается в удаленную систему в виде открытого текста.
При обращении к локальной системе эту версию программы PsExec можно использовать вместо программы Runas, поскольку для программы PsExec не требуются права администратора.
Примеры
Эта команда вызывает интерактивный интерфейс командной строки в системе \\marklap:
psexec \\marklap cmd
Эта команда запускает в удаленной системе программу IpConfig с параметром /all и выводит полученные данные на экран локальной системы:
psexec \\marklap ipconfig /all
Эта команда копирует программу test.exe в удаленную систему и выполняет ее в интерактивном режиме.
psexec \\marklap -c test.exe
Если в удаленной системе такая программа уже установлена и находится не в системном каталоге, укажите полный путь к этой программе
psexec \\marklap c:\bin\test.exe
Эта команда запускает в интерактивном режиме из системной учетной записи программу Regedit для просмотра данных разделов реестра SAM и SECURITY:
psexec -i -d -s c:\windows\regedit.exe
Эта команда используется для вызова программы Internet Explorer от имени пользователя с ограниченными правами:
psexec -l -d "c:\program files\internet explorer\iexplore.exe"
Вторая официальная возможность подключиться к удаленному компьютеру:
Программа SC
Описание:
SC представляет собой программу командной строки, используемую для связи со службами и диспетчером управления службами.
ИСПОЛЬЗОВАНИЕ:
sc <сервер> [команда] [имя_службы] <параметр1> <параметр2>...
Параметр <сервер> задается в формате "\\имя_сервера".
Для получения справки о командах введите "sc [команда]"
Команды:
query-----------Запрашивает состояние службы или перечисляет состояния типов служб. queryex---------Запрашивает расширенное состояние службы или перечисляет состояния типов служб. start-----------Запускает службу. pause-----------Отправляет службе управляющий запрос PAUSE. interrogate-----Отправляет службе управляющий запрос INTERROGATE. continue--------Отправляет службе управляющий запрос CONTINUE. stop------------Отправляет службе запрос STOP. config----------Изменяет конфигурацию службы (с сохранением). description-----Изменяет описание службы. failure---------Изменяет действие, выполняемое службой при сбое. failureflag-----Изменяет флаг действия, выполняемого службой при сбое. sidtype---------Изменяет тип SID службы. privs-----------Изменяет привилегии, требуемые для службы. managedaccount--Изменяет службу для пометки пароля учетной записи службы как управляемого LSA. qc--------------Запрашивает данные конфигурации для службы. qdescription----Запрашивает описание службы. qfailure--------Запрашивает действие, выполняемое службой при сбое. qfailureflag----Запрашивает флаг действия, выполняемого службой при сбое. qsidtype--------Запрашивает тип SID службы. qprivs----------Запрашивает привилегии, требуемые для службы. qtriggerinfo----Запрашивает параметры триггеров службы. qpreferrednode--Запрашивает предпочтительный узел NUMA службы. qrunlevel-------Запрашивает уровень выполнения службы. qmanagedaccount-Запрашивает, использует ли служба учетную запись с паролем, управляемым LSA. qprotection-----Запрашивает уровень защиты процессов службы. delete----------Удаляет службу (из реестра). create----------Создает службу (добавляет ее в реестр). control---------Отправляет службе управляющий сигнал. sdshow----------Отображает дескриптор безопасности службы. sdset-----------Устанавливает дескриптор безопасности службы. showsid---------Отображает строку SID службы, которая соответствует произвольному имени. triggerinfo-----Задает параметры триггеров службы. preferrednode---Задает предпочтительный узел NUMA службы. runlevel--------Задает уровень выполнения службы. GetDisplayName--Получает параметр DisplayName для службы. GetKeyName------Получает имя раздела для службы (ServiceKeyName). EnumDepend------Перечисляет зависимости службы.
Следующие команды не требуют имени службы:
sc <сервер> <команда> <параметры>
boot------------(ok | bad) Указывает, требуется ли сохранить последнюю загрузку в качестве последней удачной конфигурации загрузки Lock------------Блокирует базу данных служб QueryLock-------Запрашивает состояние блокировки (LockStatus) базы данных диспетчера управления службами (SCManager)
Пример:
sc start MyService
Параметры QUERY и QUERYEX:
Если после команды query указано имя службы, будет возвращено состояние этой службы. В этом случае дополнительные параметры не используются. Если после команды query указаны следующие параметры либо ничего не указано, выполняется перечисление служб.
type= Тип служб для перечисления (driver, service, all) (по умолчанию = service) state= Состояние служб для перечисления (inactive, all) (по умолчанию = active) bufsize= Размер (в байтах) буфера перечисления (по умолчанию = 4096) ri= Номер индекса возобновления для начала перечисления (по умолчанию = 0) group= Группа служб для перечисления (по умолчанию = все группы)
Примеры использования:
sc query - Перечисление состояний активных служб и драйверов sc query eventlog - Отображение состояния службы eventlog sc queryex eventlog - Отображение расширенного состояния службы eventlog sc query type= driver - Перечисление только активных драйверов sc query type= service - Перечисление только служб Win32 sc query state= all - Перечисление всех служб и драйверов sc query bufsize= 50 - Перечисление с буфером размером 50 байт sc query ri= 14 - Перечисление с индексом возобновления = 14 sc queryex group= "" - Перечисление активных служб, не входящих в группу sc query type= interact - Перечисление всех интерактивных служб sc query type= driver group= NDIS - Перечисление всех драйверов NDIS
Третья официальная возможность подключиться к удаленному компьютеру:
Программа NET USE
Команда NET USE без параметров выводит список всех подключенных ресурсов.
Пример.
C:\>net use Новые подключения будут запомнены. Состояние Локальный Удаленный Сеть ------------------------------------------------------------------------------- OK H: \\srv1\home$ Microsoft Windows Network OK U: \\srv2\e$ Microsoft Windows Network OK Y: \\srv3\e$ Microsoft Windows Network Команда выполнена успешно.
Для просмотра выводимых сведений с паузами между отдельными экранами используются команды:
NET USE /? | MORE
и
NET HELP USE | MORE
Синтаксис данной команды:
NET USE [devicename | *] [\\computername\sharename[\volume] [password | *]] [/USER:[domainname\]username] [/USER:[dotted domain name\]username] [/USER:[username@dotted domain name] [/SMARTCARD] [/SAVECRED] [[/DELETE] | [/PERSISTENT:{YES | NO}]]
NET USE {devicename | *} [password | *] /HOME
NET USE [/PERSISTENT:{YES | NO}]
Эта команда используется для подключения и отключения общих ресурсов и вывода сведений о подключениях. Для своей работы она использует интерфейс NetBios. Для обращения нужно использовать имена NetBios.
NET USE [диск: | *] [\\компьютер\папка [пароль | ?]] [/SAVEPW:NO] [/YES] [/NO] NET USE [порт:] [\\компьютер\принтер [пароль | ?]] [/SAVEPW:NO] [/YES] [/NO]
NET USE диск: | \\компьютер\папка /DELETE [/YES]
NET USE порт: | \\компьютер\принтер /DELETE [/YES]
NET USE * /DELETE [/YES]
NET USE диск: | * /HOME
диск Имя диска, назначаемое общей папке. * Эквивалент следующего свободного имени диска. При использовании совместно с ключом /DELETE производится отключение сразу всех ресурсов. порт Имя параллельного (LPT) порта, назначаемое общему принтеру. компьютер Имя компьютера, на котором расположен общий ресурс. папка Сетевое имя общей папки. принтер Сетевое имя общего принтера. пароль Пароль для доступа к общему ресурсу (если он имеется). ? Пароль для доступа к ресурсу запрашивается интерактивно. Этот режим может понадобиться лишь в том случае, когда ввод пароля необязателен. /SAVEPW:NO Использование этого ключа позволяет предотвратить запись пароля в файл со списком паролей. В этом случае при каждом подключении к ресурсу пароль надо будет вводить заново. /YES Выполнение команды NET USE без предварительного запроса данных или подтверждения. /DELETE Отключение общего ресурса. /NO Выполнение команды NET USE с автоматической выдачей отрицательных (NO) ответов на все запросы, относящиеся к подтверждению действий. /HOME Подключение к основному каталогу, если сведения о нем имеются в учетной записи LAN Manager или Windows NT.
Перейти к Оглавлению