Какие Файлы Отсканировать

Большинство неисполняемых файлов в цифровой форме не подписывается с сертификатами для подписывания кода. Некоторые неисполняемые файлы, которые поставляют с Windows и которые никогда не изменяются, могли бы быть подписаны каталогом, но файлы с данными, которые могут быть обновлены — включая файлы инициализации, файлы поддержки улья реестра, файлы документа, и временные файлы — никогда не подписываются кодом. Если Вы сканируете папку, которая содержит большое количество таких файлов, Вы могли бы испытать затруднения, находя исполняемые файлы без знака, которые обычно имеют больший интерес. Чтобы отфильтровать эти ложные положительные стороны, Вы могли искать только *.exe, тогда *.dll, тогда *.ocx, тогда *.scr, и так далее. Проблема с тем подходом не вся дополнительная работа или что Вы могли бы пропустить важное расширение. Проблема состоит в том, что исполняемый файл с.tmp расширением, или любым другим расширением, или никаким ­расширением вообще может все еще быть запущен! И авторы вредоносного программного обеспечения часто скрывают свои файлы от контроля, подменяя при очевидно безвредных расширениях файла.

Так вместо того, чтобы фильтровать на расширениях файла, добавьте -e к командной строке SigCheck, чтобы отсканировать только исполняемые файлы. Когда Вы сделаете, SigCheck проверит, является ли файл исполнимой программой прежде, чем проверить ее подпись, и проигнорируйте файл, если это не. Определенно, SigCheck проверяет, являются ли первые два байта MZ. Все 16-разрядные, 32-разрядные, и 64-разрядные исполнимые программы Windows — включая приложения, DLL, и системные драйверы — начинают с этих байтов. SigCheck игнорирует расширение файла, таким образом, исполнимая подмена при других расширениях файла все еще сканируется.

Чтобы искать иерархию папки вместо единственной папки, добавьте -s к командной строке SigCheck. SigCheck тогда сканирует файлы, соответствующие целевой параметр в папке, определенной целевым параметром (или в текущей папке, если цель не определяет папку), и во всех подпапках. Следующая команда сканирует все *.dll файлы в и под папкой Файлов C:\Program:

sigcheck-s "c:\program files\*.dll".

Дополнительная информация о Файле

Добавьте -a опцию, чтобы извлечь дополнительную информацию из каждого отсканированного файла. Добавление -a увеличивает вывод SigCheck с этими полями:

