<< Кликните, чтобы показать Содержание >> Альтернатива: logon script |
Альтернативным способом получения информации об аутентификации пользователя в системе или в домене является использование скрипта, запускающегося по событию входа пользователя в систему.
Пример такого скрипта на языке PowerShell приведен ниже. Данный скрипт сообщает серверу агентов EtherSensor IP-адрес, имя пользователя, имя компьютера и sid пользователя. Эти данные позволяют EtherSensor связать IP-адрес извлечённого из трафика объекта с пользователем или хостом.
Logon script и его запуск необходимо настроить через средства групповых политик для события входа пользователя в систему. |
---|
Пример текста logon script:
function GetCUSID { Param ( $CUIdentity ) $MyID = new-object System.Security.Principal.NTAccount($CUIdentity) return $MyID.Translate([System.Security.Principal.SecurityIdentifier]).toString() }
# EtherSensor address $Server = '10.0.1.123&apos
#0=EMERG, 1=Alert, 2=CRIT, 3=ERR, 4=WARNING, 5=NOTICE, 6=INFO, 7=DEBUG $Severity = '5&apos
#(16-23)=LOCAL0-LOCAL7 $Facility = '16&apos
$HostName = $env:ComputerName $UserName = $env:UserName $UserSID = GetCUSID([Environment]::UserName)
# Create a UDP Client Object $UDPCLient = New-Object System.Net.Sockets.UdpClient $UDPCLient.Connect($Server, 10514)
# Calculate the priority $Priority = ([int]$Facility * 8) + [int]$Severity
#Time format the SW syslog understands $Timestamp = (Get-Date).ToString("MMM dd HH:mm:ss", [CultureInfo]::GetCultureInfo('en-US'))
# Assemble the full syslog formatted message $FullSyslogMessage = "<{0}>{1} computername={2}, username={3}, sid={4}" -f $Priority, $Timestamp, $HostName, $UserName, $UserSID
# Create a UTF8 Encoding object $Encoding = [System.Text.Encoding]::UTF8
# Convert into byte array representation $ByteSyslogMessage = $Encoding.GetBytes($FullSyslogMessage)
# Send the Message $UDPCLient.Send($ByteSyslogMessage, $ByteSyslogMessage.Length) |
---|