XPath-запросы
Наконец, выполнив необходимые настройки файлов журналов Windows, перейдем непосредственно к поиску интересующей информации. Заметим, что в случае включения всех рекомендованных политик аудита ИБ сами журналы событий становятся достаточно объемными, поэтому поиск по их содержимому может быть медленным (этих недостатков лишены специализированные решения, предназначенные в том числе для быстрого поиска информации — Log Management и SIEM-системы). Отметим также, что по умолчанию не все журналы Windows отображаются к графической оснастке (eventvwr.msc), поэтому в данной оснастке следует перейти в меню «Вид» и отметить check-box «Отобразить аналитический и отладочный журналы».
Итак, поиск по журналам аудита будем осуществлять с помощью встроенного редактора запросов XPath (XPath queries). Открыв интересующий нас журнал, например, журнал безопасности Windows (вкладка «Журналы Windows» -> «Безопасность» / Security), нажатием правой кнопки мыши на имени журнала выберем пункт «Фильтр текущего журнала». Нам откроется графический редактор поисковых запросов, при этом для наиболее продуктивной работы следует открыть вторую вкладку открывшегося окна с названием XML, отметив внизу check-box «Изменить запрос вручную». Нам будет предложено изменить XML-текст (по сути, XPath запрос) в соответствии с нашими критериями поиска.
Результат запроса будет также представляться в различных формах, но для лучшего понимания и получения детального контента в конкретном событии рекомендуем переключиться на вкладку «Подробности», а там выбрать radio-button «Режим XML», в котором в формате «ключ-значение» будут представлены данные события безопасности.
Приведем несколько полезных XPath запросов с комментариями.
1. Поиск по имени учетной записи в журнале Security — возьмем для примера имя Username:
2. Поиск по значению конкретного свойства события в журнале Sysmon — возьмем для примера поиск событий, в которых фигурировал целевой порт 443:
3. Произведем поиск сразу по двум условиям — возьмем для примера событие входа с EventID=4624 и имя пользователя Username:
4. Поиск по трем условиям — дополнительно укажем Logon Type = 2, что соответствует интерактивному входу в ОС:
5. Рассмотрим функционал исключения из выборки данных по определенным критериям — это осуществляется указанием оператора Suppress с условиями исключения. В данном примере мы исключим из результатов поиска по фактам успешного входа (EventID=4624) все события, которые имеют отношения к системным учетным записям (SID S-1-5-18/19/20) с нерелевантным для нас типам входа (Logon Type = 4/5), а также применим функционал задания условий поиска с логическим оператором «ИЛИ», указав не интересующие нас имя процесса входа (Advapi) и методы аутентификации (Negotiate и NTLM):
Как разрешить удаленные подключения к компьютеру
Если Вы хотите подключиться к находящемуся в вашей локальной сети удаленному компьютеру, Вы должны убедиться, что на этом компьютере разрешены удаленные подключения.
Важно! Приложение «Удаленный рабочий стол» работает только с редакциями операционной системы Windows 10 не ниже Pro (Профессиональная)
Для того, чтобы разрешить подключения к удаленному компьютеру, выполните на нем следующие действия:
- Откройте «Панель управления»;
- Зайдите в раздел «Система»;
- Выберите пункт «Защита системы»;
- Выберите вкладку «Удаленный доступ»;
- Активируйте пункт «Разрешить удаленные подключения к этому компьютеру»;
- Нажмите на кнопку «ОК»;
- Нажмите на кнопку «Применить»;
- Снова нажмите «ОК», чтобы завершить задачу.
Если Вы все сделали правильно, теперь ваш компьютер будет поддерживать удаленные подключения по локальной сети.
Если Вы хотите получить доступ к этому компьютеру через Интернет, внимательно прочитайте следующий раздел.
Как настроить удаленный доступ к компьютеру через Интернет
Если Вы хотите получить удаленный доступ к компьютеру через Интернет, в дополнение к настройкам системы, вам необходимо произвести некоторые дополнительные настройки.
Как настроить на компьютере статический IP-адрес
Для того, чтобы в Windows 10 подключиться к удаленному рабочему столу, вам понадобится IP-адрес компьютера, который может быть статическим или динамическим. Первый является более предпочтительным, так как компьютер все время использует один и тот же адрес. В случае же с динамическим, IP-адрес меняется при каждой перезагрузке компьютера, из-за чего работать с удаленным компьютером не получится. Чтобы решить проблему, необходимо присвоить компьютеру статический IP-адрес. Для этого:
- Откройте «Панель управления»;
- Зайдите в «Центр управления сетями и общим доступом»;
- Выберите пункт «Изменение параметров адаптера»;
- Кликните правой кнопкой мыши по текущему подключению, и выберите «Свойства»;
- Выберите «IP версии 4 (TCP/IPv4)»;
- Нажмите на кнопку «Свойства»;
- Активируйте пункт «Использовать следующий IP-адрес»;
- Введите действительный локальный IP-адрес, который находится вне сферы действия DHCP (во избежание конфликтов IP-адресов в сети). Например: (Вы можете найти эту информацию в разделе «Настройки DHCP» вашего маршрутизатора);
- Введите Маску подсети. В большинстве домашних сетей, это следующее значение: ;
- В разделе «Основной шлюз» введите IP-адрес маршрутизатора. Например: 10.1.2.1.;
- В разделе «Использовать следующие адреса DNS-серверов» не забудьте ввести IP-адрес вашего DNS-сервера, который в большинстве случаев является IP-адресом маршрутизатора. (Если Вы не можете подключиться к Интернету, Вы можете попробовать использовать Google Public DNS адреса: 8.8.4.4 и 8.8.8.8);
- Нажмите на кнопку «ОК»;
- Нажмите на кнопку «Закрыть», чтобы завершить задачу.
Как найти публичный IP-адрес вашего компьютера
Если Вы хотите получить возможность удаленного подключения к вашему компьютеру через Интернет, чтобы связаться с устройством, вам необходимо знать ваш публичный IP-адрес.
Самым простым способом найти ваш публичный IP-адрес является следующий:
Откройте веб-браузер, и зайдите на сайт В верхней части страницы Вы увидите адрес, который и является вашим публичным IP.
Имейте в виду, что большинство интернет-провайдеров предлагают для своих потребителей динамические общедоступные IP-адреса, а это значит, что ваш публичный IP-адрес может время от времени меняться.
Как настроить на маршрутизаторе TCP-порт 3389
Чтобы разрешить удаленные подключения через Интернет к определенному компьютеру, находящемуся в локальной сети, вам необходимо настроить на сетевом маршрутизаторе TCP-порт 3389. Для этого:
Запустите «Командную строку»;
Введите команду ipconfig и нажмите Enter:
Обратите внимание на IPv4-адрес, который идентифицирует ваш компьютер в локальной сети. Кроме того, обратите внимание на основной шлюз, который является IPv4-адресом маршрутизатора;
- Откройте веб-браузер;
- Введите в строке поиска IPv4-адрес вашего роутера и нажмите Enter;
- Войдите на страницу маршрутизатора, используя ваш логин и пароль;
- Просмотрите список доступных настроек и найдите раздел «Port Forwarding»;
- Убедитесь, что эта функция включена;
- Под списком «Port Forwarding» добавьте следующие данные:
Название службы: Вы можете использовать любое имя, которое хотите;
Диапазон портов: введите TCP порт номер 3389;
Локальный IP: введите IPv4-адрес вашего компьютера. Например: ;
Локальный порт: введите тот же номер TCP порта 3389;
Протокол: выберите TCP.
- Убедитесь, что данные были добавлены в настройки маршрутизатора;
Устранение неполадок при подключении к удаленному рабочему столу
Если брандмауэр Windows не дает соединиться, откройте его настройки в параметрах.
Нажмите на изменение параметров над списком.
Укажите для удаленного рабочего стола обе галочки.
В случае, если не срабатывает подключение по порту, нужно уточнить наличие такой возможности у провайдера.
Если показывается ошибка об отсутствии ответа со стороны ПК, к которому вы подключаетесь – убедитесь, что он вообще включен и что он не ушел в спящий режим.
Также может потребоваться переключить в параметрах, в разделе подключения, тип сети с общественной на доверенный.
Выберите частную, в противном случае компьютер может быть не виден даже при работе по локальной сети.
Журналы и командная строка
До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:
Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.
Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:
Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:
Смотрим за ходом обновления Windows.
Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:
Смотрим, кто пытается пролезть на наш дедик.
При необходимости посмотреть в журнале строки перед и после нужной, можно использовать параметр Context. Например, для вывода трех строк после и трех строк перед ошибкой можно использовать команду:
Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:
Для получения списка доступных системных журналов можно выполнить следующую команду:
Вывод доступных журналов и информации о них.
Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:
Последние записи в журнале System.
Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.
Для примера получим все события из журнала System с кодом события 1 и 6013.
В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:. Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится
Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:
Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:. Ошибки и предупреждения журнала System
Ошибки и предупреждения журнала System.
Аналогичным образом можно собирать таблицу, фильтруя непосредственно по тексту события и по времени.
Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:
PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.
Аудит доступа к файлам и папкам Windows на примере Windows server 2012R2
Иногда бывает необходимо понять кто удалил/изменил/переименовал конкретный файл или папку. В ОС Windows для этого используется аудит доступа к объектам.
Аудит это запись в специальные журналы информации об определенных событиях (источник, код события, успешность, объект и т.д. ). Объектом аудита может являться как любой файл или папка, так и определенное событие, например вход в систему или выход из нее, то есть можно записывать все события происходящие с конкретным файлом или папкой – чтение, запись, удаление и т.д., можно события входа в систему и т.д.
Необходимо понимать, что аудит забирает на себя.
Для того, чтобы можно было настраивать аудит файлов и папок необходимо предварительно включить эту возможность через локальные (или в случае если у Вас используется Microsoft AD групповые) политики безопасности.
В случае локальных политик необходимо запустить оснастку “Локальная политика безопасности”, для этого необходимо нажать комбинацию клавиш Win+R, в открывшееся поле ввести secpol.msc и нажать клавишу Enter.
В открывшейся оснастке в дереве слева необходимо перейти в раздел “Локальные политики” – “Политика аудита”.
Далее необходимо выбрать необходимую нам политику – в данном случае это “Аудит доступа к объектам”. Именно этой политикой регулируется доступ к объектам файловой системы (файлам и папкам) и раскрыть ее двойным щелчком мыши. В открывшемся окне необходимо выбрать какие именно типы событий будут регистрироваться – “Успех” (разрешение на операцию получено) и/или “Отказ” – запрет операции и проставить соответствующие галочки, после чего нажать “Ок”.
Теперь когда включена возможность ведения аудита интересующих нас событий и их тип можно переходить к настройке самих объектов – в нашем случае файлов и папок.
Для этого необходимо открыть свойства файла или папки, перейти на вкладку “Безопасность”, нажать “Дополнительно” и “Аудит”.
Нажимаем “Добавить” и начинаем настраивать аудит.
Сначала выбираем субъект – это чьи действия будут аудироваться (записываться в журнал аудита).
Можно вписать туда имя пользователя или группы, если имя заранее неизвестно, то можно воспользоваться кнопкой “Дополнительно” которая открывает форму поиска где можно выбрать интересующих нас пользователей и группы. Чтобы контролировались действия всех пользователей необходимо выбрать группу “Все”.
Далее необходимо настроить тип аудируемых событий (Успех, Отказ, Все), также область область применения для аудита папок – только эта папка, папка с подпапками, только подпапки. только файлы и т.д., а также сами события аудита.
Для папок поля такие:
А такие для файлов:
После этого начнется сбор данных аудита. Все события аудита пишутся в журнал “Безопасность”. Открыть его проще всего через оснастку “Управление компьютером” compmgmt.msc.
В дереве слева выбрать “Просмотр событий” – “Журналы Windows” – “Безопасность”.
Каждое событие ОС Windows имеет свой код события. Список событий достаточно обширен и доступен на сайте Microsoft либо в интернете. Например события аудита можно посмотреть здесь.
Попробуем например найти событие удаления файла, для этого удалим файл на котором предварительно настроен аудит (если это не тестовые файл, то не забываем сделать его копию, так как аудит это всего лишь информация о действиях, а не разрешение/запрет этих действий). Нам нужно событие с кодом 4663 – получение доступа к объекту, у которого в поле Операции доступа Написано “DELETE” . Поиск событий в журналах Windows достаточно сложен, поэтому обычно используются специализированные средства анализа – системы мониторинга, скрипты и т.д.
Вручную можно, например, задать например такой фильтр:
Далее в отфильтрованных событиях необходимо найти интересующее нас по имени объекта.
Открыть его двойным щелчком мыши и увидеть кто удалил данный файл в поле субъект.
Выбор файлов и папок, доступ к которым будет фиксироваться
После того, как активирован аудит доступа к файлам и папкам, необходимо выбрать конкретные объекты файловой системы, аудит доступа к которым будет вестись. Так же как и разрешения NTFS, настройки аудита по-умолчанию наследуются на все дочерние объекты (если не настроено иначе). Точно так же, как при назначении прав доступа на файлы и папки, наследование настроек аудита может быть включено как для всех, так и только для выбранных объектов.
Чтобы настроить аудит для конкретной папки/файла, необходимо щелкнуть по нему правой кнопкой мыши и выбрать пункт Свойства (Properties). В окне свойств нужно перейти на вкладку Безопасность (Security) и нажать кнопку Advanced. В окне расширенных настроек безопасности (Advanced Security Settings) перейдем на вкладку Аудит (Auditing). Настройка аудита, естественно, требует прав администратора. На данном этапе в окне аудита будет отображен список пользователей и групп, для которых включен аудит на данный ресурс:
Чтобы добавить пользователей или группы, доступ которых к данному объекту будет фиксироваться, необходимо нажать кнопку Add… и указать имена этих пользователей/групп (либо указать Everyone – для аудита доступа всех пользователей):
Далее нужно указать конкретные настройки аудита (такие события, как доступ, запись, удаление, создание файлов и папок и т.д.). После чего нажимаем OK.
Сразу после применения данных настроек в системном журнале Security (найти его можно в оснастке Computer Management -> Events Viewer), при каждом доступе к объектам, для которых включен аудит, будут появляться соответствующие записи.
Альтернативно события можно просмотреть и отфильтровать с помощью командлета PowerShell — Get-EventLog Например, чтобы вывести все события с eventid 4660, выполним комманду:
UPD от 06.08.2012 (Благодарим комментатора Roman).
В Windows 2008/Windows 7 для управления аудитом появилась специальная утилита auditpol. Полный список типов объектов, на который можно включить аудит можно увидеть при помощи команды:
Как вы видите эти объекты разделены на 9 категорий:
- System
- Logon/Logoff
- Object Access
- Privilege Use
- Detailed Tracking
- Policy Change
- Account Management
- DS Access
- Account Logon
И каждая из них, соответственно, делиться на подкатегории. Например, категория аудита Object Access включает в себя подкатегорию File System и чтобы включить аудит для объектов файловой системы на компьютере выполним команду:
Отключается он соответственно командой:
Т.е. если отключить аудит ненужных подкатегорий, можно существенно сократить объем журнала и количества ненужных событий.
После того, как активирован аудит доступа к файлам и папкам, нужно указать конкретные объекты которые будем контролировать (в свойствах файлов и папок). Имейте в виду, что по-умолчанию настройки аудита наследуются на все дочерние объекты (если не указано иное ).
Разрешение для симптома 1
Чтобы устранить эту проблему, при необходимости используйте следующие методы.
Проверка включения удаленного рабочего стола
-
Откройте элемент System в панели управления. Чтобы запустить средство System, нажмите кнопку Начните, нажмите панель управления, щелкните System и нажмите кнопку ОК.
-
Под панелью управления главная щелкните удаленные параметры.
-
Щелкните вкладку Remote.
-
В удаленном рабочем столе выберите любой из доступных параметров в зависимости от требований к безопасности:
-
Разрешить подключения с компьютеров с компьютеров с любой версией удаленного рабочего стола (менее безопасной)
-
Разрешить подключение с компьютеров только с компьютеров с удаленным рабочим столом с проверкой подлинности на уровне сети (более безопасно)
-
Если вы выберите не разрешайте подключение к этому компьютеру на вкладке Remote, никакие пользователи не смогут подключаться удаленно к этому компьютеру, даже если они являются членами группы пользователей удаленных настольных компьютеров.
Проверка ограничения числа подключений служб удаленного рабочего стола
-
Запустите оснастку групповой политики, а затем откройте локализованную политику безопасности или соответствующую групповую политику.
-
Найдите следующую команду:
Локализованная компьютерная политика > Конфигурация компьютера > Административные шаблоны > Windows компоненты > Удаленные службы настольных компьютеров > Удаленный хост сеансов рабочего стола > Подключение Ограничивает количество подключений
-
Щелкните Разрешено.
-
В разрешенной поле RD Maximum Connections введите максимальное количество подключений, которое необходимо разрешить, и нажмите кнопку ОК.
Проверка свойств служб удаленного рабочего стола RDP-TCP
Следуйте этим шагам в зависимости от версии операционной системы.
Настройка с помощью конфигурации служб удаленного рабочего стола
Настройка количества одновременных удаленных подключений, разрешенных для подключения:
-
На хост-сервере сеанса RD откройте конфигурацию хост-сервера удаленного рабочего стола. Чтобы открыть конфигурацию хост-хозяйской сессии удаленного рабочего стола, нажмите кнопку Начните, указать на административные средства, указать на удаленные службы настольных компьютеров.
-
В «Подключениях» щелкните правой кнопкой мыши имя подключения и нажмите кнопку Свойства.
-
На вкладке Сетевой адаптер нажмите кнопку Максимальное подключение, введите количество одновременных удаленных подключений, которые необходимо разрешить для подключения, а затем нажмите кнопку ОК.
-
Если параметр Maximum подключений выбран и затемнеет, параметр Limit number of connections Group Policy включен и применен к серверу хост-сервера сеанса RD.
Проверка прав логотипа служб удаленного рабочего стола
Настройка группы удаленных пользователей настольных компьютеров.
Группа пользователей удаленных настольных компьютеров на хост-сервере сеансов RD предоставляет пользователям и группам разрешение на удаленное подключение к хост-серверу сеансов RD. Вы можете добавить пользователей и группы в группу удаленных пользователей настольных компьютеров с помощью следующих средств:
- Привязка локальных пользователей и групп
- Вкладка Remote в диалоговом окне System Properties на хост-сервере сеанса RD
- Активные пользователи каталогов и компьютеры, если хост-сервер сеанса RD установлен на контроллере домена
Вы можете использовать следующую процедуру для добавления пользователей и групп в группу пользователей удаленных настольных компьютеров с помощью вкладки Remote в диалоговом окне System Properties на сервере хост-сервера сеансов RD.
Членство в локальной группе администраторов или эквивалент на сервере хост-сервера сеанса RD, который вы планируете настроить, является минимальным, необходимым для завершения этой процедуры.
-
Запустите средство System. Для этого нажмите кнопку Начните, нажмите панель управления, нажмите значок System и нажмите кнопку ОК.
-
Под панелью управления главная щелкните удаленные параметры.
-
На вкладке Remote в диалоговом окне System Properties щелкните Выберите пользователей. Добавьте пользователей или группы, которые должны подключиться к серверу хост-сервера сеансов RD с помощью удаленного рабочего стола.
Примечание
При выборе параметра «Не разрешай подключения к этому компьютеру» на вкладке Remote пользователи не смогут подключиться удаленно к этому компьютеру, даже если они являются членами группы пользователей удаленных настольных компьютеров.
Просмотр и анализ логов RDP подключений в Windows
В этой статье мы рассмотрим, особенности аудита / анализа логов RDP подключений в Windows. Как правило, описанные методы могут пригодиться при расследовании различных инцидентов на терминальных / RDS серверах Windows, когда от системного администратора требуется предоставить информацию: какие пользователи входили на RDS сервер, когда авторизовался и завершил сеанс конкретный пользователь, откуда / с какого устройства (имя или IP адрес) подключался RDP-пользователь. Я думаю, эта информация будет полезна как для администраторов корпоративных RDS ферм, так и владельцам RDP серверов в интернете (Windows VPS как оказалось довольно популярны).
Как и другие события, логи RDP подключения в Windows хранятся в журналах событий. Откройте консоль журнала событий (Event Viewer). Есть несколько различных журналов, в которых можно найти информацию, касающуюся RDP подключения.
В журналах Windows содержится большое количество информации, но быстро найти нужное событие бывает довольно сложно. Когда пользователь удаленно подключается к RDS серверу или удаленному столу (RDP) в журналах Windows генерируется много событий. Мы рассмотрим журналы и события на основных этапах RDP подключения, которые могут быть интересны администратору:
В результате у вас получится список с историей всех сетевых RDP подключений к данному серверу. Как вы видите, в логах указывается имя пользователя, домен (используется NLA аутентификация, при отключенном NLA текст события выглядит иначе) и IP адрес компьютера, с которого осуществляется RDP подключение.
При этом имя пользователя содержится в описании события в поле Account Name, имя компьютера в Workstation Name, а имя пользователя в Source Network Address.
Вы можете получить список событий успешных авторизаций по RDP (событие 4624) с помощью такой команды PowerShell.
Событие с EventID – 21 (Remote Desktop Services: Shell start notification received) означает успешный запуск оболочки Explorer (появление окна рабочего стола в RDP сессии).
При этом в журнале Security нужно смотреть событие EventID 4634 (An account was logged off).
Событие Event 9009 (The Desktop Window Manager has exited with code ( ) в журнале System говорит о том, что пользователь инициировал завершение RDP сессии, и окно и графический shell пользователя был завершен.
Ниже представлен небольшой PowerShell, который выгружает из журналов терминального RDS сервера историю всех RDP подключений за текущий день. В полученной таблице указано время подключения, IP адрес клиента и имя RDP пользователя (при необходимости вы можете включить в отчет другие типы входов).
Иногда бывает удобно с логами в таблице Excel, в этом случае вы можете выгрузить любой журнал Windows в текстовый файл и импортировать в Excel. Экспорт журнала можно выполнить из консоли Event Viewer (конечно, при условии что логи не очищены) или через командную строку:
WEVTUtil query-events Security > c:\ps\security_log.txt
Список текущих RDP сессий на сервере можно вывести командой:
Команда возвращает как идентификатор сессии (ID), имя пользователя (USERNAME)и состояние (Active/Disconnect). Эту команду удобна использовать, когда нужно определить ID RDP сессии пользователя при теневом подключении.
Список запущенных процессов в конкретной RDP сессии (указывается ID сессии):
На RDP-клиенте логи не такие информационные, основное чем часто пользуются информация об истории RDP подключений в реестре.