■                Строгое имя, Если файл - блок СЕТИ и имеет подпись строгого имени, это поле отчеты, Со знаком; иначе, это показывает Без знака. (Подписание строгого имени НЕТ независимо от основанного на сертификате подписывания кода и не подразумевает уровня доверия.

■                Поле Original Name The Original Name от ресурса версии файла, если найдено.

■                Внутреннее Имя Внутреннее Поле имени от ресурса версии файла, если найдено.

■                Защитите авторским правом поле Copyright от ресурса версии файла, если найдено.

■                Комментирует поле Comments от ресурса версии файла, если найдено.

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

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

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

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

Параметры командной строки, конечно, могут быть объединены. Например, следующая команда ищет system32 иерархию папки исполняемые файлы без знака, выводя на экран хеши и детализированную информацию о версии для тех файлов:

 

Выходной Формат

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

Можно подавить дисплей баннера SigCheck с -q опцией. Удаление этих строк может помочь с обработкой пакетного файла вывода SigCheck так же как с выводом CSV.

AccessChk.

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

Каковы "Эффектив н ые Полномочия"?

Эффективные полномочия - полномочия, которые пользователь или группа имеют на объекте, принимая во внимание составы группы, так же как полномочия, которые могли бы определенно отрицаться. Например, рассмотрите C:\Documents и папку Настроек на компьютере Windows 7, который является фактически стыком, который существует в целях совместимости приложения. Это предоставляет полный контроль Администраторам и Системе, и полномочиям Рида Всем. Однако, это также определенно отказывает в полномочиях Папки Списка Всем. Если MYDOMAIN\Abby - элемент Администраторов, эффективные полномочия Абби включают все полномочия за исключением Папки Списка; если MYDOMAIN\Abby - обычный пользователь, и таким образом неявный элемент Всех, полномочия Абби включают только полномочия Рида кроме Папки Списка.

Windows включает Эффективный Инструмент Полномочий в Усовершенствованное диалоговое окно Настроек Безопасности, которое выводится на экран, нажимая кнопку Advanced в редакторе полномочий для некоторых объектных типов. Эффективный Инструмент Полномочий вычисляет и выводит на экран эффективные ­полномочия для указанного пользователя или группы на выбранном объекте. AccessChk использует те же самые API в качестве Windows и может выполнить те же самые вычисления, но еще для многих объектных типов и в scriptable утилите. AccessChk может сообщить о полномочиях для файлов, папок, регистрационных ключей, процессов, и любого объектного типа, определенного в пространстве имен диспетчера объектов Windows, таких как каталоги, разделы и семафоры.

 

Отметьте, что "эффективные полномочия" определение в Windows являются только приближением фактических полномочий, которые имел бы зарегистрированный пользователь. Фактические полномочия могли бы отличаться, потому что полномочия можно предоставить или отрицаться основанные на том, как пользователь входит в систему (например, в интерактивном режиме или как сервис); типы входа в систему не включаются в эффективное ­вычисление полномочий. Полномочия доли, и локальные составы группы и полномочия не принимаются во внимание, вычисляя полномочия на удаленных объектах. Кроме того, могут быть аномалии с включением или исключением встроенных локальных групп (См. статью Базы знаний 323309 в http://support.microsoft.com/kb/323309) В частности я недавно сталкивался с недокументированным вычислением включения ошибки полномочий для группы Администраторов. И наконец, эффективные полномочия могут зависеть от возможности пользователя, выполняющего ­вычисления, чтобы считать информацию о целевом пользователе из Активного Каталога. (См. статью Базы знаний 331951 в http://support.microsoft.com/kb/331951.)

Используя AccessChk.

Основной синтаксис AccessChk:

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

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

 

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

c:\windows\explorer.exe.

RW NT SERVICE\TrustedInstaller R BUILTIN\Administrators R NT AUTHORITY\SYSTEM R BUILTIN\Users.

Для каждого объекта, о котором сообщают, AccessChk суммирует полномочия для каждого пользователя и группы, на которую ссылаются в ACL, выводя на экран R, если у учетной записи есть любые полномочия Рида, W, если у учетной записи есть какие-либо полномочия Записи, и ничто, если у этого ни одного нет.

Названные каналы считают объектами файловой системы; используйте "\pipe \" префикс, чтобы определить именованный путь канала, или только "\pipe \", чтобы определить контейнер, в котором определяются все именованные каналы: accesschk \pipe\ сообщает об эффективных полномочиях для всех именованных каналов на компьютере; accesschk \pipe\srvsvc сообщает об эффективных полномочиях для канала srvsvc, если это существует.

 

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

Объемы также считают объектами файловой системы. Используйте синтаксис \\\X: определить локальный объем, заменяя X с именем диска. Например, accesschk \\.\C: сообщают ­полномочия относительно объема C. Отметьте, что полномочия на объеме не то же самое как полномочия на его корневом каталоге. Полномочия объема определяют, кто может выполнить задачи обслуживания объема, используя дисковые утилиты, описанные в Главе 12, например.

Опции, которым позволяют Вы определить различные объектные типы, какие типы полномочий представляют интерес, рекурсивно вызвать ли контейнерные иерархии, сколько детали, чтобы сообщить, и сообщить ли об эффективных полномочиях или ACL объекта. Опции получаются в итоге в Таблице 8-2, и затем описываются более подробно.

 

Объектный Тип

Как упомянуто, если именованный объект - контейнер — такой как папка файловой системы, регистрационный ключ, или каталог диспетчера объектов — отчеты AccessChk относительно объектов в пределах того контейнера, а не на контейнере непосредственно. Чтобы сделать, чтобы AccessChk сообщил относительно контейнерного объекта, добавьте -d опцию к командной строке. Например, accesschk c:\windows сообщает об эффективных полномочиях для каждого файла и подпапки в папке Windows; accesschk-d c:\windows сообщает о полномочиях относительно папки Windows. Точно так же accesschk. сообщает о полномочиях относительно всего в текущей папке, в то время как accesschk-d. сообщает о полномочиях относительно текущей папки только. Как заключительный пример, accesschk * сообщает о полномочиях относительно всех объектов в текущей папке, в то время как accesschk-d * сообщает о полномочиях только относительно объектов подпапки в текущей папке.

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

Добавьте -d, чтобы сообщить о полномочиях только для HKLM\Software\Microsoft, но не для его подключей.

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

В контексте служб W может отослать к полномочиям тем, которые Запускаются, Остановка, Приостанавливают/Продолжают, и Конфигурация Изменения, в то время как R включает полномочия, такие как Конфигурация Запроса и Состояние Запроса.

 

Чтобы просмотреть полномочия на процессах, добавьте-p к командной строке. Имя объекта может быть или ID процесса (PID) или именем процесса, таким как "проводник". AccessChk будет соответствовать частичные имена: accesschk-p exp сообщит о полномочиях для процессов с именами, начинающимися "exp", включая все экземпляры Проводника. Определите * как имя объекта, чтобы показать полномочия для всех процессов. Отметьте, что административные права обязаны просматривать полномочия процессов, работающих как другой пользователь или с поднятыми правами. Следующий вывод состоит в том тем, из чего можно ожидать видеть поднятый экземпляр Cmd.exe на компьютере Windows 7, используя accesschk-p 3048:

[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] Распараллеливают 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.

Следующая команда сообщает об эффективных полномочиях только для объектов Раздела в \BaseNamedObjects каталоге:

accesschk-o-t разделяют \BaseNamedObjects.

Если никакое имя объекта не обеспечивается, корень каталога пространства имен принимается. WinObj, описанный в Главе 14, "Утилиты информации о Системе," обеспечивает графическое представление пространства имен диспетчера объектов.

 

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

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

accesschk-a *.

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

accesschk-a "продвинутые пользователи" *.

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

accesschk-a sedebugprivilege.

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

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

-s опция дает AccessChk команду искать рекурсивно через контейнерные иерархии, такие как папки, регистрационные ключи, или возражать каталогам пространства имен.-n объекты списков опций, которые не предоставляют доступа к указанной учетной записи.-r списки опций возражают, что предоставляют ­полномочия Рида­, и списки-w возражают той Записи предоставления полномочия. Наконец, на Windows Vista и более новый,-e показывает объекты, которые имеют явно метка целостности набора, а не неявное значение по умолчанию Средней целостности и "нет Не Описывает".

 

Давайте рассматривать некоторые примеры:

■                Ищите иерархию папки Windows объекты, которые могут быть изменены Пользователями: accesschk-ws Пользователи %windir %.

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

accesschk-wo все \basenamedobjects.

■                Поиск регистрационных ключей под HKEY_CURRENT_USER, у которых есть явная метка целостности:

accesschk-kse hkcu.

■                Поиск служб, которые предоставляют Аутентифицируемым Пользователям любые полномочия Записи: accesschk - по часовой стрелке "Аутентифицируемые Пользователи" *.

■                Перечислите все именованные каналы, которые предоставляют любому полномочия Записи:

accesschk-w \pipe\*.

■                Перечислите все объекты диспетчера объектов в соответствии с \sessions каталогом, которые не предоставляют доступа Администраторам:

accesschk - Администраторы номеров \sessions.

Этот последний пример указывает на другую мощную функцию AccessChk. Ясно, чтобы просмотреть полномочия объекта, Вам нужно предоставить разрешение Полномочий Чтения для того объекта. И так же, как ясно, есть много объектов всюду по системе, которые не предоставляют доступа обычным пользователям; например, содержание профиля каждого пользователя скрывается от других неадминистративных пользователей. Чтобы сообщить относительно этих объектов, AccessChk должен работать с поднятыми/административными правами. Все же есть некоторые объекты, которые не предоставляют доступа Администраторам, но только к Системе. Так, чтобы это могло сообщить относительно этих объектов, когда ­административный маркер недостаточен, AccessChk копирует Системный маркер от Smss.exe процесс и является олицетворением его, чтобы повторить попытку доступа. Без той функции не работал бы предыдущий пример.

Выходные Опции

Вместо того, чтобы сообщить только R или W указывать на полномочия, можно просмотреть многословные полномочия, добавляя -v к командной строке AccessChk. Ниже каждого имени учетной записи AccessChk перечисляет определенные полномочия, используя символьные имена от SDK Windows. Они - эффективные полномочия, о которых сообщают с -v опцией для %SystemDrive %\на системе Windows 7.

Многословный вывод показывает, что у Администраторов и Системы есть полный контроль, у Пользователей есть доступ Рида, и у Аутентифицируемых Пользователей дополнительно есть возможность создать подпапки в пределах той папки.

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

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

AccessEnum

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

Например, иногда чтобы получить рвение для неадминистративного пользователя, кто-то мог бы предоставить Полный контроль Всем на подпапке приложения в соответствии с Программными файлами, которые должны быть только для чтения неадминистраторам. Как показано в рисунке 8-2, AccessEnum идентифицирует ту папку и шоу, какие пользователи или группы были предоставленным доступом, который отличается от тех из Программных файлов. В примере первая строка показывает полномочия на Файлах C:\Program; вторая строка показывает подпапку, которая предоставляет Всем, по крайней мере, некоторое чтение и полномочия записи (возможно полный контроль), в то время как последние два элемента не предоставляют Администраторам доступа Записи.

Рис. 8-2. AccessEnum.

В текстовом поле около вершины окна AccessEnum введите корневой путь папки или подключа реестра, который Вы хотите исследовать. Вместо того, чтобы ввести путь, можно выбрать папку, нажимая кнопку Directory, или выбрать регистрационный ключ, нажимая кнопку Registry. Нажмите кнопку Scan, чтобы начать сканировать.

Модель контроля доступа Windows кратких обзоров AccessEnum, чтобы только Читать, Запишите и Отрицайте полномочия. Объект показывают как предоставление разрешения Записи, предоставляет ли это только единственное разрешение записи (такое как Владелец Записи) или полный комплект полномочий записи через Полный контроль. Читайте полномочия обрабатываются так же. Имена появляются в столбце Deny, если пользователь или группа явно лишаются какого-либо доступа к объекту. Отметьте, что стыки папки наследства, описанные в разделе AccessChk, отказывают Всем в разрешении Папки Списка. AccessEnum сообщает о Доступе запрещен, если это неспособно считать дескриптор безопасности объекта.

Когда AccessEnum сравнивает объект и его родительский контейнер, чтобы определить, эквивалентны ли их полномочия, это смотрит только на то, предоставляют ли тому же самому набору учетных записей Чтение, Запись и Лишает доступа, соответственно. Если файл предоставит только доступ Владельца Записи, и его родитель только Удаляют доступ, то эти два будут все еще считать эквивалентными, потому что оба позволяют некоторую форму записи.

AccessEnum уплотняет число учетных записей, выведенных на экран как наличие доступа к объекту, скрывая учетные записи с полномочиями, которые дублируются группой, которой принадлежит учетная запись. Например, если файл предоставит доступ Рида и пользователю Бобу и групповому Маркетингу, и Боб - элемент Маркетинговой группы, то только Маркетинг покажут в списке учетных записей, имеющих доступ Рида. Отметьте, что с Режимом Администраторского одобрения UAC на Windows Vista и более новый, это может скрыть случаи, где у неподнятых процессов, выполненных элементом группы Администраторов, есть больше доступа. Например, если Абби будет элементом группы Администраторов, то AccessEnum сообщит об объектах, которые предоставляют Полный контроль явно Абби так же как Администраторам как предоставление доступа только Администраторам, даже при том, что у неподнятых процессов Абби также есть полный контроль.

По умолчанию AccessEnum показывает только объекты, для которых полномочия являются менее рестриктивными чем таковые из их родительских контейнеров. Чтобы перечислить объекты, для которых полномочия отличаются от своих родителей всегда, выберите Параметры экрана Файла из меню опций и выберите Дисплейные файлы С Полномочиями, Которые Отличаются От Родителя.

Поскольку доступ, предоставленный к Системной учетной записи и к другим учетным записям службы, обычно не имеет интереса, ища неправильные полномочия, AccessEnum игнорирует полномочия, включающие те учетные записи. Чтобы рассмотреть те полномочия также, выберите Шоу Локальные Учетные записи Системы И Службы от меню опций.

Щелкните по заголовку столбца, чтобы сортировать список тем столбцом. Например, чтобы упростить поиск полномочий Записи жулика, щелкните по столбцу Write, и затем ищите записи, которые перечисляют Всех группа или другие пользователи неадминистратора или группы. Можно также переупорядочить столбцы, перетаскивая заголовок столбца к новой позиции.

Когда Вы находите потенциальную проблему, щелкните правой кнопкой по записи, чтобы вывести на экран контекстное меню AccessEnum. Если запись представляет файл, или папка, щелкая по Properties выводит на экран диалоговое окно Свойств Проводника для элемента; щелкните по вкладке Security, чтобы исследовать или отредактировать полномочия объекта. Щелчок по Explore в контекстном меню открывает окно Windows Explorer в той папке. Если запись представляет регистрационный ключ, щелкая по Explore открывает Regedit и перемещается к выбранному ключу, где можно осмотреть или отредактировать его полномочия. Отметьте, что на Windows Vista и более новый, управление AccessEnum навигации Regedit требует что AccessEnum, выполненный в том же самом или более высоком уровне целостности чем Regedit.

 

Можно скрыть одну или более записей, щелкая правой кнопкой по записи, и выбор Исключают. Выбранная запись и любые другие, которые начинают с того же самого текста, будут скрыты от дисплея. Например, если Вы исключите C:\Folder, то тогда C:\Folder\Subfolder будет также скрыт.

Нажмите кнопку Save, чтобы сохранить содержание списка к разграниченному вкладкой текстовому файлу Unicode. Выберите Сравниваются С Сохраненным из меню File, чтобы вывести на экран различия в полномочиях между текущим списком против ранее сохраненного файла. Можно использовать эту функцию, чтобы проверить конфигурацию одной системы против той из базовой системы.

ShareEnum

Аспектом сетевой безопасности Windows, которая часто пропускается, являются доли файла. Слабые настройки безопасности - продолжающийся источник вопросов безопасности, потому что слишком много пользователей предоставляются ненужный доступ к файлам на других компьютерах. Если Вы не определяли полномочия, когда создание файла совместно использует в Windows, значение по умолчанию, используемое, чтобы быть, чтобы предоставить Всем Полный контроль. Это было позже изменено, чтобы предоставить Всем только доступ Рида, но даже который мог бы представить уязвимую информацию большему количеству людей чем те, кто должен быть авторизован.

Windows не обеспечивает утилит, чтобы перечислить все доли в сети и их настройках безопасности. Заливки ShareEnum, которые освобождают, давая Вам возможность перечислить весь файл и принтер, совместно используют в домене, диапазоне IP-адреса, или Вашей всей сети, чтобы быстро просмотреть полномочия доли в табличном представлении, и изменить полномочия на тех долях.

Поскольку у только доменного администратора есть возможность просмотреть все сетевые ресурсы,

ShareEnum является самым эффективным, когда Вы выполняете его из доменной учетной записи администратора.

ShareEnum - утилита GUI и не принимает параметров командной строки (кроме/accepteula). Из выпадающего списка выберите <Все домены>, который сканирует Вашу всю сеть, <Диапазон IP-адреса>, который позволяет Вам выбирать диапазон адресов, чтобы отсканировать, или имя домена. Щелкните по Refresh, чтобы отсканировать выбранную часть Вашей сети. Если Вы выбрали <Диапазон IP-адреса>, Вы будете запрошены ввести диапазон IP-адресов, чтобы отсканировать.

Дисплеи ShareEnum делятся информацией в представлении списка, как показано в рисунке 8-3.

Рис. 8-3. ShareEnum.

 

Щелкните по заголовку столбца, чтобы сортировать список данными того столбца, или перетащить заголовки столбца, чтобы переупорядочить их. ShareEnum выводит на экран следующую информацию о каждой доле:

■                Путь доли имя компьютера и сетевое имя.

■                Локальный Путь расположение в файловой системе удаленного компьютера, которую представляет доля.

■                Домен домен компьютера.

■                Введите, является Ли доля долей файла (Диск), доля принтера (Принтер), или Неизвестный.

■                Все Полномочия, что доля предоставляет Всем группу, категоризированную как Чтение, Запись, Чтение-запись, или пробел, если никакие полномочия не предоставляют Всем группу.

■                Другие Объекты Чтения кроме Всех группа, которым предоставляют разрешение Рида доле.

■                Другие Объекты Записи кроме Всех группа, которым предоставляют полномочия Изменения или Полного контроля доле.

■                Отрицайте Любые объекты, которые явно лишены доступа к доле.

Нажмите кнопку Export, чтобы сохранить содержание списка к разграниченному вкладкой текстовому файлу Unicode. Выберите Сравниваются С Сохраненным из меню File, чтобы вывести на экран различия в полномочиях между текущим списком и ранее экспортируемым файлом.

Чтобы изменить полномочия для доли, щелкните правой кнопкой по этому в списке и выберите Свойства. ShareEnum выводит на экран редактора полномочий диалоговое окно для доли. Чтобы открыть долю файла в Windows Explorer, щелкните правой кнопкой по доле в списке и выберите, Исследуют из раскрывающегося меню.

ShellRunAs

В Windows XP и Windows Server 2003, Вы могли выполнить программу как различный пользователь, щелкая правой кнопкой по программе в Windows Explorer, выбирая Выполнение В качестве в контекстном меню, и вводя альтернативные учетные данные в Выполнение Как диалоговое окно. Эта функция часто использовалась, чтобы выполнить программу с административной учетной записью на рабочем столе обычного пользователя. Начинаясь с Windows Vista, пункт меню Run As был заменен Выполненным Как Администратор, который инициировал повышение UAC. Для тех, кто использовал Выполнение В качестве диалогового окна, чтобы выполнить программу в соответствии с различной учетной записью без административных прав, единственная остающаяся опция была менее - удобная утилита консоли Runas.exe. Чтобы восстановить возможности графического RunAs взаимодействуют через интерфейс с дополнительными функциями, я писал совместно ShellRunAs с Джоном Шварцем команды Windows.

Примечание. Некоторые функции ShellRunAs были восстановлены в Windows 7. Удержание Сдвига, щелкая правой кнопкой по программе или ярлыку добавляет Выполнение Как Различного Пользователя к контекстному меню.

ShellRunAs позволяет Вам запускать программу с различной учетной записью пользователя от записи контекстного меню, выводя на экран диалоговое окно, чтобы собрать имя пользователя и пароль (показанный в рисунке 8-4) или ПИН смарт-карты на системах, сконфигурированных для входа в систему смарт-карты. Можно также использовать ShellRunAs так же для Runas.exe, но с более удобным графическим интерфейсом. Ни одна из функций ShellRunAs не требует административных прав, не даже регистрации записей контекстного меню. ShellRunAs может использоваться на Windows XP или более новый.

 

 

Рис. 8-4. Запрос ShellRunAs пользовательских учетных данных.

ShellRunAs также поддерживает Runas.exe netonly функция, которая никогда не была ранее доступна через GUI Windows. С netonly опцией целевая программа продолжает использовать контекст защиты запускающегося пользователя для локального доступа, но это использует предоставленные альтернативные ­учетные данные для удаленного доступа. (См. рисунок 8-5.) Отмечают, что консоль могла бы высветиться кратко, когда ShellRunAs запускает программу с netonly.

Выполненный как различный пользователь (netonly).

Рис. 8-5. Опции "Run As Different User", добавленные к контекстному меню Explorer.

Допустимые опции синтаксиса командной строки для ShellRunAs перечисляются затем, сопровождаются описаниями переключателей командной строки:

ShellRunAs/reg [/тихий].

ShellRunAs/regnetonly [/тихий].

ShellRunAs/unreg [/тихий].

■                Выполнение Регистров /reg Как Различный Пользователь как опция контекстного меню Explorer для текущего пользователя. (См. рисунок 8-5.)

■                Выполнение Регистров /regnetonly Как Различный Пользователь (Netonly) как опция контекстного меню Explorer для текущего пользователя.

■                Нерегистры /unreg любые зарегистрированные опции контекстного меню ShellRunAs для текущего пользователя.

■                /тихий не показывает диалоговое окно результата для регистрации или нерегистрации.

 

ShellRunAs [/netonly] программа [параметры].

Этот синтаксис позволяет прямой запуск программы от командной строки ShellRunAs. С/netonly можно определить, что собранные учетные данные должны использоваться только для удаленного доступа.

Автовход в систему

Утилита Autologon позволяет Вам легко сконфигурировать встроенный механизм автовхода в систему Windows, который автоматически входит в систему пользователь в консоли, когда компьютер запускает. Чтобы включить автовходу в систему, просто выполните Автовход в систему, введите допустимые учетные данные в диалоговое окно, и нажмите кнопку Enable. Можно также передать имя пользователя, домен, и пароль как параметры командной строки, как показано в следующем примере:

автовойдите в систему Абби МИДОМЕН Pass@word1.

Пароль шифруется в реестре как секрет LSA. В следующий раз, когда система запускается, Windows попытается использовать вводимые учетные данные, чтобы войти в систему пользователь в консоли. Отметьте, что Автовход в систему не проверяет представленные учетные данные, и при этом это не проверяет, что указанной учетной записи пользователя позволяют войти в систему к компьютеру. Также отметьте, что, хотя Секреты LSA ­шифруются в реестре, пользователь с административными правами может легко получить и дешифровать их.

Чтобы отключить автовход в систему, выполните Автовход в систему и нажмите кнопку Disable или нажмите Клавишу выхода. Чтобы отключить автовход в систему одно время, удержите клавишу Shift во время запуска в точке, где вход в систему произошел бы. Автовход в систему может также быть предотвращен через Групповую Политику.

Автовход в систему поддерживается на Windows XP и более новый, и требует административных полномочий.

LogonSessions

Утилита LogonSessions перечисляет активные сеансы входа в систему, создаваемые и управляемые Властями Локальной защиты (LSA). Сеанс входа в систему создается, когда учетная запись учетной записи пользователя или службы аутентифицируется к Windows. Аутентификация может произойти разными способами. Вот некоторые примеры:

■                Через интерактивного пользователя входят в систему в диалоговом окне удаленного рабочего стола или консоли.

■                Посредством сетевой аутентификации к доле файла или Веб-приложению.

■                Диспетчером управления службами, используя сохраненные учетные данные, чтобы запустить службу.

■                Через Вторичную службу Входа в систему, использующую Runas.exe.

■                Просто "утверждаемый" операционной системой, как делается с Системной учетной записью и для NT AUTHORITY\ANONYMOUS ВХОД В СИСТЕМУ, который используется, выполняя действия от имени неаутентифицируемого пользователя или "идентифицировать" маркера олицетворения уровня.

 

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

У каждого сеанса входа в систему есть локально-уникальный-идентификатор (LUID). LUID - сгенерированное системой 64-разрядное значение, которое, как гарантируют, будет уникально во время единственного сеанса начальной загрузки на системе, на которой он был сгенерирован. Предопределяются некоторые LUIDs. Например, LUID для Системного сеанса входа в систему учетной записи всегда 0x3e7 (999 десятичных чисел), LUID для сеанса сетевой службы - 0x3e4 (996), и Локальная Служба - 0x3e5 (997). Большинство другого LUIDs в произвольном порядке сгенерировано.

Есть несколько ресурсов, которые принадлежат сеансам входа в систему. Они включают сеансы SMB и сетевые отображения имени диска (например, ИСПОЛЬЗОВАНИЕ СЕТИ), и Subst.exe ассоциации. Можно видеть их в пространстве имен диспетчера объектов Windows, используя утилиту Sysinternals WinObj (обсужденный в Главе 14) под \Sessions\0\DosDevices\LU/D. Ресурсы, принадлежащие Системному сеансу входа в систему, находятся в глобальном пространстве имен.

Отметьте, что эти сеансы входа в систему LSA являются ортогональными к терминальным службам (TS) сеансы. Сеансы TS включают интерактивные пользовательские сеансы в консоль и удаленные рабочие столы, и "сеанс 0", в который все выполненные процессы службы. Маркер доступа процесса идентифицирует сеанс входа в систему LSA, из которого он произошел, и (отдельно) сеанс TS, в котором он работает. Хотя большинство процессов, работающих как Система (сеанс входа в систему 0x3e7), связывается с сеансом 0, есть два Системных процесса, работающие в каждом интерактивном сеансе TS (экземпляр Winlogon.exe и Csrss.exe). Можно видеть их, выбирая столбец Session в Проводнике Процесса.

LogonSessions поддерживается на Windows XP и более новый, и это требует административных полномочий. Выполните LogonSessions в поднятой командной строке, и он перечислит информацию о каждом активном сеансе входа в систему, включая LUID, который является его ID сеанса входа в систему, именем пользователя и SID аутентифицируемой учетной записи, пакет аутентификации, который использовался, тип входа в систему (такой как Служба или Интерактивный), ID терминального сеанса служб, с которым прежде всего связывается сеанс входа в систему, когда вход в систему произошел (местное время), имя сервера, который выполнял аутентификацию, доменное имя DNS, и Пользовательское Имя Принципала (UPN) учетной записи. Если Вы добавите /p к командной строке, то LogonSessions перечислит под каждым сеансом входа в систему все процессы с маркером процесса, связанным с тем сеансом входа в систему. Вот демонстрационный вывод от LogonSessions.

Поскольку Система и учетные записи сетевой службы могут аутентифицировать с учетными данными учетной записи компьютера, имена для этих учетных записей появляются как domain\computer$ (или workgroup\computer$, если они не присоединяются доменом). Сервер входа в систему будет именем компьютера для локальных учетных записей и может быть пробелом, входя в систему с кэшируемыми учетными данными.

Также отметьте, что на Windows Vista и более новый с Управлением Учетной записью пользователя включенный (UAC), два сеанса входа в систему создаются, когда пользователь в интерактивном режиме входит в систему, кто элемент группы Администраторов, как можно видеть с MYDOMAIN\Abby в записях [5] и [6] в предыдущей выборке. Один сеанс входа в систему содержит маркер, представляющий полные права пользователя, и другой содержит фильтруемый маркер с мощными группами отключенные и мощные удаленные полномочия. Это - причина, что, когда администратор поднимает, отображения символа дисковода, которые присутствуют для неподнятых процессов, не определяются для поднятых.

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

 

SDelete

Объектная защита повторного использования - фундаментальная политика модели обеспечения безопасности Windows. Это означает, что, когда приложение выделяет место файла или виртуальную память, это неспособно просмотреть данные, которые ранее хранились в том пространстве. Память нулевых заливок Windows и обнуляет секторы на диске, куда файл помещается прежде, чем это представит любой тип ресурса к приложению. Объектная защита повторного использования не диктует, что место, которое файл занимает быть обнуленным, когда это удаляется, все же. Это - то, потому что Windows разрабатывается учитывая, что одна только операционная система управляет доступом к системным ресурсам. Однако, когда операционная система не работает, возможно использовать необработанных дисковых редакторов и средства восстановления, чтобы просмотреть и восстановить данные, которые освободила операционная система. Даже когда Вы шифруете файлы с Файловой системой с шифрованием Windows (EFS), исходные незашифрованные данные файла файла можно было бы оставить на диске после того, как новая зашифрованная версия файла создается. Пространство, использованное для временного хранения файла, не могло бы также быть зашифровано.

 

Единственный способ гарантировать, который удалил файлы, так же как файлы, которые Вы шифруете с EFS, безопасен от восстановления, должен использовать безопасное, удаляют приложение. Безопасный удаляют перезапись приложений дисковые данные удаленного файла, используя методы, которые, как показывают, делают дисковые данные ­неисправимыми, даже если кто-то использует технологию восстановления, которая может считать образцы в магнитных носителях, которые показывают слабо удаленные файлы. SDelete (Безопасный Удаляют) является таким приложением. Можно использовать SDelete оба, чтобы надежно удалить существующие файлы, так же как надежно стереть любые данные файла, которые существуют в освобожденных частях диска (включая файлы, которые Вы уже удалили или зашифровали). SDelete реализует американскую очистку Министерства обороны и очистку стандартного DOD 5220.22 м., чтобы вселить Вам веру, что после того, как это удаляется с SDelete, Ваших данных файла не стало навсегда. Отметьте, что SDelete надежно удаляет данные файла, но не имена файла, расположенные в свободном дисковом пространстве.

Используя SDelete

SDelete - утилита командной строки. Это работает над Windows XP и более новый и не требует административных прав. Это использует различный синтаксис командной строки для безопасного удаления файла и для того, чтобы стереть контент в освобожденном дисковом пространстве. Чтобы надежно удалить один или более файлов или иерархии папки, используйте этот синтаксис:

sdelete [-p передачи] [-a] [-s] [-q] file_spec.

file_spec может быть именем файла или именем папки, и это может содержать подстановочные символы. -p опция определяет число раз, чтобы перезаписать каждый объект файла. Значение по умолчанию - одна передача. -a опция необходима, чтобы удалить файлы только для чтения. -s опция рекурсивно вызывает подпапки, чтобы удалить файлы, соответствующие спецификацию или удалить иерархию папки. -q (тихая) опция подавляет перечисление результатов на файл. Вот некоторые примеры:

R.E.M Надежно удаляют secret.txt в текущей папке sdelete secret.txt.

R.E.M Надежно удаляют все *.docx файлы в текущей папке и подпапках sdelete-s *.docx.

R.E.M Надежно удаляют иерархию папки C:\Users\Bob sdelete-s C:\Users\Bob.

Чтобы надежно удалить освобожденное дисковое пространство на объеме, используйте этот синтаксис: sdelete [-p передачи] [-z |-c] [d:].

Есть два способа перезаписать освобожденное пространство: -c опция перезаписывает это со случайными данными, в то время как -z опция перезаписывает это с нулями. -c опция поддерживает соответствие DoD; -z опция облегчает сжимать и оптимизировать виртуальные жесткие диски. -p опция определяет число раз, чтобы перезаписать дисковые области. Если имя диска не определяется, освобожденное пространство текущего объема чистят. Отметьте, что двоеточие должно быть включено в спецификацию диска.

 

Примечание. Windows Cipher/W команда подобен в цели SDelete-c, пишущий случайные данные по всему свободному пространству жесткого диска за пределами Таблицы Основного файла (MFT).

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

Как SDelete Работает.

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

Сжатыми, зашифрованными и редкими файлами управляет NTFS в блоках с 16 кластерами. Если программа пишет в существующую часть такого файла, NTFS выделяет новое место на диске, чтобы хранить новые данные, и после того, как новые данные были записанным NTFS, освобождает кластеры, ранее занятые файлом. NTFS проявляет этот консервативный подход по причинам, связанным с целостностью данных, и (для сжатых и редких файлов) в случае, если новое выделение больше чем, что существует (например, новые сжатые данные больше чем старые сжатые данные). Таким образом перезапись такого файла не будет преуспевать в том, чтобы удалить содержание файла из диска.

Чтобы обработать эти типы файлов, SDelete полагается на API дефрагментации. Используя API дефрагментации, SDelete может определить точно, какие кластеры на диске занимаются данными, принадлежащими сжатым, редким и зашифрованным файлам. Когда SDelete знает, какие кластеры содержат данные файла, он может открыть диск для необработанного доступа и перезаписать те кластеры.

Очистка свободного пространства представляет собой другую проблему. Поскольку FAT и NTFS не обеспечивают средств для приложения, чтобы непосредственно адресовать свободное пространство, у SDelete есть одна из двух опций. Прежде всего — как это делает для сжатых, редких и зашифрованных файлов — это может открыть диск для необработанного доступа и перезаписать свободное пространство. Этот подход страдает от большой проблемы: даже если бы SDelete были кодированы, чтобы быть полностью способными к вычислению частей свободного пространства NTFS и дисков FAT (что-то, что это не тривиально), то это рискнуло бы коллизией с активными ­операциями файла­, имеющими место на системе. Например, скажите, что SDelete решает, что кластер свободен, и только в тот момент драйвер файловой системы (FAT, NTFS) решает выделить кластер для файла, который изменяет другое приложение. Драйвер файловой системы пишет новые данные в кластер, и затем SDelete приходит и перезаписывает недавно записанные данные: новых данных файла не стало. Проблема еще хуже, если кластер выделяется для метаданных файловой системы, потому что SDelete повредит дисковые структуры файловой системы.

 

Второй подход, и один SDelete берут, должен косвенно перезаписать свободное пространство. Во-первых, SDelete выделяет самый большой файл, это может. SDelete делает это использование некэшируемый ввод-вывод файла так, чтобы содержание кэша файловой системы NT не было выведено и заменено ­бесполезными данными, связанными с файлом пространства-hogging SDELETE. Поскольку некэшируемый ввод-вывод файла должен быть сектором выровненных (512 байтов), могли бы быть некоторые оставленные по месту, которое не выделяется для файла SDelete, даже когда SDelete не может далее вырастить файл. Чтобы захватить любое остающееся пространство, SDelete затем выделяет самый большой кэшируемый файл, это может. Для обоих из этих файлов SDelete выполняет безопасную перезапись, гарантируя, что все дисковое пространство, которое было ранее свободно, становится надежно чистившим.

На дисках NTFS задание SDELETE не обязательно через после того, как оно выделяет и перезаписывает эти два файла. SDelete должен также заполнить любые существующие свободные части NTFS MFT (Таблица Основного файла) с файлами, которые соответствуют в пределах записи MFT. Запись MFT обычно - 1 Кбайт в размере, и каждый файл или каталог на диске требует по крайней мере одной записи MFT. Маленькие файлы хранятся полностью в пределах их записи MFT, в то время как файлы, которые не соответствуют в пределах записи, являются выделенными кластерами вне MFT. Весь SDelete должен сделать, чтобы заботиться о свободном пространстве MFT, выделяют самый большой файл, это может; когда файл займет все свободное место в записи MFT, NTFS будет препятствовать тому, чтобы файл стал больше, потому что нет никаких свободных кластеров, оставленных на диске (они считаются этими двумя файлами SDelete, ранее выделенным). SDelete тогда повторяет процесс. Когда SDelete больше не может даже создать новый файл, он знает, что все ранее свободные записи в MFT были абсолютно заполнены надежно перезаписанными файлами.

Чтобы перезаписать имя файла файла, который Вы удаляете, SDelete переименовывает времена файла 26, каждый раз заменяя каждый символ имени файла с последовательным буквенным символом. Например, первые переименовывают, sample.txt был бы к AAAAAA.AAA.

Причина, что SDelete надежно не удаляет имена файла, когда свободное пространство чистящего диска - то, что удаление их потребовало бы непосредственного управления структурами каталогов. У структур каталогов может быть свободное пространство, содержащее удаленные имена файла, но свободное пространство каталога не доступно для выделения к другим файлам. Следовательно, у SDelete нет никакого способа выделить это свободное пространство так, чтобы это могло надежно перезаписать это.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: