Файл: Руссинович М., Маргозис А. Утилиты Sysinternals. Справочник администратора 2012.pdf
Добавлен: 29.10.2018
Просмотров: 33003
Скачиваний: 742

182 Часть
II
Работа с утилитами
сеанса. Используйте параметр –i вместе с –x, чтобы запустить целевой про-
цесс на рабочем столе Winlogon в другом сеансе удаленного рабочего стола.
Следующая команда запускает оболочку командной строки на безопасном
рабочем столе консольного сеанса:
psexec -x -s Cmd.exe
Если вы вошли в систему в консольном режиме, нажмите Ctrl+Alt+Del,
чтобы переключиться на рабочий стол Winlogon. Если в вашей версии
Windows отображается полноэкранное изображение безопасного рабочего
стола, нажмите Alt+Tab, чтобы перейти в оболочку командной строки.
Параметр –w каталог устанавливает исходный каталог целевого процес-
са. Заметьте, что путь к каталогу указывается относительно целевого ком-
пьютера. Например, путь C:\Program Files ссылается на папку C:\Program
Files удаленного компьютера, а не локального. Также обратите внимание на
то, что буквы, назначенные сетевым дискам, обычно не распознаются.
Если используется параметр –e, профиль учетной записи пользователя
не загружается. Эта функция может сэкономить немного времени для про-
цессов с коротким временем жизни, которым профиль учетной записи не
нужен. Однако ее не следует использовать в тех случаях, когда выполне-
ние операций может зависеть от параметров профиля пользователя. Ветвь
HKCU, просматриваемая процессом, ссылается на ветвь HKCU учетной
записи системы, если только в другом сеансе профиль пользователя уже
не был загружен к тому времени, когда был запущен процесс. Переменная
окружения %USERPROFILE% ссылается на каталог профиля учетной за-
писи системы независимо от того, был ли загружен профиль пользователя.
Так как профиль учетной записи системы загружается всегда, PsExec не по-
зволяет использовать параметры –e и –s одновременно.
В Windows Vista и последующих версиях для входа «интерактивного» типа
(когда явно указываются учетные данные) действует фильтрация маркеров:
административные группы отключаются, а административные привилегии
удаляются. Когда учетные данные указываются явно, добавление параметра
–h запускает целевой процесс на удаленной системе с полным маркером ад-
министраторской записи. Если целевой системой является локальный ком-
пьютер, параметр –h запускает процесс с повышенным маркером только в том
случае, если PsExec уже работает с повышенными правами.
Параметр –l (L в нижнем регистре) запускает целевой процесс с ограни-
ченными правами. Если в маркере пользователя представлена группа ад-
министраторов, она отключается; также удаляются все привилегии, кроме
предоставленных группе Пользователи (Users) на целевом компьютере.
В Windows Vista и последующих версиях процесс запускается с низким (Low)
уровнем целостности (IL), что запрещает ему вести запись в большинство мест
файловой системы и реестра. Следующая команда позволяет администратору
Windows XP запустить Internet Explorer с ограниченными правами:
psexec -l -d «%ProgramFiles%\Internet Explorer\iexplore.exe»
SIN_ch_06.indd 182
27.12.2011 14:19:50

PsTools
Глава 6 183
Примечание Полученный процесс с «ограниченными правами» не обязательно бу-
дет иметь те же характеристики, что и другие процессы с «низкими правами», рабо-
тающие на компьютерах с Windows, такие как Internet Explorer в защищенном режиме.
PsExec не отключает группы с повышенными привилегиями, которые обычно отключа-
ет UAC (такие как Опытные пользователи [Power Users] и другие доменные группы),
кроме группы Администраторы (Administrators). Кроме того, если процесс запущен
из процесса с повышенными правами, маркер нового процесса все равно будет по-
лучен из «повышенного» сеанса, даже если он помечен как имеющий низкий IL. Обо-
лочка командной строки с таким маркером будет иметь на панели заголовка надпись
Администратор (Administrator), а дочерние процессы, требующие повышения прав,
не смогут запросить или получить это повышение.
PsFile
Команда Windows NET FILE показывает список файлов, которые процессы
с других компьютеров открыли в системе, на которой выполнена эта коман-
да. Однако она обрезает длинные пути и не позволяет просматривать эту
информацию для удаленных систем. PsFile показывает список файлов или
именованных каналов системы, которые открыты удаленно через службу
Server, а также позволяет закрывать файлы, открытые удаленно, по имени
или номеру идентификатора.
По умолчаниюPsFile перечисляет файлы локальной системы, открытые
с удаленных систем. Чтобы просмотреть файлы, открытые на удаленной
системе, укажите имя удаленного компьютера (при необходимости предо-
ставив альтернативные учетные данные), используя синтаксис, описанный
в разделе «Общие функции» в начале главы. Выходные данные будут вы-
глядеть примерно так:
Files opened remotely on win7_vm:
[332] C:\Users
User: ABBY
Locks: 0
Access: Read
[340] C:\Windows\TEMP\listing.txt
User: ABBY
Locks: 0
Access: Read Write
[352] \PIPE\srvsvc
User: ABBY
Locks: 0
Access: Read Write
Число в скобках — идентификатор, предоставленный системой, за кото-
рым следует путь к открытому файлу и имя учетной записи, связанной с
удаленным подключением. В списке файлов, открытых на удаленном ком-
пьютере, всегда будет именованный канал srvsvc, потому что PsFile устанав-
ливает подключение к службе Server.
SIN_ch_06.indd 183
27.12.2011 14:19:50

184 Часть
II
Работа с утилитами
Выходные данные можно фильтровать, добавив в командную строку
номер идентификатора ресурса или путь. Следующая команда показывает
только те сведения, которые относятся к ресурсу с идентификатором 340 на
компьютере с именем Win7_vm:
psfile \\Win7_vm 340
Следующая команда показывает только сведения, относящиеся к откры-
тым файлам из папки C:\Users, т. е. все ресурсы, пути которых начинаются
с C:\Users:
psfile \\Win7_vm C:\Users
Чтобы закрыть открытые файлы, добавьте в командную строку параметр
–c после идентификатора или префикса пути. Следующая команда закры-
вает все файлы, открытые удаленно из папки C:\Users на локальном ком-
пьютере:
psfile C:\Users -c
Используя PsFile, закрывайте файлы с осторожностью, так как данные,
кешированные на клиентской системе, не записываются в файл перед его
закрытием.
PsGetSid
В Windows идентификаторы защиты (SID) уникальны для пользователей,
группы, компьютеров и других сущности. Эти идентификаторы хранятся
в маркерах доступа и дескрипторах защиты и используются при проверке
прав доступа. Имена, связанные с SID, нужны только для представления в
пользовательском интерфейсе и могут изменяться на разных системах в ре-
зультате локализации. Например, в англоязычных системах имеется группа
Administrators, имеющая SID S-1-5-32-544, но в системах с интерфейсом на
русском языке она называется Администраторы, на итальянском — Gruppo
Administrators, а на финском — Jarjestelmanvalvojat.
Каждый компьютер под управлением Windows имеет локальный SID,
называемый также машинным SID, создающийся во время установки ОС.
Каждая локальная группа и учетная запись на компьютере имеет SID, соз-
данный из машинного SID с добавлением относительного идентификатора
(Relative ID, RID). Точно так же, каждый домен Active Directory имеет SID,
а сущности внутри этого домена (включая доменные группы, учетные запи-
си пользователей и компьютеров) имеют идентификаторы SID, полученные
на основе SID домена с добавлением RID. Кроме машинных и доменных
SID, в Windows определен набор хорошо известных идентификаторов SID в
доменах NT AUTHORITY и BULTIN.
PsGetSid облегчает перевод идентификаторов SID в соответствующие
имена и имен в идентификаторы SID, а также получение идентификаторов
компьютеров и доменов. Как и другие утилиты PsTools, PsGetSid может вы-
SIN_ch_06.indd 184
27.12.2011 14:19:50

PsTools
Глава 6 185
полнять эти переводы на удаленных системах и сообщать результаты на ло-
кальном компьютере.
Чтобы перевести имя или SID, запустите PsGetSid с именем или иденти-
фикатором SID в командной строке. При запуске без параметров эта утили-
та отображает машинный SID локального компьютера. Например:
C:\>psgetsid
SID for \\WIN_VM:
S-1-5-21-2292904206-3342264711-2075022165
C:\>psgetsid Administrator
SID for WIN_VM\Administrator:
S-1-5-21-2292904206-3342264711-2075022165-500
Использование полных доменных имен (ДОМЕН\ИМЯПОЛЬЗОВА-
ТЕЛЯ) позволяет избежать путаницы и повышает производительность.
Если указать только имя учетной записи, PsGetSid в первую очередь прове-
ряет общеизвестные SID, затем встроенные и административно определен-
ные учетные записи. Если имя не найдено, выполняется проверка первично-
го домена, а затем доверенных доменов.
Перевод идентификаторов SID входа (Logon SID) невозможен. Эти
идентификаторы генерируются случайным образом, они назначаются вре-
менным объектам и имеют формат S-1-5-5-X-Y.
Следующая строка сценария PowerShell возвращает список имен, свя-
занных со стандартными SID в диапазоне от S-1-5-32-544 до S-1-5-32-576,
перенаправляя любые сведения об ошибках в nul. Выходные данные этой
команды показаны на рис. 6-1.
0x220..0x240 | %{ psgetsid S-1-5-32-$_ 2> $nul }
Рис. 6-1. Перечисление диапазона имен BUILTIN при помощи PsGetSid
SIN_ch_06.indd 185
27.12.2011 14:19:50

186 Часть
II
Работа с утилитами
Следующий код PowerShell получает имена первых десяти локальных
групп и пользователей, определенных на компьютере. Первая команда из-
влекает машинный SID из выходных данных PsGetSid, а вторая добавляет к
этому идентификатору числа от 1000 до1009 и передает полученные значе-
ния утилите PsGetSid:
$msid = $(psgetsid)[2] + «-»
1000..1009 | %{ psgetsid $msid$_ 2> $nul }
PsInfo
PsInfo собирает ключевую информацию о системах, включая тип установки,
номер сборки ядра, время работы системы, имя и организацию зарегистриро-
ванного владельца, число процессоров и их тип, объем памяти и версию Internet
Explorer. Параметры командной строки позволяют также просматривать ин-
формацию о дисках, установленных исправлениях и приложениях. Например:
System information for \\WIN7-X86-VM:
Uptime: 0 days 23 hours 58 minutes 9 seconds
Kernel version: Windows 7 Ultimate, Multiprocessor Free
Product type: Professional
Product version: 6.1
Service pack: 0
Kernel build number: 7600
Registered organization: Microsoft
Registered owner: Abby
IE version: 8.0000
System root: C:\Windows
Processors: 1
Processor speed: 2.3 GHz
Processor type: Intel(R) Core(TM)2 Duo CPU T7700 @
Physical memory: 2048 MB
Video driver: Microsoft Virtual Machine Bus Video Device
Значение Uptime представляет суммарное время работы системы с мо-
мента последней загрузки. Время, проведенное в режиме ожидания и спя-
щем режиме, не считается, так что это значение не обязательно показывает,
сколько времени прошло с момента последней загрузки системы.
Примечание В момент написания книги объем физической памяти не сообщался
для 64-разрядных версий Windows.
Чтобы получить только отдельные строки из этих данных, укажите в
командной строке полное или частичное имя нужного поля или полей.
Например, если выполнить команду psinfo register, будут показаны только
поля Registered organization и Registered owner.
По умолчанию PsInfo получает информацию о локальном компьютере,
но, используя синтаксис, описанный в начале главы, можно получать све-
SIN_ch_06.indd 186
27.12.2011 14:19:51