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

ВУЗ: Не указан

Категория: Книга

Дисциплина: Операционные системы

Добавлен: 29.10.2018

Просмотров: 32988

Скачиваний: 742

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Утилиты системы безопасности 

Глава 8  267 

строгого имени не связано с цифровой подписью на основе сертификата 
и не соответствует какому-либо уровню доверия).

•  Original Name  (Исходное имя) Поле Original Name из внедренных 

сведений о версии файла (если есть).

•  Internal Name (Внутреннее имя)  Поле Internal Name из внедренных 

сведений о версии файла (если есть).

•  Copyright (Авторское право) Поле 

Copyright из внедренных сведений 

о версии файла (если есть).

•  Comments (Комментарии) Поле 

Comments из внедренных сведений о 

версии файла (если есть).
Хеш — это статистически уникальное значение, сгенерированное по бло-

ку данных с использованием такого криптографического алгоритма, кото-
рый при малейшем изменении данных приводит к генерации совершенно 
иного хеша. При использовании надежного хеш-алгоритма на современном 
уровне технологий практически невозможно изменить данные, оставив не-
изменным хеш, поэтому хеш-значения применяют для выявлении случай-
ных повреждений или несанкционированной модификации данных. При 
добавлении в командную строку параметра -h SigCheck вычисляет и отобра-
жает хеш для проверяемых файлов по алгоритму MD5, SHA1 или SHA256. 
Эти хеши можно сравнивать с хеш-значениями, рассчитанными для заве-
домо целых данных, чтобы убедиться в целостности проверяемого файла. 
С помощью хеш-значения можно проверить и неподписанные файлы при 
наличии заведомо целой версии последних. Некоторые системы проверки 
файлов проверяют именно хеш-значения, а не подписи.

Манифест приложения — это документ в формате XML, который можно 

внедрять в файл программы. Впервые их использовали в Windows XP, где 
они помогали различать различные версии одних и тех е сборок. В Windows 
Vista и Windows 7 схема манифеста была дополнена возможностями про-
верки совместимости с разными версиями Windows, а также требования 
прав администратора. Наличие манифеста, совместимого с Windows Vista, 
также отключает виртуализацию файла и реестра для процесса. Для полу-
чения дампа внедренного в файл манифеста добавьте в командную строку 
параметр -m. Ниже приводится вывод SigCheck с собственным манифестом 
этой программы:

c:\program files\sysinternals\sigcheck.exe: 
   Verified: Signed
   Signing 

date: 

19:14 

6/7/2010

   Publisher: 

Sysinternals 

www.sysinternals.com

      Description: File version and signature viewer
   Product: 

Sysinternals 

Sigcheck

   Version: 

1.70

   File 

version: 

1.70 

   Manifest:

SIN_ch_08.indd   267

27.12.2011   14:31:47


background image

268  Часть 

II   

Работа с утилитами

<assembly xmlns=»urn:schemas-microsoft-com:asm.v1» manifestVersion=»1.0»>
  <trustInfo xmlns=»urn:schemas-microsoft-com:asm.v3»> <security>
  <requestedPrivileges>
   <requestedExecutionLevel 

level=»asInvoker» 

uiAccess=»false»></ 

requestedExecutionLevel>
   </requestedPrivileges> 
  </security> 
 </trustInfo> 
</assembly>

Для того чтобы вывести только номер версии файла, добавьте в команд-

ную строку параметр -n. SigCheck отображает только значение поля File 
Version
 из внедренного в файл ресурса с версией файла (если таковой име-
ется), в противном случае выводится строка n/a. Этот параметр полезен для 
использования в командных файлах, лучше использовать его при проверке 
конкретных файлов.

Разумеется, параметры командной строки можно сочетать. Например, 

приведенная ниже команда выполняет поиск в папке system32 и вложенных 
в нее папках неподписанных исполняемых файлов с выводом хеш-значения 
и подробной информации о версии:

sigcheck -u -s -e -a -h c:\windows\system32

Формат вывода данных

Как правило, SigCheck выводит данные в виде форматированного списка 
(рис. 8-1). Чтобы получить данные в формате CSV для импорта в электрон-
ную таблицу или базу данных добавьте в командную строку параметр –v. 
SigCheck выводит заголовки столбцов в соответствии с информацией о фай-
ле, запрошенной посредством других параметров командной строки. За име-
нами столбцов следует строка значений, разделенных запятой, для каждого 
проверяемого файла. Имейте в виду, что параметр -v не может использовать-
ся совместно с параметрами -i и -m.

Вывод заголовка SigCheck можно отключить с помощью параметра -q. 

Удаление этих строк облегчает обработку вывода SigCheck в командных 
файлах и вывод CSV.

AccessChk

AccessChk — это консольная программа, которая отображает действующие 
разрешения на доступ к защищенным объектам, права учетных записей 
пользователей и групп, а также подробности маркера процесса. Программа 
может просматривать вложенные папки и разделы реестра, содержащие 
объекты, для которых у пользователей или групп есть (или, наоборот, от-
сутствуют) разрешения на доступ для чтения или записи. Также программа 
может отображать неструктурированный список управления доступом к за-
щищенным объектам.

SIN_ch_08.indd   268

27.12.2011   14:31:47


background image

Утилиты системы безопасности 

Глава 8  269 

Что такое «действующие разрешения»?

Действующие разрешения — это разрешения на доступ к объекту, которыми 
обладает пользователь или группа в зависимости от принадлежности к той 
или иной группе, а также разрешения, в которых может быть отказано явно. 
В качестве примера рассмотрим папку C:\Documents and Settings на компью-
тере под управлением Windows 7, где эта папка представлена символической 
ссылкой, обеспечивающей совместимость приложений. Разрешением «пол-
ный доступ» для нее обладают группа Администраторы и процесс System, а 
также группа Everyone (Все)  разрешения на доступ для чтения. При этом 
у группы Все явно отозвано разрешение List Folder (Содержимое папки) для 
этой папки. Соответственно, если пользователь MYDOMAIN\Abby являет-
ся членом группы Администраторы, его действующие разрешения включа-
ют все разрешения, кроме Содержимое папки. Если же MYDOMAIN\Abby 
является обычным пользователем и, следовательно, членом группы Все, его 
действующие разрешения содержат только разрешение на чтение без воз-
можности просмотра содержимого папки.

В Windows имеется средство Effective Permissions (Действующие разре-

шения), доступное в окне Advanced Security Settings, которое открывается 
щелчком кнопки Advanced в редакторе разрешений для некоторых типов 
объектов. Средство Effective Permissions проверяет и отображает действую-
щие разрешения на доступ к выбранному объекту для указанного пользова-
теля или группы. AccessChk использует те же API-функции, что и Windows, 
и может выполнять те же операции, но для гораздо более широкого разноо-
бразия объектов, причем ее можно использовать в сценариях. AccessChk мо-
жет отображать разрешения на доступ к файлам, папкам, разделам реестра, 
процессам, а также к любым типам объектов, объявленным в пространстве 
имен Диспетчера объектов, включая каталоги, разделы реестра и семафоры.

Имейте в виду, что действующие разрешения в Windows — это всего 

