Утилиты аудита безопасности Windows. Часть 2

Утилиты аудита безопасности Windows. Часть 2

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение 

Скрипт SEC-AUDIT, выложенный в GitHub-репозиторий автором Sikkandar-Sha и написанный на PowerShell, служит для аудита и проверки настроек безопасности Windows Server. Как вы, наверное, уже догадались, этот скрипт, так же как и предыдущие программы, абсолютно бесплатен, а исходный код выложен в публичный доступ.

Исходный код скрипта в PowerShell

После запуска скрипт проверяет параметры безопасности, элементы управления, политики, применяемые на отдельной машине или контроллере домена. Скрипт сравнивает текущее и рекомендуемое значение параметра, контроля или политики безопасности, которые должны соответствовать известным стандартам безопасности и рекомендациям производителя. Как отмечает автор, этот PowerShell-скрипт пригодится в ситуациях, когда запуск автоматизированных инструментов аудита, таких как OpenVAS или Nessus (с настроенной политикой аудита конфигураций), не разрешен или по каким-то причинам затруднителен.

Что касается эталонных рекомендаций по безопасности от Microsoft, вы можете ознакомиться с ними на официальной странице MSDN для Windows 10 и Active Directory.

Запуск и использование

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

Для наших целей, если вы уверены в чистоте запускаемых скриптов, можно отключить проверку выполнения данной политики. Для этого запускаем консоль PowerShell от имени администратора и вводим команду

Set-ExecutionPolicy RemoteSigned

Этот скрипт можно сохранить в любую директорию (к примеру, на диске С:\) и запустить с правами администратора. Перед выполнением скрипта убедитесь, что для политики выполнения сценария PowerShell установлено значение «Неограниченно». Кроме этого данную настройку можно форсировать, выполнив в окне PowerShell команду

Set-ExecutionPolicy Unrestricted -Force

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

Hardening — это термин из мира информациоонной безопасности. Он обозначает процесс обеспечения безопасности системы (программы) за счет снижения ее уязвимости и, как правило, с использованием исключительно штатных утилит или механизмов защиты.

Windows-audit (PowerShell script)

Windows-audit — очередной PowerShell-скрипт для аудита и проверки безопасности серверов Windows Server 2003+, разработанный claranet. Скрипт собирает большой массив информации об одном или нескольких целевых серверах Windows и сериализует эту информацию на жесткий диск. Полученный файл отчета можно сконвертировать в таблицу Excel или даже базу данных SQL, притом используя фильтры, чтобы включать в отчет только необходимые индикаторы.

Исходный код скрипта в PowerShell

До запуска скрипта еще раз убедитесь, что в PowerShell форсирована политика выполнения с опцией «Неограниченно», либо форсируйте ее вручную:

Set-ExecutionPolicy Unrestricted

После этого скопируйте скрипт в любую директорию на диске C:\ и создайте текстовый файл с именем Node Hints, который может содержать имена хостов NetBIOS и DNS, а также IP-адреса и блоки CIDR тех подсетей, которые необходимо просканировать. Каждая новая строка должна начинаться с оператора include> или exclude<, за которым следуют параметры NetBIOS | DNS | IP | CIDR. Пример заполнения вы можете посмотреть в прилагаемой к скриптам папке.

После этого в файле Get-AuditData.ps1 надо вручную подставить несколько параметров: PSCredential, PSCredential, ThreadCount. После чего можете запускать основные скрипты: сначала Get-AuditData.ps1, а после его выполнения — Compile-AuditData.ps1. Пример запуска скрипта:

.\Get-AuditData.ps1 -PSCredential $MyPSCredential -NodeHintsFile ".\nodehints.txt" -ThreadCount 128;

В файле Compile-AuditData.ps1 до запуска тоже следует вручную подставить несколько параметров: CompilationType, Filter, SQLServerName, SQLDatabaseName. Синтаксис можно посмотреть в файле справки. Пример запуска скрипта:

.\Compile-AuditData.ps1 -CompilationType "Excel" -Filter "Example";

После выполнения вы найдете файл с именем Filtered-Audit-Data-Example.xlsx в папке Examples директории, в которой лежит скрипт.

