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

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

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

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

Добавлен: 29.10.2018

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

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

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

272  Часть 

II   

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

windows показывает действующие разрешения на доступ к каждому файлу 
и вложенной папке в папке Windows, а accesschk -d c:\windows — разреше-
ния на доступ к самой папке Windows. Аналогично, accesschk показывает 
разрешения на доступ к содержимому текущей папки, а accesschk -d — раз-
решения на доступ к самой текущей папке. Наконец, accesschk * показывает 
разрешения на доступ ко всем объектам в текущей папке, тогда как access-
chk -d 
* — только разрешения на доступ к объектам из папки, вложенной в 
текущую папку.

Для проверки разрешений на доступ к разделу реестра добавьте в ко-

мандную строку параметр -k. Можно указать краткое или полное имя кор-
невого раздела (например, HKLM или HKEY_LOCAL_MACHINE), а также 
поставить двоеточие (:) после корневого раздела, как делается в Windows 
PowerShell (подстановочные знаки не поддерживаются). Ниже показаны 
равноценные команды для вывода разрешений на доступ к подразделам 
HKLM\Software\Microsoft:

accesschk -k hklm\software\microsoft

accesschk -k hklm:\software\microsoft

accesschk -k hkey_local_machine\software\microsoft

Для отображения разрешений доступа только к HKLM\Software\

Microsoft без доступа к подразделам добавьте параметр -d .

Для отображения разрешений доступа только к службам Windows до-

бавьте в командную строку параметр -c . Укажите * вместо имени объекта, 
чтобы вывести сведения для всех служб, или scmanager, чтобы проверить 
разрешения Диспетчера управления службами (неполные имена и подста-
новочные знаки не поддерживаются). Например, accesschk -c lanmanserver 
показывает разрешения на доступ к службе Server на компьютере под управ-
лением Windows 7. Вот вывод этой команды:

lanmanserver
  RW NT AUTHORITY\SYSTEM RW 
  BUILTIN\Administrators R NT 
  AUTHORITY\INTERACTIVE R NT 
 AUTHORITY\SERVICE

Эта команда показывает разрешения, явно предоставленные для каждой 

службы группе Authenticated Users (Прошедшие проверку):

accesschk -c «authenticated users» *

Для служб W может обозначать разрешения на запуск, остановку, переза-

пуск, изменение конфигурации, а R —разрешения на запрос конфигурации 
и состояния.

Для просмотра разрешений на доступ к процессам добавьте в командную 

строку параметр -p. Именем объекта в этом случае может быть ID процесса 

SIN_ch_08.indd   272

27.12.2011   14:31:47


background image

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

Глава 8  273 

(PID) либо имя процесса, например, “explorer”. AccessChk может найти про-
цесс по части его имени: команда accesschk -p exp будет показывать разре-
шения на доступ к процессам с именами, начинающимися на «exp”, включая 
все экземпляры Explorer. Если указать * в качестве имени объекта, вы по-
лучите разрешения на доступ ко всем объектам. Имейте в виду, что для про-
смотра разрешений на доступ к процессам, работающим под другой учет-
ной записью или с повышенными привилегиями, требуется наличие прав 
администратора. Вывод команды accesschk -p 3048 для экземпляра Cmd.exe 
с повышенными привилегиями на компьютере под управлением Windows 7 
выглядит следующим образом:

[3048] cmd.exe
 RW 

BUILTIN\Administrators 

  RW NT AUTHORITY\SYSTEM

Используйте -p в сочетании с -t для просмотра разрешений на доступ ко 

всем потокам указанного процесса (имейте в виду, что в командной строке 
параметр t должен следовать за p). Для того же экземпляра Cmd.exe с по-
вышенными привилегиями команда accesschk -pt 3048 выводит следующие 
данные:

[3048] cmd.exe
 RW 

BUILTIN\Administrators

  RW NT AUTHORITY\SYSTEM
 [3048:7148] 

Thread

 RW 

BUILTIN\Administrators

  RW NT AUTHORITY\SYSTEM
 R 

Win7-x86-VM\S-1-5-5-0-248063-Abby

У процесса имеется один поток с ID 7148 и разрешениями, аналогичных 

таковым его процесса-контейнера.

Для просмотра всех сведений маркера процесса используйте -p в соче-

тании с -f. Для каждого из перечисленных процессов AccessChk покажет 
разрешения на доступ к маркеру процесса, а затем отобразит пользователя, 
группы, флаги групп и привилегии маркера.

Разрешения на доступ к объектам из пространства имен Диспетчера объ-

ектов (таким как события, семафоры, разделы и каталоги) просматривают с 
помощью параметра -o. Для вывода данных только об объектах конкретного 
типа добавьте в команду параметр -t и укажите тип объекта. Например, при-
веденная ниже команда показывает действующие разрешения на доступ ко 
всем объектам в каталоге \BaseNamedObjects:

accesschk -o \BaseNamedObjects

А действующие разрешения только для объектов Section  в каталоге \

BaseNamedObjects выводит следующая команда:

accesschk -o -t section \BaseNamedObjects

SIN_ch_08.indd   273

27.12.2011   14:31:47


background image

274  Часть 

II   

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

Если имя объекта не указано, ведется поиск в корне пространства имен. 

Утилита WinObj, описанная в главе 14, отображает графическое представле-
ние пространства имен Диспетчера объектов.

Хотя списки привилегий и прав учетной записи сами по себе не являются 

защищаемыми объектами, AccessChk может показывать их с помощью па-
раметра -a. Привилегии, в отличие от прав, предоставляют учетной записи 
возможности выполнения действий в системе в целом, а не над конкретным 
объектом. В качестве примера можно привести SeBackupPrivilege, которая 
позволяет учетной записи читать объект в обход контроля доступа. Права 
же учетной записи определяют, кто и как может выполнять вход в систему, а 
кто не может. Например, право SeRemotelnteractiveLogonRight необходимо 
для входа в систему через удаленный рабочий стол. В отличие от прав учет-
ных записей, перечень привилегий отображается в маркерах доступа.

Ниже я расскажу об использовании параметра -a на примерах. Имейте 

в виду, что для использования этого параметра AccessChk требует наличия 
прав администратора. Используйте * в качестве имени объекта, чтобы по-
лучить полный список привилегий, прав и учетных записей, которым они 
предоставлены:

accesschk -a *

Имя учетной записи, за которым следует *, перечисляет все привилегии и 

права, присвоенные данной учетной записи. Например, следующая команда 
отображает права и привилегии, присвоенные группе Опытные пользова-
тели (интересно сравнить эти результаты на компьютерах под управлением 
Windows XP и Windows 7):

accesschk -a «power users» *

Наконец, указав имя привилегии или права, вы получите список облада-

ющих им учетных записей (узнать имена привилегий и прав можно с помо-
щью команды accesschk -a *). Эта команда перечисляет все учетные записи, 
которым предоставлена привилегия SeDebugPrivilege:

accesschk -a sedebugprivilege

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

Одной из наиболее эффективных функций AccessChk является поддержка 
поиска объектов, предоставляющих право доступа конкретным пользовате-
лям или группам. Например, AccessChk позволяет проверить, разрешено ли 
пользователям изменять какой-либо объект в папке Program Files или найти 
пользователей с доступом для записи к некоторым службам.

Параметр -s заставляет AccessChk выполнять рекурсивный поиск в кон-

тейнерах (папках, разделах реестра или каталогах пространства имен объек-
тов). Параметр -n перечисляет объекты, не предоставляющие прав доступа 
указанной учетной записи. Параметр -r перечисляет объекты, предоставля-

SIN_ch_08.indd   274

27.12.2011   14:31:47


background image

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

Глава 8  275 

ющие разрешение на чтение, а параметр -w — объекты, предоставляющие 
разрешение на запись. Наконец, в Windows Vista и выше параметр -e отобра-
жает объекты с явно заданным, а не установленным по умолчанию IL (по-
следнему соответствуют метки Medium и No-Write-Up).

Рассмотрим примеры:

•  Поиск в папке Windows объектов, которые разрешено изменять членам 

группы Пользователи:

accesschk -ws Users %windir%

•  Поиск глобальных объектов, доступных для изменения членам группы Все:

accesschk -wo everyone \basenamedobjects

•  Поиск разделов реестра внутри HKEY_CURRENT_USER с явно задан-

ным IL:

accesschk -kse hkcu

•  Поиск служб, для которых у группы Прошедшие проверку есть разреше-

ния на запись:

accesschk -cw «Authenticated Users» *

•  Перечисление именованных каналов, доступных всем пользователям 

разрешения для записи:

accesschk -w \pipe\*

•  Перечисление всех объектов из каталога \sessions Диспетчера объектов, 

не предоставляющих разрешений группе Администраторы:

accesschk -nos Administrators \sessions

В последнем примере мы видим еще одну важную особенность AccessChk. 

Разумеется, для просмотра разрешений у объекта нужно соответствующее 
разрешение на чтение. Ясно также, что в системе есть множество объектов, 
которые запрещено читать обычным пользователям. Например, содержимое 
профиля пользователя скрыто от других пользователей, не обладающих пра-
вами администратора. Чтобы показывать эти объекты, программа AccessChk 
должна работать с повышенными правами или правами администратора, но и 
в этом случае ряд объектов доступен не администраторам, а только системе. 
В случаях, когда маркера администратора недостаточно, AccessChk копирует 
системный маркер из процесса Smss.exe и, олицетворяя его, повторяет попыт-
ку доступа — без этого функции предыдущая команда не действует.

Параметры вывода данных

Видеть можно не только разрешения R и W, но и все разрешения, доба-
вив в командную строку параметр -v. Тогда под именем каждой учетной 
записью AccessChk перечисляет разрешения, используя символьные име-

SIN_ch_08.indd   275

27.12.2011   14:31:48


background image

276  Часть 

II   

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

на из Windows SDK. Ниже приведены действующие разрешения для 
%SystemDrive%\, отображаемые с параметром -v на компьютере под управ-
лением Windows 7:

C:\
  Medium Mandatory Level (Default) [No-Write-Up] 
 RW 

BUILTIN\Administrators

   FILE_ALL_ACCESS 
  RW NT AUTHORITY\SYSTEM
   FILE_ALL_ACCESS 

BUILTIN\Users

   FIL 

E_LIST_DIRECTORY

   FILE_READ_ATTRIBUTES
   FILE_READ_EA
   FILE_TRAVERSE
   SYNCHRONIZE
      READ_CONTROL W NT AUTHORITY\Authenticated Users
 FILE_ADD_SUBDIRECTORY

Подробные данные показывают, что администраторы и система имеют 

полный доступ, пользователи — разрешение на чтение, а аутентифициро-
ванные пользователи имеют дополнительную возможность создавать вло-
женные папки внутри данной папки.

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

объекта, используя параметр -l (это строчная буква L). Ниже приведен ACL 
ссылки “C:\Documents and Settings” в Windows 7 (см. начало раздела об 
AccessChk). Элементы списка управления доступом (ACE) перечисляется 
в следующем порядке: записи пользователей и группы, разрешение и запре-
ты, а затем предоставленные и запрещенные разрешения. Если у ACE есть 
флаги, они отображаются в квадратных скобках с указанием наследования. 
Если флаг [INHERITED_ACE] отсутствует, данный ACE задан явно.

C:\Documents and Settings
  Medium Mandatory Level (Default) [No-Write-Up] 
 [0] 

Everyone

  ACCESS_DENIED_ACE_TYPE
   FIL 

E_LIST_DIRECTORY 

 [1] 

Everyone

  ACCESS_ALLOWED_ACE_TYPE 
   FIL 

E_LIST_DIRECTORY 

   FILE_READ_ATTRIBUTES 
   FILE_READ_EA 

FILE_TRAVERSE 

   SYNCHRONIZE 

READ_CONTROL 

  [2] NT AUTHORITY\SYSTEM
  ACCESS_ALLOWED_ACE_TYPE
   FILE_ALL_ACCESS 
 [3] 

BUILTIN\Administrators 

  ACCESS_ALLOWED_ACE_TYPE 
   FILE_ALL_ACCESS

SIN_ch_08.indd   276

27.12.2011   14:31:48