Как узнать SID пользователя — YZTM.RU

Основные идентификаторы безопасности

SID в формате S-1-0-0 называется NULD SID. Он присваивается, когда его значение неизвестно или оно назначается группе без каких-либо членов.

SID в формате S-1-1-0 является общим SID. Он присваивается каждому пользователю.

Наконец, SID в формате S-1-2-0 называется локальным SID. Он назначается пользователю, который должен войти в систему локально.

Почему?

😪Мы тщательно прорабатываем каждый фидбек и отвечаем по итогам анализа. Напишите, пожалуйста, как мы сможем улучшить эту статью.

Msconfig

Если нужно перезагрузить систему в безопасном режиме или просмотреть список доступных ОС, то команда msconfig вам в помощь. Там можно отредактировать параметры загрузки системы. Кстати, присмотритесь к вкладке Tools, там немало полезных сокращений.

1: использование wmic

Прежде всего запустим комндную строку. Если у Вас Windows 10 в окне поиска нужно набрать “Командная строка” или “cmd”. Если Windows 8, нажмите комбинацию кнопок WINKEY X , чтобы запустить контекстное меню кнопки «Пуск» и нажать «Командная строка» («Администратор»).

Теперь введите следующую команду:

. magnify

Лупа или увеличительное стекло, которое предусмотрено для людей с ограниченными возможностями запускается с помощью команды magnify.

. charmap

Таблица шрифтов Windows отображает все доступные для выбранного шрифта символы. Тут можно копировать символ и вставлять в нужное место или запомнить Alt код конкретного шрифта. Если выбрать Advanced View, то можно получить доступ к строке поиска.

. mrt

Нет – эта команда не активирует функцию МРТ на компьютере. Вы, наверное, не знали, что в Windows есть встроенная утилита для удаления вредоносных программ. Правда, эффективность под вопросом, – она все же есть. Но в любом случае, лучше установить антивирус.

. devmgmt.msc

Пожалуй, второй мой фаворит. Команда devmgmt.msc позволяет запускать окно с устройствами, где можно установить, обновить или удалить драйвера. Так же полезна в случае, если у пользователя нет администраторских прав. В этом случае схема работы такая же, как и с ncpa.cpl.

. netplwiz

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

. services.msc

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

. appwiz.cpl

Давно пользовались приложением Установка и удаление программ? Обычно пользователи устанавливают программы и забывают, что они у них есть. Хотя для улучшения производительности компьютера лучше регулярно проверять и удалять ненужные программы. Для быстрого доступа используется команда appwiz.cpl. Тут также можно посмотреть установленные обновления и установить дополнительные фичи.

. control

В старых версиях Windows данная команда не пользовалась популярностью, так как чуть ли не каждая ссылка вела именно на Панель управления. Но в Windows 10 Microsoft активно продвигает новое приложение Настройки, поэтому попасть на Панель управления не легко, но возможно благодаря команде control.

. “.” (точка)

Как обычно поступают пользователи, если нужно попасть в папку текущего пользователя? Открывают проводник и оттуда попадают куда нужно. Но есть вариант попроще: просто в окне быстрого запуска набираете точку и нажимаете Ввод (Enter)”.” – заветная папка открыта.

Resmon

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

2: использование редактора реестра

Для начала запустите редактор реестра. Вы можете сделать это набрав “regedit” в поле поиска или в строке ввода после нажатия WINKEY Х.После того как вы открыли редактор реестра, перейдите к следующему пути

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

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

. Экранная клавиатура

Иногда по какой то причине приходится пользоваться экранной клавиатурой. Вызвать его можно командой osk.

. snippingtool

Приложение Ножницы, которое делает скриншот экрана можно вызвать командой snippingtool. Для запуска же новой версии на Windows 10, можно использовать комбинацию клавиш Win Shift S. А для запуска Paint используйте команду – mspaint.

. mdsched

В Windows также есть встроенная утилита диагностики оперативной памяти. Она не только выявляет проблему, но в большинстве случаев и исправляет их. А если не справляется, то выдают отчет о проблеме. Запустить данную утилиту можно командой mdsched.