лишь приблизительный набор реальных разрешений, которыми может об-
ладать пользователь, выполнивший вход в систему. Реальные разрешения 
могут отличаться, поскольку они предоставляются или отзываются на осно-
вании способа входа пользователя (под записью интерактивного пользова-
теля или службы). При определении же действующих разрешений способ 
входа в систему не учитывается. При определении разрешений на доступ к 
удаленным объектам разрешения на общий доступ, членство в локальных 
группах и их привилегии не учитываются. Кроме того, есть аномалии, свя-
занные с включением или исключением встроенных локальных групп (см. 
статью Knowledge Base по адресу http://support.microsoft.com/kb/323309). 
В частности, я недавно обнаружил новую ошибку в определении разреше-
ний для группы Администраторы. Наконец, действующие разрешения могут 
зависеть от наличия прав у записи, под которой определяются разрешения, 
доступа к информации о проверяемом объекте в Active Directory (см. статью 
Knowledge Base под номером 331951 по адресу http://support.microsoft.com/
kb/331951).

SIN_ch_08.indd   269

27.12.2011   14:31:47


background image

270  Часть 

II   

Работа с утилитами

Использование AccessChk

Базовый синтаксис AccessChk имеет следующий вид: 

accesschk [параметры] [имя_пользователя_или_группыимя_объекта

Параметр имя_объекта

 — это защищенный объект, который нужно про-

верить. Если объект является контейнером как, например, папка файло-
вой системы, или раздел реестра, AccessChk покажет все объекты в данном 
контейнере, а не сам контейнер. Если указать параметр имя_пользовате-
ля_или_группы
, AccessChk покажет действующие разрешения для данного 
пользователя или группы, в противном случае программа будет отображать 
набор действующих прав для всех учетных записей, содержащихся в списке 
управления доступом (ACL) объекта.

По умолчанию параметр имя_объекта интерпретируется как объект фай-

ловой системы и может включать подстановочные знаки ? и *. Если объ-
ект является папкой, AccessChk показывает действующие разрешения на 
доступ ко всем вложенным в нее файлам и папкам. Если объект является 
файлом, AccessChk отображает действующие разрешения на доступ к нему. 
Ниже в качестве примера приводятся действующие разрешения на доступ к 
c:\windows\explorer.exe на компьютере под управлением Windows 7:

c:\wi ndows\explorer.exe
  RW NT SERVICE\TrustedInstaller R 
  BUILTIN\Administrators R NT 
 AUTHORITY\SYSTEM 

 BUILTIN\Users

AccessChk суммирует разрешения на доступ ко всем отображаемым объ-

ектам для каждого пользователя или группы из ACL. Если учетная запись 
обладает разрешением на чтение, выводится буква R, а если разрешением на 
запись — W; если разрешения отсутствуют, не выводится ничего.

Именованные каналы считаются объектами файловой системы. 

Используйте префикс “\pipe\”, чтобы указать путь к именованному кана-
лу, или просто “\pipe\”, чтобы указать контейнер, в котором находятся все 
именованные каналы: команда accesschk \pipe\ показывает действующие 
разрешения на доступ ко всем именованным каналам на компьютере, а ac-
cesschk \pipe\srvsvc 

— действующие разрешения на доступ к каналу srvsvc, 

если он существует. Имейте в виду, что поиск с подстановками, например \
pipe\s*
, не поддерживается из-за ограничений Windows. 

Тома также считаются объектами файловой системы. Для проверки ло-

кальных томов служит синтаксис \\.\X:, где X — буква диска. Например, ко-
манда accesschk \\.\C: показывает разрешения на доступ к тому C. Заметьте, 
что разрешения на доступ к тому 

— это не то же самое, что разрешения на 

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

SIN_ch_08.indd   270

27.12.2011   14:31:47


background image

Утилиты системы безопасности 

Глава 8  271 

Параметр  параметры  позволяет задавать типы объектов и разрешений, 

необходимость рекурсивного обхода иерархии контейнеров, выводимые дан-
ные, а также необходимость отображения действующих разрешений или ACL 
объекта. Список параметров приводится в табл. 8-2, подробнее о них — ниже.

Табл. 8-2.  Параметры командной строки AccessChk

Параметр

Описание

Указанный тип объекта

-d

Задан контейнер и вывод разрешений на доступ к нему без права 
доступа к его содержимому

-k

Раздел реестра

-c

Служба Windows

-p

PID,  полное или частичное имя процесса

-f

В сочетании с -p отображает полную информацию маркера 
указанного процесса 

-0

Объект в пространстве имен Диспетчера объектов Windows

-t

В сочетании с -o указывает тип объекта, в сочетании с -p — 
уведомляет о разрешениях на доступ к потокам процесса

-a

Право учетной записи

Поиск прав доступа

-s

Выполняет рекурсивный обход иерархии контейнера

-n

Отображает только объекты, не предоставляющие прав доступа 
(обычно в сочетании с имя_пользователя_или_группы)

-w

Отображает только объекты, предоставляющие право на запись

-r

Отображает только объекты, предоставляющие право на чтение

-e

Отображает только объекты с явно заданными IL (только в Windows 
Vista и выше)

Вывод данных

-1

Отображает ACL вместо действующих разрешений

-u

Не показывает ошибки

-V

Вывод подробных данных

-q

«Тихий» режим (не показывает заголовок)

Тип объекта

Как сказано выше, если именованный объект является контейнером, напри-
мер, папкой файловой системы, разделом реестра или каталогом Диспетчера 
объектов, AccessChk отображает объекты из данного контейнера, а не сам 
контейнер. Чтобы программа AccessChk показывала разрешения для кон-
тейнера, добавьте в командную строку параметр -d. Например, accesschk c:\

SIN_ch_08.indd   271

27.12.2011   14:31:47