Windows-Workstation-and-Server-Audit (PowerShell script)

Очередной скрипт для аудита безопасности Windows Windows-Workstation-and-Server-Audit, также написанный на PowerShell разработчиком Аланом Ренуфом (Alan Renouf). Скрипт проверяет рабочую станцию или сервер Windows на все распространенные требования безопасности. Вывод отчета о работе скрипта содержит следующие блоки:

  • основная информация о системе;
  • установленные security pach и hotfix;
  • конфиг локальной политики безопасности;
  • NIC-конфигурация;
  • уставленное ПО;
  • локальные и сетевые ресурсы;
  • принтеры и другая периферия, подключенная к хосту;
  • сведения безопасности из журналов Windows.

С данным скриптом все очень просто: он уже содержит все необходимые переменные и конструктивные блоки. Остается только распаковать его на диск C:\ и запустить под администратором.

Процесс выполнения скрипта — идет сбор данных

SQL Audit Script at TechEd 2014 (PowerShell script)

Этот скрипт, как следует из названия, предназначен для аудита СУБД MS SQL Server. Скрипт состоит из двух файлов: SQLAuditv02.ps1, который непосредственно собирает данные с системы, и Compilereports.ps1, который преобразует полученный отчет из CSV-файла в удобочитаемый формат электронных таблиц Excel.

Обратите внимание, что по замыслу разработчиков эти скрипты необходимо скопировать и запустить из директории на локальном диске C:\Temp, изменив при необходимости в SQLAuditv02.ps1 первые три переменные ($SQLServer, $dir, $SQLDBName). После чего запуск скрипта не потребует каких-либо дополнительных действий и может быть отправлен на исполнение от имени администратора.

Собранная информация группируется по следующим блокам:

  • Server Properties;
  • Windows Info;
  • Version Info;
  • SQL Server Install Date;
  • Configuration Values;
  • DB File Names and paths;
  • DB Properties;
  • Server Hardware;
  • Fixed Drive Freespace;
  • IO Util by DB;
  • System Memory;
  • Process Memory;
  • SQL Log file freespace;
  • CM File Sizes;
  • CM DB Statistics;
  • CM Index Frag.

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

HTML-отчет, сформированный по завершении работы скрипта

Как видно, скрипт не собирает данные о безопасности и не проводит каких-либо compliance-проверок уровня защищенности. Но он все равно может оказаться нам полезным, ведь в целом полученная информация позволяет сформировать представление о запущенном экземпляре MS SQL Server, а проанализировав данные Configuration Values, DB Properties, можно выудить часть security settings.

Microsoft Windows Server Best Practice Analyzer

Начиная с версии Windows Server 2008 R2 в серверных редакциях ОС появились встроенные инструменты для анализа установленных компонентов на соответствие рекомендациям — Best Practice Analyzer. Для более старых версий BPA можно скачать инсталляционным файлом с официальной страницы Microsoft. В серверных ОС 2008 R2 и выше BPA устанавливается на этапе первичной инсталляции системы и всегда остается доступен из оснастки Server Manager.

После запуска программы проверяется ряд критических и некритических параметров Windows based ИТ-инфраструктуры, например: все ли первичные контроллеры домена сконфигурированы к валидному источнику времени, все ли домены имеют два работающих DC, все ли юниты OU в Active Directory защищены от случайного удаления, есть ли их резервные копии, корректно ли настроены зоны DNS, работают ли репликации Group Policy и FRS. Да, кстати, BPA отлично отработает и на MS SQL Server. Поскольку BPA является компонентом Windows Server, этот инструмент поставляется «из коробки» и не требует никаких вложений.

Результаты запуска BPA на Windows Server 2012
Результаты запуска BPA на MS SQL Server 2008

Хотя утилита BPA не ориентирована чисто на безопасность, она очень подходит для первичного сбора данных и оценки health-индикаторов AD, которые, в свою очередь, потом сказываются на общем индексе Windows Hardening.

BPA мож­но запус­кать не только из MMC-оснас­тки, но и из кон­соли. Для автоматизации сбора информации с локального сервера вы можете использовать приведенный ниже скрипт:

#Get-BPAResults.ps1
# Microsoft Windows Server Best Practice Analyzer on CLI mode
#v.1.0
Import-Module ServerManager
Import-Module BestPractices
 
$ResultDir = "C:\Temp\"
 
foreach ($BPAModel in Get-BpaModel)
 {
   $BPAinstance = $BPaModel.Id
   $FileName = $BPAinstance.Substring($BPAinstance.LastIndexOf("/")+1)
   Invoke-BpaModel $BPAinstance 
   Get-BPAResult $BPAinstance | ConvertTo-Html > ($ResultDir + $FileName + ".html")
 }

Результат анализа системы, проведенного BPA по каждой отдельной роли сервера, будет сохранен в отдельном HTML-файле в папке C:\Temp.

Hardentools for Windows

Hardentools — это бесплатная небольшая программа, не требующая установки, предназначенна для отключения/включения ряда возможностей в операционных системах Windows и пользовательском ПО (MS Office, Adobe Reader и другие). Одним кликом вы можете менять доступные опции security settings, к примеру отключить Windows Script Host, опасное выполнение AсtivX, форсировать выполнение ASR (Win10), переход в Adobe Reader protection mode, Disable Adobe JavaScript и тому подобное. Если вам лень возиться с консолями MMC и лезть руками в реестр, правя и добавляя специфические ключи, то это то, что вам надо!

Стартовое окно утилиты Hardentools for Windows

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

Результаты работы утилиты Hardentools for Windows

SAMRi10 — Hardening SAM Remote Access in Windows 10 / Server 2016

SAMRi10 — это еще одна утилита для аудита безопасности Windows, а точнее, еще один PowerShell-скрипт от Microsoft, призванный обеспечить защиту базы данных учетных записей пользователей (Security Account Manager, SAM). После запуска скрипт форсирует включение политики, запрещающей делать удаленный вызов и использование SAM с целью перечисления списка членов домена (пользователей).

Чтобы запустить скрипт, будет достаточно распаковать его в любую удобную папку (к примеру, на том же диске C:\) и запустить от имени администратора в консоли PowerShell:

.\SAMRi10.ps1

Вот так будет выглядеть старт исполнения SAMRi10:

Запуск SAMRi10

А вот так — завершение работы скрипта:

Успешное завершение
Результат успешного выполнения скрипта SAMRi10 в консоли PowerShell

Почему SAMRi10 так важен?

Существует ряд атак, которые проводятся на SAM с целью получить логины и хеши пользователя на локальной машине (например, отдельно стоящем контроллере домена). Более подробно о скрипте и теории безопасности SAM можно почитать на страничке GitHub.

Результаты получения списка членов домена (пользователей) до форсирования SAMRi10:

Перечисление пользователей до применения SAMRi10

А вот результат той же команды, но уже после форсирования SAMRi10. Как мы видим, не авторизованным в группе админов членам домена запрещено получать список перечисления:

Запрос перечисления пользователей после применения SAMRi10

Microsoft отмечает, что использование SAMRi10 никак не помешает работе легитимных администраторов, и приводит пример, как DC на базе Windows Server 2016 будет реагировать на удаленные запросы к SAM в зависимости от привилегий учетной записи, сгенерировавшей этот запрос:

  • Domain Admin account: запрос будет выполнен;
  • Non-privileged User account: вызовет ошибку Access is denied;
  • член группы Remote SAM Users: запрос будет выполнен.

Заключение

Первая часть нашего обзора лучших утилит аудита безопасности Windows. Мы рассмотрели самые популярное и широко используемые бесплатные и open source инструменты аудита безопасности десктопных и серверных версий Windows. С помощью этого нехитрого арсенала вы с легкостью сможете прочекать свой ноут или корпоративную серверную станцию на предмет исходной защищенности, а также, следуя советам и подсказкам, которые есть в части утилит, оттюнинговать и улучшить уровень защищенности (hardening state) Windows.

Скоро ждите вторую часть нашего обзора, в которой мы рассмотрим уже коммерческие версии инструментов аудита безопасности Windows — а они, как правило, обладают еще большими возможностями, функциями и фичами и наверняка будут полезны доменным ИТ-администраторам.

Источник


Report Page