P.S. Для проверки компьютер автоматически перезагрузиться, так что имеет смысл сохранить открытые документы.

. Открытие веб-сайтов

Да-да, все верно. Через командную строку можно открывать и веб-сайты. Сайт откроется в браузере по умолчанию. Но сегодня мало, кто помнит название сайтов. Все пользуются поиском.

. mstsc

Для быстрого запуска приложения удаленного доступа используйте команду mstsc. Но для начала на компьютерах нужно разрешить удаленный доступ.

. cmd

Найдется очень мало людей, которым незнакома эта команда. cmd – запускает командную строку, которая дает вам неограниченную власть над системой. Хотя я погорячился, Windows – это не касается.

Msinfo

Приложение System Information предоставляет обширную информацию об оборудовании и программном обеспечении вашего ПК. Это обязательная команда для просмотра спецификаций любого ПК. Информация разделена на категории, что облегчает поиск нужной информации. Здесь можно экспортировать информацию в файл, что идеально подходит для получения технической помощи в Интернете.

Sdclt

Данная команда открывает окно “Резервного копирования и восстановления системы”.

Настройки мыши – main.cpl

Все настройки относительно мыши можно сделать в этом окне: поменять роли кнопок, скорость реакции т.п.

Кстати, идея чтобы пошутить с другом: поменяйте роли кнопок мыши. Это прикольно.

Regedit

Пожалуй, одна из самых известных утилит, которой пользуются сисадмины – это regedit. Все настройки Windows – порт RDP по умолчанию, разны пути, настройки программ – хранятся в реестре. Чтобы запустить его с окна быстрого запуска введите regedit.exe.

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

Sysadm.cpl

Нет – это не команда быстрого вызова сисадмина. Она запускает параметры системы, где можно настроить производительность, переменные среды и т.п.

Powercfg.cpl

Быстрый доступ к настройкам питания. Именно здесь настраивается поведение компьютера в зависимости от режима питания, таймоут до спящего режима и т.п.

Optionalfeatures

Часто при поиске проблем на новом компьютере обнаруживается, что не установлены нужные утилиты вроде telnet. Так вот эти все фичи можно установить через меню дополнительных компонентов Windows, которое можно вызвать командой optionalfeatures.

Get-winevent vs get-eventlog

Пришло время сравнить эти два командлета

Get-EventLog

Description:

The Get-EventLog cmdlet gets events and event logs on the local and remote computers.

You can use the cmdlet’s parameters and property values to search for events. This cmdlet gets events that match the specified property values.

The cmdlets that contain the EventLog noun work only on classic event logs. To get events from logs that use the Windows Event Log technology in Windows Vista and later Windows versions, use Get-WinEvent.

Get-WinEventDescription:

The Get-WinEvent cmdlet gets events from event logs, including classic logs, such as the System and Application logs, and the event logs that are generated by the Windows Event Log technology introduced in Windows Vista. It also gets events in log files generated by Event Tracing for Windows (ETW).

Without parameters, a Get-WinEvent command gets all the events from all the event logs on the computer. To interrupt the command, press CTRL C.

Get-WinEvent also lists event logs and event log providers. You can get events from selected logs or from logs generated by selected event providers. And, you can combine events from multiple sources in a single command. This cmdlet allows you to filter events by using XPath queries, structured XML queries, and simplified hash-table queries


Согласно описания,

Get-WinEvent

умеет работать с большим количеством журналов которые появились в

WIndows Vista

Для наглядности вот списки с которыми работают эти командлеты, вывод для Get-WinEvent я остановил.

Но есть одно но, производительность имеет значение, сравните время выполнения запросов.

:/>  Startup Booster ускоритель загрузки Вашего ПК - скачать бесплатно Startup Booster ускоритель загрузки Вашего ПК

Время работы Get-WinEvent просто поражает, обратите внимание на количество записей в логах Applocation и Security, количество событий примерно одинаковое 3400-3600, но при этом разница по времени выполнения почти 20 раз…

Get-WinEvent тратит 127 секунд против 52 секунд Get-EventLog для чтения событий Application.

И шах и мат, Get-WinEvent тратит 2020 секунд против 45 секунд Get-EventLog для чтения событий Security.

Если выполнить те же команды локально все выглядит не так уж и плохо, но даже локально Get-EventLog работает с логами безопасности в 50 раз быстрее чем Get-WinEvent.

И еще один пример, уже чуть более осмысленный, получения событий с кодом 4624 An account was successfully logged on.

Что тут сказать, цифры не врут…

Manage auditing and security log


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

Manage auditing and security log

Psgetsid

Как видите, встроенных средств для выяснения SID в Windows предостаточно, но для полноты картины возьмем еще одно, от стороннего разработчика.

PsGetSid — утилита командной строки от Sysinternals, входящая в состав пакета PsTools. PsGetSid умеет получать SID пользователя по его имени и наоборот, работает как с локальными, так и с доменными аккаунтами. Утилита не требует установки, ее достаточно скопировать на нужный компьютер и запустить.

Для примера запросим SID пользователя по его имени:

psgetsid wks10Kirill

и наоборот, выясним имя по SID:

psgetsid S-1-5-21-438167859-634674341-1098546566-1001

Showtime


Добавим пользователя в локальную группу

Event Log Readers

Далее предоставляем права на чтение ветки реестра MACHINESystemCurrentControlSetServicesEventlogSecurity.

Без изменения прав на эту ветку реестра, прочитать параметры лога безопасности не получится, соответственно не получится узнать место расположение и имя файла с логами. Security, это единственный раздел сервиса Eventlog который не наследует права доступа от корня.

Вот как выглядят права для MACHINESystemCurrentControlSetServicesEventlog.

Проверяем, оба командлета Get-WinEvent и Get-EventLog работают!Позже вернусь к сравнению этих командлетов…

Whoami

Когда требуется посмотреть SID текущего пользователя, то проще всего воспользоваться утилитой whoami. Для этого надо открыть консоль cmd и выполнить команду:

Готовим площадку для теста скрипта:


Для корректной работы скрипта необходимо выполнение следующих условий:

Создаем каталог на сервере/рабочей станции, с которой выполняется скрипт. Размещаем файлы скрипта в каталог С:audit. Список хостов и скрипт лежат в одном каталоге.

Устанавливаем дополнительное ПО на сервер MS Log Parser 2.2 и Windows powershell 3.0 в составе management framework. Проверить версию Powershell можно, набрав $Host.version в консоли PS.

Заполняем список интересующих нас серверов list.txt для аудита в каталоге С:audit по именам рабочих станций. Настраиваем политику Аудита. Убеждаемся, что она работает.

Проверяем, запущена ли служба удаленного реестра (скрипт делает попытку запуска и перевода службы в автоматический режим при наличии соответствующих прав). На серверах 2008/2021 эта служба запущена по умолчанию.

Проверяем наличие прав администратора для подключения к системе и сбора логов.Проверяем возможность запуска неподписанных скриптов powershell на удаленной машине (подписать скрипт или обойти/отключить restriction policy).

Внимание на параметры запуска неподписанных скриптов — execution policy на сервере:Обойти запрет можно подписав скрипт, либо отключить саму политику при запуске. Например:

powershell.exe -executionpolicy bypass -file С:auditnewrun_v5.ps1

Привожу весь листинг скрипта:

Журналы и командная строка

До появления PowerShell можно было использовать такие утилиты cmd как find и findstr. Они вполне подходят для простой автоматизации. Например, когда мне понадобилось отлавливать ошибки в обмене 1С 7.7 я использовал в скриптах обмена простую команду:

findstr "Fail" *.log >> fail.txt

Она позволяла получить в файле fail.txt все ошибки обмена. Но если было нужно что-то большее, вроде получения информации о предшествующей ошибке, то приходилось создавать монструозные скрипты с циклами for или использовать сторонние утилиты. По счастью, с появлением PowerShell эти проблемы ушли в прошлое.

Основным инструментом для работы с текстовыми журналами является командлет Get-Content, предназначенный для отображения содержимого текстового файла. Например, для вывода журнала сервиса WSUS в консоль можно использовать команду:

Get-Content -Path 'C:Program FilesUpdate ServicesLogFilesSoftwareDistribution.log' | Out-Host -Paging

Для вывода последних строк журнала существует параметр Tail, который в паре с параметром Wait позволит смотреть за журналом в режиме онлайн. Посмотрим, как идет обновление системы командой:

>Get-Content -Path "C:WindowsWindowsUpdate.log" -Tail 5 -Wait

Как узнать SID пользователя — YZTM.RU
Смотрим за ходом обновления Windows.

Если же нам нужно отловить в журналах определенные события, то поможет командлет Select-String, который позволяет отобразить только строки, подходящие под маску поиска. Посмотрим на последние блокировки Windows Firewall:

Select-String -Path "C:WindowsSystem32LogFilesFirewallpfirewall.log" -Pattern 'Drop' | Select-Object -Last 20 | Format-Table Line

Как узнать SID пользователя — YZTM.RU
Смотрим, кто пытается пролезть на наш дедик.

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

Select-String 'C:WindowsClusterReportsCluster.log' -Pattern ' err ' ‑Context 3

Оба полезных командлета можно объединить. Например, для вывода строк с 45 по 75 из netlogon.log поможет команда:

Get-Content 'C:Windowsdebugnetlogon.log' | Select-Object -First 30 -Skip 45

Журналы системы ведутся в формате .evtx, и для работы с ними существуют отдельные командлеты. Для работы с классическими журналами («Приложение», «Система», и т.д.) используется Get-Eventlog. Этот командлет удобен, но не позволяет работать с остальными журналами приложений и служб.

Для получения списка доступных системных журналов можно выполнить следующую команду:

Get-WinEvent -ListLog *

Как узнать SID пользователя — YZTM.RU
Вывод доступных журналов и информации о них.

Для просмотра какого-то конкретного журнала нужно лишь добавить его имя. Для примера получим последние 20 записей из журнала System командой:

Get-WinEvent -LogName 'System' -MaxEvents 20

Как узнать SID пользователя — YZTM.RU
Последние записи в журнале System.

Для получения определенных событий удобнее всего использовать хэш-таблицы. Подробнее о работе с хэш-таблицами в PowerShell можно прочитать в материале Technet about_Hash_Tables.

Для примера получим все события из журнала System с кодом события 1 и 6013.

Get-WinEvent -FilterHashTable @{LogName='System';ID='1','6013'}

В случае если надо получить события определенного типа ― предупреждения или ошибки, ― нужно использовать фильтр по важности (Level). Возможны следующие значения:

  • 0 ― всегда записывать;
  • 1 ― критический;
  • 2 ― ошибка;
  • 3 ― предупреждение;
  • 4 ― информация;
  • 5 ― подробный (Verbose).

Собрать хэш-таблицу с несколькими значениями важности одной командой так просто не получится. Если мы хотим получить ошибки и предупреждения из системного журнала, можно воспользоваться дополнительной фильтрацией при помощи Where-Object:

Get-WinEvent -FilterHashtable @{LogName='system'} | Where-Object -FilterScript {($_.Level -eq 2) -or ($_.Level -eq 3)}

Как узнать SID пользователя — YZTM.RU
Ошибки и предупреждения журнала System.

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

Подробнее почитать про работу обоих командлетов для работы с системными журналами можно в документации PowerShell:

PowerShell ― механизм удобный и гибкий, но требует знания синтаксиса и для сложных условий и обработки большого количества файлов потребует написания полноценных скриптов. Но есть вариант обойтись всего-лишь SQL-запросами при помощи замечательного Log Parser.

Здравствуйте, уважаемое сообщество!

ИТ-инфраструктура всегда находится в динамике. Тысячи изменений происходят ежеминутно. Многие из них требуется регистрировать. Аудит систем является неотъемлемой частью информационной безопасности организаций. Контроль изменений позволяет предотвратить серьезные происшествия в дальнейшем.

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

Как определить текущего пользователя

Задача определения текущего пользователя, т.е. пользователя, посредством использования учетной записи которого осуществлен вход в систему компьютера, в операционной системе Microsoft Windows может быть решена с помощью стандартной встроенной утилиты Whoami.exe.

Как с помощью командной строки или powershell получить sid пользователя | белые окошки

При создании учётной записи пользователя, группы или присвоению имени компьютеру каждому из этих объектов Windows присваивает уникальный идентификационный идентификатор безопасности, именуемый Security Identifier или просто SID. И так как именно SID позволяет точно идентифицировать пользователя, для доступа к различным внутренним и внешним ресурсам Windows использует его.

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

При выполнении различных тонких настроек, применении твиков подобных тому действий у вас может возникнуть необходимость узнать SID пользователя по его имени. Сделать это можно разными путями, и здесь мы рассмотрим самые распространённые. Если нужно посмотреть SID текущего пользователя, самым лучшим решением будет использование консольной утилиты whoami.

:/>  Сброс пароля Windows 7 через "Командную строку"

Откройте командную строку и выполните в ней такую команду:

whoami /user

Whoami

Если же вам нужно получить SID другого юзера, используем такую конструкцию с другой консольной утилитой wmic:

wmic useraccount where name='Злой кролик' get sid

Wmic

Аналогичным образом можно узнать имя пользователя, зная его SID, указав его в качестве значения параметра name. По такому же принципу строятся другие запросы, например, в запрос можно вставить имя локального компьютера. Так можно получить SID администратора локального компьютера, используя оператор (равно =) и указав в качестве значения переменную %computername%, на место которой подставится имя компьютера.

wmic useraccount where (name='Администратор' and domain='%computername%') get sid

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

Вот, этой командой мы получаем SID пользователя «Злой кролик»:

Get-WmiObject -Class win32_userAccount -Filter "name='Злой кролик'"

Get-WmiObject

А можно и так, добавив в список фильтров имя компьютера (та же переменная %computername%):

(Get-WmiObject -Class win32_userAccount -Filter "name='Злой кролик' and domain='%computername%'").SID

PowerShell

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

Есть также и сторонние утилиты, позволяющие получить SID по имени и наоборот, например, PsGetSid, но раз с задачей справляются штатные инструменты самой Windows, приводить пример их использования в данном случае нам показалось излишним.

Методы определения сида компьютера

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

В противном случае вы получите ошибку “dsquery” не является внутренней или внешней

Определить имя пользователя по sid

Чтобы узнать имени учетной записи пользователя по SID (обратная процедура), можно воспользоваться одной из следующих команд:

Получить sid доменного пользователя

Узнать SID текущей доменной учетной записи можно командой:

Просмотр и анализ логов rdp подключений в windows | windows для системных администраторов

В этой статье мы рассмотрим, особенности аудита / анализа логов RDP подключений в Windows. Как правило, описанные методы могут пригодиться при расследовании различных инцидентов на терминальных / RDS серверах Windows, когда от системного администратора требуется предоставить информацию: какие пользователи входили на RDS сервер, когда авторизовался и завершил сеанс конкретный пользователь, откуда / с какого устройства (имя или IP адрес) подключался RDP-пользователь. Я думаю, эта информация будет полезна как для администраторов корпоративных RDS ферм, так и владельцам RDP серверов в интернете (Windows VPS как оказалось довольно популярны).

Статья применима при исследовании RDP логов как в Windows Server 2008 R2, 2021/R2, 2021, так и в соответствующих десктопных версиях Windows (Windows 7, 8.1, 10).

Как и другие события, логи RDP подключения в Windows хранятся в журналах событий. Откройте консоль журнала событий (Event Viewer). Есть несколько различных журналов, в которых можно найти информацию, касающуюся RDP подключения.

В журналах Windows содержится большое количество информации, но быстро найти нужное событие бывает довольно сложно. Когда пользователь удаленно подключается к RDS серверу или удаленному столу (RDP) в журналах Windows генерируется много событий. Мы рассмотрим журналы и события на основных этапах RDP подключения, которые могут быть интересны администратору:

  1. Network Connection
  2. Authentication
  3. Logon
  4. Session Disconnect/Reconnect
  5. Logoff

Network Connection: – установление сетевого подключение к серверу от RDP клиента пользователя. Событие с EventID – 1149 (Remote Desktop Services: User authentication succeeded). Наличие этого события не свидетельствует об успешной аутентификации пользователя. Этот журнал находится в разделе Applications and Services Logs -> Microsoft -> Windows -> Terminal-Services-RemoteConnectionManager -> Operational. Включите фильтр по данному событию (ПКМ по журналу-> Filter Current Log -> EventId 1149).

1149 Terminal-Services-RemoteConnectionManager

В результате у вас получится список с историей всех сетевых RDP подключений к данному серверу. Как вы видите, в логах указывается имя пользователя, домен (используется NLA аутентификация, при отключенном NLA текст события выглядит иначе) и IP адрес компьютера, с которого осуществляется RDP подключение.

Remote Desktop Services: User authentication succeeded

Authentication: – успешная или неуспешная аутентификация пользователя на сервере. Журнал Windows -> Security. Соответственно нас могут интересовать события с EventID – 4624 (успешная аутентификация — An account was successfully logged on) или 4625 (ошибка аутентификации — An account failed to log on). Обратите внимание на значение LogonType в событии. При входе через терминальную службу RDP — LogonType = 10 или 3. Если LogonType = 7, значит выполнено переподключение к уже имеющейся RDP сессии.

rdp событие аутентфикации An account was successfully logged on

При этом имя пользователя содержится в описании события в поле Account Name, имя компьютера в Workstation Name, а имя пользователя в Source Network Address.

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

Вы можете получить список событий успешных авторизаций по RDP (событие 4624) с помощью такой команды PowerShell.

Get-EventLog security -after (Get-date -hour 0 -minute 0 -second 0) | ?{$_.eventid -eq 4624 -and $_.Message -match 'logon type:s (10)s'} | Out-GridView

получиь журнал RDP входов с помощью PowerShell

Logon: – RDP вход в систему, событие появляющееся после успешной аутентификации пользователя. Событие с EventID – 21 (Remote Desktop Services: Session logon succeeded). Этот журнал находится в разделе Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational. Как вы видите здесь можно узнать идентификатор RDP сессии для пользователя — Session ID.

Remote Desktop Services: Session logon succeeded

Событие с EventID – 21 (Remote Desktop Services: Shell start notification received) означает успешный запуск оболочки Explorer (появление окна рабочего стола в RDP сессии).

Session Disconnect/Reconnect – события отключения / переподключения к сессии имеют разные коды в зависимости от того, что вызвало отключение пользователя (отключение по неактивности, выбор пункта Disconnect в сессии, завершение RDP сессии другим пользователем или администратором и т.д.). Эти события находятся в разделе журналов Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational. Рассмотрим RDP события, которые могут быть интересными:

Событие с EventID – 4778 в журнале Windows -> Security (A session was reconnected to a Window Station). Пользователь переподключился к RDP сессии (пользователю выдается новый LogonID).

Событие с EventID 4799 в журнале Windows -> Security (A session was disconnected from a Window Station). Отключение от RDP сеанса.

Logoff: – выход пользователя из системы. При этом в журнале Applications and Services Logs -> Microsoft -> Windows -> TerminalServices-LocalSessionManager -> Operational фиксируется событие с EventID 23 (Remote Desktop Services: Session logoff succeeded).

Remote Desktop Services: Session logoff succeeded

При этом в журнале Security нужно смотреть событие EventID 4634 (An account was logged off).

Событие Event 9009 (The Desktop Window Manager has exited with code (<X>) в журнале System говорит о том, что пользователь инициировал завершение RDP сессии, и окно и графический shell пользователя был завершен.

Ниже представлен небольшой PowerShell, который выгружает из журналов терминального RDS сервера историю всех RDP подключений за текущий день. В полученной таблице указано время подключения, IP адрес клиента и имя RDP пользователя (при необходимости вы можете включить в отчет другие типы входов).

Get-EventLog -LogName Security -after (Get-date -hour 0 -minute 0 -second 0)| ?{(4624,4778) -contains $_.EventID -and $_.Message -match 'logon type:s (10)s'}| %{
(new-object -Type PSObject -Property @{
TimeGenerated = $_.TimeGenerated
ClientIP = $_.Message -replace '(?smi).*Source Network Address:s ([^s] )s .*','$1'
UserName = $_.Message -replace '(?smi).*Account Name:s ([^s] )s .*','$1'
UserDomain = $_.Message -replace '(?smi).*Account Domain:s ([^s] )s .*','$1'
LogonType = $_.Message -replace '(?smi).*Logon Type:s ([^s] )s .*','$1'
})
} | sort TimeGenerated -Descending | Select TimeGenerated, ClientIP `
, @{N='Username';E={'{0}{1}' -f $_.UserDomain,$_.UserName}} `
, @{N='LogType';E={
switch ($_.LogonType) {
2 {'Interactive - local logon'}
3 {'Network conection to shared folder)'}
4 {'Batch'}
5 {'Service'}
7 {'Unlock (after screensaver)'}
8 {'NetworkCleartext'}
9 {'NewCredentials (local impersonation process under existing connection)'}
10 {'RDP'}
11 {'CachedInteractive'}
default {"LogType Not Recognised: $($_.LogonType)"}
}
}}

логи RDP подключений к RDS серверу с IP адресами и учетными записями

Иногда бывает удобно с логами в таблице Excel, в этом случае вы можете выгрузить любой журнал Windows в текстовый файл и импортировать в Excel. Экспорт журнала можно выполнить из консоли Event Viewer (конечно, при условии что логи не очищены) или через командную строку:

:/>  Как отключить тариф на МТС: 5 быстрых способов отключения тарифа на телефоне и модеме

WEVTUtil query-events Security > c:pssecurity_log.txt

Или так:

get-winevent -logname "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" | Export-Csv c:psrdp-log.txt  -Encoding UTF8

Список текущих RDP сессий на сервере можно вывести командой:

Qwinsta

Команда возвращает как идентификатор сессии (ID), имя пользователя (USERNAME)и состояние (Active/Disconnect). Эту команду удобна использовать, когда нужно определить ID RDP сессии пользователя при теневом подключении.

Qwinsta

Список запущенных процессов в конкретной RDP сессии (указывается ID сессии):

qprocess /id:157

qprocess

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

Прочие материалы по работе с командной строкой windows:

  Настройка командной строки
Windows. – Как изменить цвет фона, цвет символов, размер и расположение окна командной строки. Копирование и вставка текста в окне консоли.
Как настроить дополнение имен файлов и каталогов при наборе в командной строке. Использование функциональных клавиш.

  Работа с командной строкой Windows – Основные приемы, используемые при работе в командной строке Windows.

  Командные файлы Windows – Общие принципы применения переменных среды в командных файлах. Обработка параметров командной строки. Использование меток, переходов и циклическая обработка данных. Практические примеры решения задач администрирования системы.

 Запуск приложений от имени администратора без запроса UAC – Как запустить из командного файла приложение или командный файл без запроса системы контроля учетных записей UAC

 
Работа с сетью в командной строке.
– подробное описание команд CMD Windows для работы с сетью и примеры их использования.

  Подсистема Linux в Windows 10 – Использование командной строки Linux в Windows 10.

Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой “Поделиться”

В начало страницы             |            
На главную страницу сайта

Работаем с журналами посредством запросов sql

Утилита Log Parser появилась на свет в начале «нулевых» и с тех пор успела обзавестись официальной графической оболочкой. Тем не менее актуальности своей она не потеряла и до сих пор остается для меня одним из самых любимых инструментов для анализа логов.

О возможностях Log Parser уже рассказывалось в материале «LogParser — привычный взгляд на непривычные вещи», поэтому я начну с конкретных примеров.

Для начала разберемся с текстовыми файлами ― например, получим список подключений по RDP, заблокированных нашим фаерволом. Для получения такой информации вполне подойдет следующий SQL-запрос:

SELECT 
 extract_token(text, 0, ' ') as date, 
 extract_token(text, 1, ' ') as time,
 extract_token(text, 2, ' ') as action, 
 extract_token(text, 4, ' ') as src-ip,  
 extract_token(text, 7, ' ') as port 
FROM 'C:WindowsSystem32LogFilesFirewallpfirewall.log' 
WHERE action='DROP' AND port='3389'
ORDER BY date,time DESC

Посмотрим на результат:

Как узнать SID пользователя — YZTM.RU
Смотрим журнал Windows Firewall.

Разумеется, с полученной таблицей можно делать все что угодно ― сортировать, группировать. Насколько хватит фантазии и знания SQL.

Log Parser также прекрасно работает с множеством других источников. Например, посмотрим откуда пользователи подключались к нашему серверу по RDP.

Работать будем с журналом TerminalServices-LocalSessionManagerOperational.

Не со всеми журналами Log Parser работает просто так ― к некоторым он не может получить доступ. В нашем случае просто скопируем журнал из %SystemRoot%System32WinevtLogsMicrosoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx в %temp%test.evtx.

Данные будем получать таким запросом:

Сколько у компьютера sid-ов?

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

Справочник по командам cmd windows

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

В разных версиях ОС семейства Windows набор поддерживаемых команд, их параметры командной строки, синтаксис и отображение результатов выполнения могут различаться. Одна и та же утилита командной строки может присутствовать в стандартной поставке одной версии Windows, но отсутствовать в другой, или входить в состав дополнительных средств, как например, Resource Kit или Software Development Kit.

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

Список команд постоянно обновляется и включает в себя все новейшие команды, добавляемые в стандартную поставку при выходе новых версий или обновлений ОС Windows 10.

APPEND – позволяет программам открывать файлы данных из указанных
папок так, как будто они находятся в текущей папке.

ARP – просмотр и изменение таблиц ARP (Address Resolution Protocol)

ASSOC – просмотр или изменение сопоставлений расширений файлов приложениям

AT – управление планировщиком задач

ATTRIB – изменение атрибутов файлов

Auditpol – управление политиками аудита.

BASH – командная оболочка BASH в подсистеме Windows для Linux (WSL).

BCDBOOT – копирование в системный раздел файлов загрузки и создание
нового хранилища конфигурации загрузки (BCD)

BCDEDIT – редактирование хранилища данных конфигурации загрузки (BCD)

BOOTCFG – редактирование параметров загрузки в файле boot.ini

BOOTIM – вызов меню загрузки и восстановления (Выбор действия) Windows 10

BOOTREC – восстановление загрузочных записей и конфигурации загрузки Windows

BOOTSECT – редактирование загрузочных секторов для обеспечения загрузки NTLDR или BOOTMGR

BREAK – включить или выключить обработку комбинации клавиш CTRL C в DOS

CACLS – редактирование списков управления доступом к файлам (ACL – Access Control List)

CALL – вызов из командного файла подпрограмм или других командных файлов

CD – смена каталога (Change Directory)

Цели, которые мы преследуем:

  • Контроль ежедневных подключений пользователей к серверам организации, в том числе терминальным.
  • Регистрация события, как от доменных пользователей, так и от локальных.
  • Мониторинг рабочей активности пользователя (приход/уход).
  • Контроль подключений ИТ-подразделений к серверам ИБ.

Для начала необходимо включить аудит и записывать события входа в журнал Windows. В качестве контроллера домена нам предоставлен Windows Server 2008 R2. Включив аудит, потребуется извлекать, фильтровать и анализировать события, определенные политикой аудита.

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

События входа в систему формируются:

1. контроллерами домена, в процессе проверки учетных записей домена; 2. локальными компьютерами при работе с локальными учетными записями.

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

Примечания и заключение:

Еще раз подытожим выполненные действия:

  1. Настроили локальные и доменные политики аудита на нужных серверах и собрали список серверов.
  2. Выбрали машину для выполнения скрипта, установили нужный софт (PS 3.0, LOG PARSER, Excel).
  3. Написали запрос для LOG PARSER.
  4. Написали скрипт, запускающий этот запрос в цикле для списка,.
  5. Написали оставшуюся часть скрипта, обрабатывающую полученные результаты.
  6. Настроили планировщик для ежедневного запуска.

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

Заключение

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

Оставьте комментарий